Simple Social Icons - Version 3.0.0

Version Description

  • Obfuscate email address from spambots
  • Prevent email links to open in new window if option selected
  • Fix saving email by removing http:// from it
  • Allow icons to accept transparent color on border and background
  • Fix phone by removing http:// from it
  • Updated Medium logo
  • Added a proper uninstall hook
  • Added a filter to disable the CSS
  • Added filter to update the HTML markup
Download this release

Release Info

Developer studiopress
Plugin Icon 128x128 Simple Social Icons
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.0.1 to 3.0.0

Gruntfile.js CHANGED
@@ -18,9 +18,66 @@ module.exports = function(grunt) {
18
  all: [ '*.php', 'lib/**/*.php' ]
19
  },
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  // I18n
23
-
24
  // Add text domain as last argument of i18n functions
25
  addtextdomain: {
26
  php: {
@@ -43,15 +100,15 @@ module.exports = function(grunt) {
43
  '_e:1,2d',
44
  '_x:1,2c,3d',
45
  '_ex:1,2c,3d',
46
- '_n:1,2,4d',
47
  '_nx:1,2,4c,5d',
48
  '_n_noop:1,2,3d',
49
  '_nx_noop:1,2,3c,4d',
50
- 'esc_attr__:1,2d',
51
  'esc_html__:1,2d',
52
- 'esc_attr_e:1,2d',
53
  'esc_html_e:1,2d',
54
- 'esc_attr_x:1,2c,3d',
55
  'esc_html_x:1,2c,3d'
56
  ]
57
  },
@@ -91,7 +148,18 @@ module.exports = function(grunt) {
91
  }
92
  },
93
 
 
 
 
 
 
 
 
 
94
 
95
  });
96
 
 
 
 
97
  };
18
  all: [ '*.php', 'lib/**/*.php' ]
19
  },
20
 
21
+ replace: {
22
+ pluginfile: {
23
+ options: {
24
+ patterns: [{
25
+ match: /^.*Version:.*$/m,
26
+ replacement: ' * Version: <%= pkg.plugin.version %>'
27
+
28
+ }]
29
+ },
30
+ files: [
31
+ { src: ['<%= pkg.main_plugin_file %>.php'], dest: './' }
32
+ ]
33
+ }
34
+ },
35
+
36
+ // Copy files to create the zip file.
37
+ copy: {
38
+ // excluding not necessary files
39
+ main: {
40
+ src: [
41
+ '**',
42
+ '!node_modules/**',
43
+ '!build/**',
44
+ '!vendor/**',
45
+ '!.git/**',
46
+ '!composer.json',
47
+ '!composer.lock',
48
+ '!package-lock.json',
49
+ '!Gruntfile.js',
50
+ '!package.json',
51
+ '!.gitignore',
52
+ '!.gitmodules',
53
+ '!**/Gruntfile.js',
54
+ '!**/package.json',
55
+ '!README.md',
56
+ '!**/*~'
57
+ ],
58
+ dest: 'build/<%= pkg.name %>/'
59
+ },
60
+ },
61
+
62
+ // Build zip file.
63
+ compress: {
64
+ main: {
65
+ options: {
66
+ archive: '<%= pkg.name %>.zip'
67
+ },
68
+ files: [{
69
+ expand: true,
70
+ cwd: 'build/<%= pkg.name %>',
71
+ src: [
72
+ '**/*',
73
+ ],
74
+ dest: '<%= pkg.name %>/'
75
+ }]
76
+ }
77
+ },
78
 
79
  // I18n
80
+
81
  // Add text domain as last argument of i18n functions
82
  addtextdomain: {
83
  php: {
100
  '_e:1,2d',
101
  '_x:1,2c,3d',
102
  '_ex:1,2c,3d',
103
+ '_n:1,2,4d',
104
  '_nx:1,2,4c,5d',
105
  '_n_noop:1,2,3d',
106
  '_nx_noop:1,2,3c,4d',
107
+ 'esc_attr__:1,2d',
108
  'esc_html__:1,2d',
109
+ 'esc_attr_e:1,2d',
110
  'esc_html_e:1,2d',
111
+ 'esc_attr_x:1,2c,3d',
112
  'esc_html_x:1,2c,3d'
113
  ]
114
  },
148
  }
149
  },
150
 
151
+ wptools: {
152
+ test_wordpress: {
153
+ options: {
154
+ test: 'wordpress',
155
+ readme: 'readme.txt',
156
+ },
157
+ },
158
+ },
159
 
160
  });
161
 
162
+ grunt.registerTask('default', ['phplint']);
163
+ grunt.registerTask('build', ['checktextdomain', 'wptools', 'makepot', 'replace:pluginfile', 'copy:main', 'compress:main'])
164
+
165
  };
README.md CHANGED
@@ -1,34 +1,44 @@
1
- # Simple Social Icons
 
 
 
 
 
2
 
3
- Contributors:
4
- * [StudioPress](https://github.com/studiopress)
5
- * [Nathan Rice](https://github.com/nathanrice)
6
- * [Brian Gardner](https://github.com/bgardner)
7
- * [Lauren Mancke](https://github.com/laurenmancke)
8
- * [Shannon Hale](https://github.com/shannonsans)
9
 
10
- ### Description
11
 
12
  Simple Social Icons is an easy to use, customizable way to display icons that link visitors to your various social profiles. With it, you can easily choose which profiles to link to, customize the color and size of your icons, as well as align them to the left, center, or right, all from the widget form (no settings page necessary!).
13
 
14
- ### Installation
 
 
15
 
16
  1. Upload the entire simple-social-icons folder to the /wp-content/plugins/ directory
17
- 2. Activate the plugin through the 'Plugins' menu in WordPress
18
- 3. In your Widgets menu, simply drag the widget labeled "Simple Social Icons" into a widget area.
19
- 4. Configure the widget by choosing a title, icon size and color, and the URLs to your various social profiles.
20
 
21
- ### Frequently Asked Questions
22
 
23
- ##### Can I reorder the icons?
24
 
25
  Yes, icons can be reordered with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Reorder-icons-in-version-2.0
26
 
27
- ##### Can I add an icon?
28
 
29
  Yes, icons can be added with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Add-an-additional-icon-in-version-2.0
30
 
31
- ##### Which services are included?
 
 
 
 
 
 
 
 
32
 
33
  * Behance
34
  * Bloglovin
@@ -55,80 +65,91 @@ Yes, icons can be added with the use of a filter. See: https://github.com/copybl
55
 
56
  NOTE - The rights to each pictogram in the social extension are either trademarked or copyrighted by the respective company.
57
 
58
- ##### Changelog
59
 
60
- 0.9.0
61
- * Initial Beta Release
 
 
 
 
 
 
 
 
62
 
63
- 0.9.1
64
- * Fixed some styling issues
 
 
 
 
65
 
66
- 0.9.2
67
- * Added new profile options
68
- * Changed default border radius to 3px
69
 
70
- 0.9.3
71
- * Fixed CSS conflict in some themes
72
 
73
- 0.9.4
74
- * Added YouTube icon
75
- * Added bottom margin to icons
76
 
77
- 0.9.5
78
- * Added Instagram icon
79
 
80
- 1.0.0
81
- * Switched to icon fonts, rather than images
82
 
83
- 1.0.1
84
- * Made color and background color more specific in the CSS to avoid conflicts
85
 
86
- 1.0.2
87
- * More specific in the CSS to avoid conflicts
88
 
89
- 1.0.3
90
- * Added Tumblr icon
91
 
92
- 1.0.4
93
- * Updated version in enqueue script function
 
 
 
94
 
95
- 1.0.5
96
  * Updated LICENSE.txt file to include social extension
97
 
98
- 1.0.6
99
- * Added filters
100
 
101
- 1.0.7
102
- * Added Bloglovin icon
103
 
104
- 1.0.8
105
- * Added border options
106
 
107
- 1.0.9
108
- * PHP7 compatibility
109
 
110
- 1.0.10
111
- * Update textdomain, generate POT
112
 
113
- 1.0.11
114
- * Update enqueue version for stylesheet, for cache busting
115
 
116
- 1.0.12
117
- * Prevent ModSecurity blocking fonts from loading
 
118
 
119
- 1.0.13
120
- * Add textdomain loader
121
 
122
- 1.0.14
123
- * Accessibility improvements: change icon color on focus as well as on hover, add text description for assistive technologies
 
124
 
125
- 2.0.0
126
- * Added Behance, Medium, Periscope, Phone, Snapchat, and Xing icons
127
- * Switched to svg, rather than icon font
128
 
129
- 2.0.1
130
- * Fixed typo in Snapchat icon markup
131
- * Made CSS selectors more specific
132
- * Added classes to each icon
133
- * Added plugin version to enqueued CSS
134
- * Updated Google + icon
1
+ === Plugin Name ===
2
+ Contributors: studiopress, nathanrice, bgardner, laurenmancke, shannonsans, modernnerd, marksabbath, damiencarbery, helgatheviking, littlerchicken, tiagohillebrandt, wpmuguru, michaelbeil, norcross, rafaltomal
3
+ Tags: social media, social networking, social profiles
4
+ Requires at least: 4.0
5
+ Tested up to: 4.9
6
+ Stable tag: 3.0.0
7
 
8
+ This plugin allows you to insert social icons in any widget area.
 
 
 
 
 
9
 
10
+ == Description ==
11
 
12
  Simple Social Icons is an easy to use, customizable way to display icons that link visitors to your various social profiles. With it, you can easily choose which profiles to link to, customize the color and size of your icons, as well as align them to the left, center, or right, all from the widget form (no settings page necessary!).
13
 
14
+ *Note: The simple_social_default_glyphs filter has been deprecated from this plugin.
15
+
16
+ == Installation ==
17
 
18
  1. Upload the entire simple-social-icons folder to the /wp-content/plugins/ directory
19
+ 1. Activate the plugin through the 'Plugins' menu in WordPress
20
+ 1. In your Widgets menu, simply drag the widget labeled "Simple Social Icons" into a widget area.
21
+ 1. Configure the widget by choosing a title, icon size and color, and the URLs to your various social profiles.
22
 
23
+ == Frequently Asked Questions ==
24
 
25
+ = Can I reorder the icons? =
26
 
27
  Yes, icons can be reordered with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Reorder-icons-in-version-2.0
28
 
29
+ = Can I add an icon? =
30
 
31
  Yes, icons can be added with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Add-an-additional-icon-in-version-2.0
32
 
33
+ = My icon styling changed after updating =
34
+
35
+ If your theme includes custom icon styling, you can try adding this line to your functions.php file:
36
+
37
+ `add_filter( 'simple_social_disable_custom_css', '__return_true' );`
38
+
39
+ This will remove icon styling options in the widget settings, and prevent Simple Social Icons from overriding custom theme styling.
40
+
41
+ = Which services are included? =
42
 
43
  * Behance
44
  * Bloglovin
65
 
66
  NOTE - The rights to each pictogram in the social extension are either trademarked or copyrighted by the respective company.
67
 
68
+ == Changelog ==
69
 
70
+ = 3.0.0 =
71
+ * Obfuscate email address from spambots
72
+ * Prevent email links to open in new window if option selected
73
+ * Fix saving email by removing http:// from it
74
+ * Allow icons to accept transparent color on border and background
75
+ * Fix phone by removing http:// from it
76
+ * Updated Medium logo
77
+ * Added a proper uninstall hook
78
+ * Added a filter to disable the CSS
79
+ * Added filter to update the HTML markup
80
 
81
+ = 2.0.1 =
82
+ * Fixed typo in Snapchat icon markup
83
+ * Made CSS selectors more specific
84
+ * Added classes to each icon
85
+ * Added plugin version to enqueued CSS
86
+ * Updated Google + icon
87
 
88
+ = 2.0.0 =
89
+ * Added Behance, Medium, Periscope, Phone, Snapchat, and Xing icons
90
+ * Switched to svg, rather than icon font
91
 
92
+ = 1.0.14 =
93
+ * Accessibility improvements: change icon color on focus as well as on hover, add text description for assistive technologies
94
 
95
+ = 1.0.13 =
96
+ * Add textdomain loader
 
97
 
98
+ = 1.0.12 =
99
+ * Prevent ModSecurity blocking fonts from loading
100
 
101
+ = 1.0.11 =
102
+ * Update enqueue version for stylesheet, for cache busting
103
 
104
+ = 1.0.10 =
105
+ * Update textdomain, generate POT
106
 
107
+ = 1.0.9 =
108
+ * PHP7 compatibility
109
 
110
+ = 1.0.8 =
111
+ * Added border options
112
 
113
+ = 1.0.7 =
114
+ * Added Bloglovin icon
115
+
116
+ = 1.0.6 =
117
+ * Added filters
118
 
119
+ = 1.0.5 =
120
  * Updated LICENSE.txt file to include social extension
121
 
122
+ = 1.0.4 =
123
+ * Updated version in enqueue script function
124
 
125
+ = 1.0.3 =
126
+ * Added Tumblr icon
127
 
128
+ = 1.0.2 =
129
+ * More specific in the CSS to avoid conflicts
130
 
131
+ = 1.0.1 =
132
+ * Made color and background color more specific in the CSS to avoid conflicts
133
 
134
+ = 1.0.0 =
135
+ * Switched to icon fonts, rather than images
136
 
137
+ = 0.9.5 =
138
+ * Added Instagram icon
139
 
140
+ = 0.9.4 =
141
+ * Added YouTube icon
142
+ * Added bottom margin to icons
143
 
144
+ = 0.9.3 =
145
+ * Fixed CSS conflict in some themes
146
 
147
+ = 0.9.2 =
148
+ * Added new profile options
149
+ * Changed default border radius to 3px
150
 
151
+ = 0.9.1 =
152
+ * Fixed some styling issues
 
153
 
154
+ = 0.9.0 =
155
+ * Initial Beta Release
 
 
 
 
icons/SVG/medium.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M11.329 8.579v18.329c0 .261-.064.482-.195.664s-.32.273-.57.273c-.177 0-.348-.041-.516-.125l-7.266-3.641c-.218-.104-.404-.279-.555-.523S2 23.068 2 22.829V5.016c0-.209.052-.386.157-.532s.255-.218.454-.218c.146 0 .375.079.688.234l7.984 4c.03.032.046.057.046.079zm1 1.578l8.343 13.532-8.343-4.157v-9.375zM30 10.438v16.468c0 .261-.073.471-.218.632s-.343.243-.593.243-.495-.068-.734-.204l-6.891-3.438L30 10.437zm-.046-1.875c0 .032-1.336 2.216-4.007 6.555s-4.238 6.877-4.695 7.618l-6.095-9.907 5.063-8.234c.177-.291.448-.438.813-.438.146 0 .282.032.407.093l8.454 4.218c.039.021.061.054.061.095z"/></svg>
1
+ <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="M3.5 8.3c.05-.4-.1-.8-.4-1.07L.02 3.55V3h9.5l7.34 16.1L23.32 3h9.06v.55l-2.62 2.5a.77.77 0 0 0-.29.74V25.2c-.04.28.07.56.3.73l2.55 2.51V29H19.47v-.55l2.65-2.57c.26-.26.26-.33.26-.73v-14.9l-7.36 18.7h-1l-8.56-18.7v12.53c-.07.53.1 1.06.48 1.44l3.44 4.17v.55H-.38v-.55l3.44-4.17c.37-.38.53-.92.44-1.44V8.3z"/></svg>
languages/simple-social-icons.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2015 Nathan Rice
2
  # This file is distributed under the GNU General Public License v2.0 (or later).
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Simple Social Icons 1.0.14\n"
6
  "Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
7
- "POT-Creation-Date: 2015-11-17 16:53:57+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: StudioPress <translations@studiopress.com>\n"
13
  "Language-Team: English <translations@studiopress.com>\n"
14
  "X-Generator: grunt-wp-i18n 0.4.4\n"
@@ -24,135 +24,183 @@ msgstr ""
24
  "X-Poedit-SearchPath-0: .\n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: simple-social-icons.php:124
 
 
 
 
 
 
 
 
28
  msgid "Bloglovin URI"
29
  msgstr ""
30
 
31
- #: simple-social-icons.php:125
32
  msgid "Bloglovin"
33
  msgstr ""
34
 
35
- #: simple-social-icons.php:128
36
  msgid "Dribbble URI"
37
  msgstr ""
38
 
39
- #: simple-social-icons.php:129
40
  msgid "Dribbble"
41
  msgstr ""
42
 
43
- #: simple-social-icons.php:132
44
  msgid "Email URI"
45
  msgstr ""
46
 
47
- #: simple-social-icons.php:133
48
  msgid "Email"
49
  msgstr ""
50
 
51
- #: simple-social-icons.php:136
52
  msgid "Facebook URI"
53
  msgstr ""
54
 
55
- #: simple-social-icons.php:137
56
  msgid "Facebook"
57
  msgstr ""
58
 
59
- #: simple-social-icons.php:140
60
  msgid "Flickr URI"
61
  msgstr ""
62
 
63
- #: simple-social-icons.php:141
64
  msgid "Flickr"
65
  msgstr ""
66
 
67
- #: simple-social-icons.php:144
68
  msgid "GitHub URI"
69
  msgstr ""
70
 
71
- #: simple-social-icons.php:145
72
  msgid "GitHub"
73
  msgstr ""
74
 
75
- #: simple-social-icons.php:148
76
  msgid "Google+ URI"
77
  msgstr ""
78
 
79
- #: simple-social-icons.php:149
80
  msgid "Google+"
81
  msgstr ""
82
 
83
- #: simple-social-icons.php:152
84
  msgid "Instagram URI"
85
  msgstr ""
86
 
87
- #: simple-social-icons.php:153
88
  msgid "Instagram"
89
  msgstr ""
90
 
91
- #: simple-social-icons.php:156
92
  msgid "Linkedin URI"
93
  msgstr ""
94
 
95
- #: simple-social-icons.php:157
96
- msgid "Linkedin"
97
  msgstr ""
98
 
99
- #: simple-social-icons.php:160
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  msgid "Pinterest URI"
101
  msgstr ""
102
 
103
- #: simple-social-icons.php:161
104
  msgid "Pinterest"
105
  msgstr ""
106
 
107
- #: simple-social-icons.php:164
108
  msgid "RSS URI"
109
  msgstr ""
110
 
111
- #: simple-social-icons.php:165
112
  msgid "RSS"
113
  msgstr ""
114
 
115
- #: simple-social-icons.php:168
 
 
 
 
 
 
 
 
116
  msgid "StumbleUpon URI"
117
  msgstr ""
118
 
119
- #: simple-social-icons.php:169
120
  msgid "StumbleUpon"
121
  msgstr ""
122
 
123
- #: simple-social-icons.php:172
124
  msgid "Tumblr URI"
125
  msgstr ""
126
 
127
- #: simple-social-icons.php:173
128
  msgid "Tumblr"
129
  msgstr ""
130
 
131
- #: simple-social-icons.php:176
132
  msgid "Twitter URI"
133
  msgstr ""
134
 
135
- #: simple-social-icons.php:177
136
  msgid "Twitter"
137
  msgstr ""
138
 
139
- #: simple-social-icons.php:180
140
  msgid "Vimeo URI"
141
  msgstr ""
142
 
143
- #: simple-social-icons.php:181
144
  msgid "Vimeo"
145
  msgstr ""
146
 
147
- #: simple-social-icons.php:184
 
 
 
 
 
 
 
 
148
  msgid "YouTube URI"
149
  msgstr ""
150
 
151
- #: simple-social-icons.php:185
152
  msgid "YouTube"
153
  msgstr ""
154
 
155
- #: simple-social-icons.php:191
156
  msgid "Displays select social icons."
157
  msgstr ""
158
 
@@ -160,78 +208,78 @@ msgstr ""
160
  msgid "Simple Social Icons"
161
  msgstr ""
162
 
163
- #: simple-social-icons.php:276
164
  msgid "Title:"
165
  msgstr ""
166
 
167
- #: simple-social-icons.php:278
168
  msgid "Open links in new window?"
169
  msgstr ""
170
 
171
- #: simple-social-icons.php:280
172
  msgid "Icon Size"
173
  msgstr ""
174
 
175
- #: simple-social-icons.php:282
176
  msgid "Icon Border Radius:"
177
  msgstr ""
178
 
179
- #: simple-social-icons.php:284
180
  msgid "Border Width:"
181
  msgstr ""
182
 
183
- #: simple-social-icons.php:287
184
  msgid "Alignment"
185
  msgstr ""
186
 
187
- #: simple-social-icons.php:289
188
  msgid "Align Left"
189
  msgstr ""
190
 
191
- #: simple-social-icons.php:290
192
  msgid "Align Center"
193
  msgstr ""
194
 
195
- #: simple-social-icons.php:291
196
  msgid "Align Right"
197
  msgstr ""
198
 
199
- #: simple-social-icons.php:297
200
  msgid "Icon Color:"
201
  msgstr ""
202
 
203
- #: simple-social-icons.php:299
204
  msgid "Icon Hover Color:"
205
  msgstr ""
206
 
207
- #: simple-social-icons.php:301
208
  msgid "Background Color:"
209
  msgstr ""
210
 
211
- #: simple-social-icons.php:303
212
  msgid "Background Hover Color:"
213
  msgstr ""
214
 
215
- #: simple-social-icons.php:305
216
  msgid "Border Color:"
217
  msgstr ""
218
 
219
- #: simple-social-icons.php:307
220
  msgid "Border Hover Color:"
221
  msgstr ""
222
 
223
  #. Plugin URI of the plugin/theme
224
- msgid "http://wordpress.org/plugins/simple-social-icons/"
225
  msgstr ""
226
 
227
  #. Description of the plugin/theme
228
- msgid "A simple, CSS and icon driven social icons widget."
229
  msgstr ""
230
 
231
  #. Author of the plugin/theme
232
- msgid "Nathan Rice"
233
  msgstr ""
234
 
235
  #. Author URI of the plugin/theme
236
- msgid "http://www.nathanrice.net/"
237
  msgstr ""
1
+ # Copyright (C) 2018 StudioPress
2
  # This file is distributed under the GNU General Public License v2.0 (or later).
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Simple Social Icons 3.0.0\n"
6
  "Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
7
+ "POT-Creation-Date: 2018-10-10 13:33:10+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: StudioPress <translations@studiopress.com>\n"
13
  "Language-Team: English <translations@studiopress.com>\n"
14
  "X-Generator: grunt-wp-i18n 0.4.4\n"
24
  "X-Poedit-SearchPath-0: .\n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: simple-social-icons.php:128
28
+ msgid "Behance URI"
29
+ msgstr ""
30
+
31
+ #: simple-social-icons.php:129
32
+ msgid "Behance"
33
+ msgstr ""
34
+
35
+ #: simple-social-icons.php:132
36
  msgid "Bloglovin URI"
37
  msgstr ""
38
 
39
+ #: simple-social-icons.php:133
40
  msgid "Bloglovin"
41
  msgstr ""
42
 
43
+ #: simple-social-icons.php:136
44
  msgid "Dribbble URI"
45
  msgstr ""
46
 
47
+ #: simple-social-icons.php:137
48
  msgid "Dribbble"
49
  msgstr ""
50
 
51
+ #: simple-social-icons.php:140
52
  msgid "Email URI"
53
  msgstr ""
54
 
55
+ #: simple-social-icons.php:141
56
  msgid "Email"
57
  msgstr ""
58
 
59
+ #: simple-social-icons.php:144
60
  msgid "Facebook URI"
61
  msgstr ""
62
 
63
+ #: simple-social-icons.php:145
64
  msgid "Facebook"
65
  msgstr ""
66
 
67
+ #: simple-social-icons.php:148
68
  msgid "Flickr URI"
69
  msgstr ""
70
 
71
+ #: simple-social-icons.php:149
72
  msgid "Flickr"
73
  msgstr ""
74
 
75
+ #: simple-social-icons.php:152
76
  msgid "GitHub URI"
77
  msgstr ""
78
 
79
+ #: simple-social-icons.php:153
80
  msgid "GitHub"
81
  msgstr ""
82
 
83
+ #: simple-social-icons.php:156
84
  msgid "Google+ URI"
85
  msgstr ""
86
 
87
+ #: simple-social-icons.php:157
88
  msgid "Google+"
89
  msgstr ""
90
 
91
+ #: simple-social-icons.php:160
92
  msgid "Instagram URI"
93
  msgstr ""
94
 
95
+ #: simple-social-icons.php:161
96
  msgid "Instagram"
97
  msgstr ""
98
 
99
+ #: simple-social-icons.php:164
100
  msgid "Linkedin URI"
101
  msgstr ""
102
 
103
+ #: simple-social-icons.php:165
104
+ msgid "LinkedIn"
105
  msgstr ""
106
 
107
+ #: simple-social-icons.php:168
108
+ msgid "Medium URI"
109
+ msgstr ""
110
+
111
+ #: simple-social-icons.php:169
112
+ msgid "Medium"
113
+ msgstr ""
114
+
115
+ #: simple-social-icons.php:172
116
+ msgid "Periscope URI"
117
+ msgstr ""
118
+
119
+ #: simple-social-icons.php:173
120
+ msgid "Periscope"
121
+ msgstr ""
122
+
123
+ #: simple-social-icons.php:176
124
+ msgid "Phone URI"
125
+ msgstr ""
126
+
127
+ #: simple-social-icons.php:177
128
+ msgid "Phone"
129
+ msgstr ""
130
+
131
+ #: simple-social-icons.php:180
132
  msgid "Pinterest URI"
133
  msgstr ""
134
 
135
+ #: simple-social-icons.php:181
136
  msgid "Pinterest"
137
  msgstr ""
138
 
139
+ #: simple-social-icons.php:184
140
  msgid "RSS URI"
141
  msgstr ""
142
 
143
+ #: simple-social-icons.php:185
144
  msgid "RSS"
145
  msgstr ""
146
 
147
+ #: simple-social-icons.php:188
148
+ msgid "Snapchat URI"
149
+ msgstr ""
150
+
151
+ #: simple-social-icons.php:189
152
+ msgid "Snapchat"
153
+ msgstr ""
154
+
155
+ #: simple-social-icons.php:192
156
  msgid "StumbleUpon URI"
157
  msgstr ""
158
 
159
+ #: simple-social-icons.php:193
160
  msgid "StumbleUpon"
161
  msgstr ""
162
 
163
+ #: simple-social-icons.php:196
164
  msgid "Tumblr URI"
165
  msgstr ""
166
 
167
+ #: simple-social-icons.php:197
168
  msgid "Tumblr"
169
  msgstr ""
170
 
171
+ #: simple-social-icons.php:200
172
  msgid "Twitter URI"
173
  msgstr ""
174
 
175
+ #: simple-social-icons.php:201
176
  msgid "Twitter"
177
  msgstr ""
178
 
179
+ #: simple-social-icons.php:204
180
  msgid "Vimeo URI"
181
  msgstr ""
182
 
183
+ #: simple-social-icons.php:205
184
  msgid "Vimeo"
185
  msgstr ""
186
 
187
+ #: simple-social-icons.php:208
188
+ msgid "Xing URI"
189
+ msgstr ""
190
+
191
+ #: simple-social-icons.php:209
192
+ msgid "xing"
193
+ msgstr ""
194
+
195
+ #: simple-social-icons.php:212
196
  msgid "YouTube URI"
197
  msgstr ""
198
 
199
+ #: simple-social-icons.php:213
200
  msgid "YouTube"
201
  msgstr ""
202
 
203
+ #: simple-social-icons.php:238
204
  msgid "Displays select social icons."
205
  msgstr ""
206
 
208
  msgid "Simple Social Icons"
209
  msgstr ""
210
 
211
+ #: simple-social-icons.php:325
212
  msgid "Title:"
213
  msgstr ""
214
 
215
+ #: simple-social-icons.php:327
216
  msgid "Open links in new window?"
217
  msgstr ""
218
 
219
+ #: simple-social-icons.php:331
220
  msgid "Icon Size"
221
  msgstr ""
222
 
223
+ #: simple-social-icons.php:333
224
  msgid "Icon Border Radius:"
225
  msgstr ""
226
 
227
+ #: simple-social-icons.php:335
228
  msgid "Border Width:"
229
  msgstr ""
230
 
231
+ #: simple-social-icons.php:338
232
  msgid "Alignment"
233
  msgstr ""
234
 
235
+ #: simple-social-icons.php:340
236
  msgid "Align Left"
237
  msgstr ""
238
 
239
+ #: simple-social-icons.php:341
240
  msgid "Align Center"
241
  msgstr ""
242
 
243
+ #: simple-social-icons.php:342
244
  msgid "Align Right"
245
  msgstr ""
246
 
247
+ #: simple-social-icons.php:348
248
  msgid "Icon Color:"
249
  msgstr ""
250
 
251
+ #: simple-social-icons.php:350
252
  msgid "Icon Hover Color:"
253
  msgstr ""
254
 
255
+ #: simple-social-icons.php:352
256
  msgid "Background Color:"
257
  msgstr ""
258
 
259
+ #: simple-social-icons.php:354
260
  msgid "Background Hover Color:"
261
  msgstr ""
262
 
263
+ #: simple-social-icons.php:356
264
  msgid "Border Color:"
265
  msgstr ""
266
 
267
+ #: simple-social-icons.php:358
268
  msgid "Border Hover Color:"
269
  msgstr ""
270
 
271
  #. Plugin URI of the plugin/theme
272
+ msgid "https://wordpress.org/plugins/simple-social-icons/"
273
  msgstr ""
274
 
275
  #. Description of the plugin/theme
276
+ msgid "A simple CSS and SVG driven social icons widget."
277
  msgstr ""
278
 
279
  #. Author of the plugin/theme
280
+ msgid "StudioPress"
281
  msgstr ""
282
 
283
  #. Author URI of the plugin/theme
284
+ msgid "https://www.studiopress.com/"
285
  msgstr ""
package-lock.json ADDED
@@ -0,0 +1,2672 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "simple-social-icons",
3
+ "requires": true,
4
+ "lockfileVersion": 1,
5
+ "dependencies": {
6
+ "@ndc/wptools": {
7
+ "version": "0.1.0",
8
+ "resolved": "https://registry.npmjs.org/@ndc/wptools/-/wptools-0.1.0.tgz",
9
+ "integrity": "sha512-nCaxyzfuDG4xByALw9Iwn6Jnjdplq7V7ppOLEzD7tJ7rEjmIoRQ2m+dbqhmQv32kG4mGBT0EENFiKajdLCB99Q==",
10
+ "dev": true,
11
+ "requires": {
12
+ "axios": "^0.18.0"
13
+ }
14
+ },
15
+ "abbrev": {
16
+ "version": "1.1.1",
17
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
18
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
19
+ "dev": true
20
+ },
21
+ "ajv": {
22
+ "version": "5.5.2",
23
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
24
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
25
+ "dev": true,
26
+ "optional": true,
27
+ "requires": {
28
+ "co": "^4.6.0",
29
+ "fast-deep-equal": "^1.0.0",
30
+ "fast-json-stable-stringify": "^2.0.0",
31
+ "json-schema-traverse": "^0.3.0"
32
+ }
33
+ },
34
+ "ansi-regex": {
35
+ "version": "2.1.1",
36
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
37
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
38
+ "dev": true
39
+ },
40
+ "ansi-styles": {
41
+ "version": "3.2.1",
42
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
43
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
44
+ "dev": true,
45
+ "requires": {
46
+ "color-convert": "^1.9.0"
47
+ }
48
+ },
49
+ "applause": {
50
+ "version": "1.2.2",
51
+ "resolved": "https://registry.npmjs.org/applause/-/applause-1.2.2.tgz",
52
+ "integrity": "sha1-qEaFeegfZzl7tWNMKZU77c0PVsA=",
53
+ "dev": true,
54
+ "requires": {
55
+ "cson-parser": "^1.1.0",
56
+ "js-yaml": "^3.3.0",
57
+ "lodash": "^3.10.0"
58
+ },
59
+ "dependencies": {
60
+ "lodash": {
61
+ "version": "3.10.1",
62
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
63
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
64
+ "dev": true
65
+ }
66
+ }
67
+ },
68
+ "aproba": {
69
+ "version": "1.2.0",
70
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
71
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
72
+ "dev": true
73
+ },
74
+ "archiver": {
75
+ "version": "1.3.0",
76
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
77
+ "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
78
+ "dev": true,
79
+ "requires": {
80
+ "archiver-utils": "^1.3.0",
81
+ "async": "^2.0.0",
82
+ "buffer-crc32": "^0.2.1",
83
+ "glob": "^7.0.0",
84
+ "lodash": "^4.8.0",
85
+ "readable-stream": "^2.0.0",
86
+ "tar-stream": "^1.5.0",
87
+ "walkdir": "^0.0.11",
88
+ "zip-stream": "^1.1.0"
89
+ },
90
+ "dependencies": {
91
+ "async": {
92
+ "version": "2.6.1",
93
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
94
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
95
+ "dev": true,
96
+ "requires": {
97
+ "lodash": "^4.17.10"
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "archiver-utils": {
103
+ "version": "1.3.0",
104
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
105
+ "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
106
+ "dev": true,
107
+ "requires": {
108
+ "glob": "^7.0.0",
109
+ "graceful-fs": "^4.1.0",
110
+ "lazystream": "^1.0.0",
111
+ "lodash": "^4.8.0",
112
+ "normalize-path": "^2.0.0",
113
+ "readable-stream": "^2.0.0"
114
+ }
115
+ },
116
+ "are-we-there-yet": {
117
+ "version": "1.1.5",
118
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
119
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
120
+ "dev": true,
121
+ "requires": {
122
+ "delegates": "^1.0.0",
123
+ "readable-stream": "^2.0.6"
124
+ }
125
+ },
126
+ "argparse": {
127
+ "version": "1.0.10",
128
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
129
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
130
+ "dev": true,
131
+ "requires": {
132
+ "sprintf-js": "~1.0.2"
133
+ },
134
+ "dependencies": {
135
+ "sprintf-js": {
136
+ "version": "1.0.3",
137
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
138
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
139
+ "dev": true
140
+ }
141
+ }
142
+ },
143
+ "array-differ": {
144
+ "version": "1.0.0",
145
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
146
+ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
147
+ "dev": true
148
+ },
149
+ "array-find-index": {
150
+ "version": "1.0.2",
151
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
152
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
153
+ "dev": true
154
+ },
155
+ "array-union": {
156
+ "version": "1.0.2",
157
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
158
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
159
+ "dev": true,
160
+ "requires": {
161
+ "array-uniq": "^1.0.1"
162
+ }
163
+ },
164
+ "array-uniq": {
165
+ "version": "1.0.3",
166
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
167
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
168
+ "dev": true
169
+ },
170
+ "arrify": {
171
+ "version": "1.0.1",
172
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
173
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
174
+ "dev": true
175
+ },
176
+ "asn1": {
177
+ "version": "0.2.4",
178
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
179
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
180
+ "dev": true,
181
+ "optional": true,
182
+ "requires": {
183
+ "safer-buffer": "~2.1.0"
184
+ }
185
+ },
186
+ "assert-plus": {
187
+ "version": "1.0.0",
188
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
189
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
190
+ "dev": true
191
+ },
192
+ "async": {
193
+ "version": "1.5.2",
194
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
195
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
196
+ "dev": true
197
+ },
198
+ "asynckit": {
199
+ "version": "0.4.0",
200
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
201
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
202
+ "dev": true,
203
+ "optional": true
204
+ },
205
+ "aws-sign2": {
206
+ "version": "0.7.0",
207
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
208
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
209
+ "dev": true,
210
+ "optional": true
211
+ },
212
+ "aws4": {
213
+ "version": "1.8.0",
214
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
215
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
216
+ "dev": true,
217
+ "optional": true
218
+ },
219
+ "axios": {
220
+ "version": "0.18.0",
221
+ "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
222
+ "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
223
+ "dev": true,
224
+ "requires": {
225
+ "follow-redirects": "^1.3.0",
226
+ "is-buffer": "^1.1.5"
227
+ }
228
+ },
229
+ "balanced-match": {
230
+ "version": "1.0.0",
231
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
232
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
233
+ "dev": true
234
+ },
235
+ "base64-js": {
236
+ "version": "1.3.0",
237
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
238
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
239
+ "dev": true
240
+ },
241
+ "bcrypt-pbkdf": {
242
+ "version": "1.0.2",
243
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
244
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
245
+ "dev": true,
246
+ "optional": true,
247
+ "requires": {
248
+ "tweetnacl": "^0.14.3"
249
+ }
250
+ },
251
+ "bl": {
252
+ "version": "1.2.2",
253
+ "resolved": "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
254
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
255
+ "dev": true,
256
+ "requires": {
257
+ "readable-stream": "^2.3.5",
258
+ "safe-buffer": "^5.1.1"
259
+ }
260
+ },
261
+ "block-stream": {
262
+ "version": "0.0.9",
263
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
264
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
265
+ "dev": true,
266
+ "optional": true,
267
+ "requires": {
268
+ "inherits": "~2.0.0"
269
+ }
270
+ },
271
+ "bluebird": {
272
+ "version": "3.5.2",
273
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz",
274
+ "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==",
275
+ "dev": true
276
+ },
277
+ "brace-expansion": {
278
+ "version": "1.1.11",
279
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
280
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
281
+ "dev": true,
282
+ "requires": {
283
+ "balanced-match": "^1.0.0",
284
+ "concat-map": "0.0.1"
285
+ }
286
+ },
287
+ "buffer": {
288
+ "version": "5.2.1",
289
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
290
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
291
+ "dev": true,
292
+ "requires": {
293
+ "base64-js": "^1.0.2",
294
+ "ieee754": "^1.1.4"
295
+ }
296
+ },
297
+ "buffer-alloc": {
298
+ "version": "1.2.0",
299
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
300
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
301
+ "dev": true,
302
+ "requires": {
303
+ "buffer-alloc-unsafe": "^1.1.0",
304
+ "buffer-fill": "^1.0.0"
305
+ }
306
+ },
307
+ "buffer-alloc-unsafe": {
308
+ "version": "1.1.0",
309
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
310
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
311
+ "dev": true
312
+ },
313
+ "buffer-crc32": {
314
+ "version": "0.2.13",
315
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
316
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
317
+ "dev": true
318
+ },
319
+ "buffer-fill": {
320
+ "version": "1.0.0",
321
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
322
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
323
+ "dev": true
324
+ },
325
+ "builtin-modules": {
326
+ "version": "1.1.1",
327
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
328
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
329
+ "dev": true
330
+ },
331
+ "cache-swap": {
332
+ "version": "0.3.0",
333
+ "resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.3.0.tgz",
334
+ "integrity": "sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E=",
335
+ "dev": true,
336
+ "requires": {
337
+ "graceful-fs": "^4.1.2",
338
+ "mkdirp": "^0.5.1",
339
+ "object-assign": "^4.0.1",
340
+ "rimraf": "^2.4.0"
341
+ }
342
+ },
343
+ "camelcase": {
344
+ "version": "2.1.1",
345
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
346
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
347
+ "dev": true
348
+ },
349
+ "camelcase-keys": {
350
+ "version": "2.1.0",
351
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
352
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
353
+ "dev": true,
354
+ "requires": {
355
+ "camelcase": "^2.0.0",
356
+ "map-obj": "^1.0.0"
357
+ }
358
+ },
359
+ "caseless": {
360
+ "version": "0.12.0",
361
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
362
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
363
+ "dev": true,
364
+ "optional": true
365
+ },
366
+ "chalk": {
367
+ "version": "2.4.1",
368
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
369
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
370
+ "dev": true,
371
+ "requires": {
372
+ "ansi-styles": "^3.2.1",
373
+ "escape-string-regexp": "^1.0.5",
374
+ "supports-color": "^5.3.0"
375
+ }
376
+ },
377
+ "chownr": {
378
+ "version": "1.1.1",
379
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
380
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
381
+ "dev": true,
382
+ "optional": true
383
+ },
384
+ "co": {
385
+ "version": "4.6.0",
386
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
387
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
388
+ "dev": true,
389
+ "optional": true
390
+ },
391
+ "code-point-at": {
392
+ "version": "1.1.0",
393
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
394
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
395
+ "dev": true
396
+ },
397
+ "coffeescript": {
398
+ "version": "1.10.0",
399
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
400
+ "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
401
+ "dev": true
402
+ },
403
+ "color-convert": {
404
+ "version": "1.9.3",
405
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
406
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
407
+ "dev": true,
408
+ "requires": {
409
+ "color-name": "1.1.3"
410
+ }
411
+ },
412
+ "color-name": {
413
+ "version": "1.1.3",
414
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
415
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
416
+ "dev": true
417
+ },
418
+ "colors": {
419
+ "version": "1.1.2",
420
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
421
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
422
+ "dev": true
423
+ },
424
+ "combined-stream": {
425
+ "version": "1.0.7",
426
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
427
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
428
+ "dev": true,
429
+ "optional": true,
430
+ "requires": {
431
+ "delayed-stream": "~1.0.0"
432
+ }
433
+ },
434
+ "compress-commons": {
435
+ "version": "1.2.2",
436
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
437
+ "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
438
+ "dev": true,
439
+ "requires": {
440
+ "buffer-crc32": "^0.2.1",
441
+ "crc32-stream": "^2.0.0",
442
+ "normalize-path": "^2.0.0",
443
+ "readable-stream": "^2.0.0"
444
+ }
445
+ },
446
+ "concat-map": {
447
+ "version": "0.0.1",
448
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
449
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
450
+ "dev": true
451
+ },
452
+ "console-control-strings": {
453
+ "version": "1.1.0",
454
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
455
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
456
+ "dev": true
457
+ },
458
+ "core-util-is": {
459
+ "version": "1.0.2",
460
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
461
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
462
+ "dev": true
463
+ },
464
+ "crc": {
465
+ "version": "3.8.0",
466
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
467
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
468
+ "dev": true,
469
+ "requires": {
470
+ "buffer": "^5.1.0"
471
+ }
472
+ },
473
+ "crc32-stream": {
474
+ "version": "2.0.0",
475
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
476
+ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
477
+ "dev": true,
478
+ "requires": {
479
+ "crc": "^3.4.4",
480
+ "readable-stream": "^2.0.0"
481
+ }
482
+ },
483
+ "cson-parser": {
484
+ "version": "1.3.5",
485
+ "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz",
486
+ "integrity": "sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=",
487
+ "dev": true,
488
+ "requires": {
489
+ "coffee-script": "^1.10.0"
490
+ },
491
+ "dependencies": {
492
+ "coffee-script": {
493
+ "version": "1.12.7",
494
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
495
+ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==",
496
+ "dev": true
497
+ }
498
+ }
499
+ },
500
+ "currently-unhandled": {
501
+ "version": "0.4.1",
502
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
503
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
504
+ "dev": true,
505
+ "requires": {
506
+ "array-find-index": "^1.0.1"
507
+ }
508
+ },
509
+ "dashdash": {
510
+ "version": "1.14.1",
511
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
512
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
513
+ "dev": true,
514
+ "optional": true,
515
+ "requires": {
516
+ "assert-plus": "^1.0.0"
517
+ }
518
+ },
519
+ "dateformat": {
520
+ "version": "1.0.12",
521
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
522
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
523
+ "dev": true,
524
+ "requires": {
525
+ "get-stdin": "^4.0.1",
526
+ "meow": "^3.3.0"
527
+ }
528
+ },
529
+ "debug": {
530
+ "version": "3.1.0",
531
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
532
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
533
+ "dev": true,
534
+ "requires": {
535
+ "ms": "2.0.0"
536
+ }
537
+ },
538
+ "decamelize": {
539
+ "version": "1.2.0",
540
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
541
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
542
+ "dev": true
543
+ },
544
+ "decompress-response": {
545
+ "version": "3.3.0",
546
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
547
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
548
+ "dev": true,
549
+ "optional": true,
550
+ "requires": {
551
+ "mimic-response": "^1.0.0"
552
+ }
553
+ },
554
+ "deep-extend": {
555
+ "version": "0.6.0",
556
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
557
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
558
+ "dev": true,
559
+ "optional": true
560
+ },
561
+ "delayed-stream": {
562
+ "version": "1.0.0",
563
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
564
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
565
+ "dev": true
566
+ },
567
+ "delegates": {
568
+ "version": "1.0.0",
569
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
570
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
571
+ "dev": true
572
+ },
573
+ "detect-libc": {
574
+ "version": "0.2.0",
575
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz",
576
+ "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=",
577
+ "dev": true,
578
+ "optional": true
579
+ },
580
+ "ecc-jsbn": {
581
+ "version": "0.1.2",
582
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
583
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
584
+ "dev": true,
585
+ "optional": true,
586
+ "requires": {
587
+ "jsbn": "~0.1.0",
588
+ "safer-buffer": "^2.1.0"
589
+ }
590
+ },
591
+ "encoding": {
592
+ "version": "0.1.12",
593
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
594
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
595
+ "dev": true,
596
+ "requires": {
597
+ "iconv-lite": "~0.4.13"
598
+ }
599
+ },
600
+ "end-of-stream": {
601
+ "version": "1.4.1",
602
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
603
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
604
+ "dev": true,
605
+ "requires": {
606
+ "once": "^1.4.0"
607
+ }
608
+ },
609
+ "error-ex": {
610
+ "version": "1.3.2",
611
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
612
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
613
+ "dev": true,
614
+ "requires": {
615
+ "is-arrayish": "^0.2.1"
616
+ }
617
+ },
618
+ "escape-string-regexp": {
619
+ "version": "1.0.5",
620
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
621
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
622
+ "dev": true
623
+ },
624
+ "esprima": {
625
+ "version": "2.7.3",
626
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
627
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
628
+ "dev": true
629
+ },
630
+ "eventemitter2": {
631
+ "version": "0.4.14",
632
+ "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
633
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
634
+ "dev": true
635
+ },
636
+ "exit": {
637
+ "version": "0.1.2",
638
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
639
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
640
+ "dev": true
641
+ },
642
+ "expand-template": {
643
+ "version": "1.1.1",
644
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
645
+ "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==",
646
+ "dev": true,
647
+ "optional": true
648
+ },
649
+ "extend": {
650
+ "version": "3.0.2",
651
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
652
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
653
+ "dev": true,
654
+ "optional": true
655
+ },
656
+ "extsprintf": {
657
+ "version": "1.3.0",
658
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
659
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
660
+ "dev": true
661
+ },
662
+ "fast-deep-equal": {
663
+ "version": "1.1.0",
664
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
665
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
666
+ "dev": true,
667
+ "optional": true
668
+ },
669
+ "fast-json-stable-stringify": {
670
+ "version": "2.0.0",
671
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
672
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
673
+ "dev": true,
674
+ "optional": true
675
+ },
676
+ "file-sync-cmp": {
677
+ "version": "0.1.1",
678
+ "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
679
+ "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
680
+ "dev": true
681
+ },
682
+ "find-up": {
683
+ "version": "1.1.2",
684
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
685
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
686
+ "dev": true,
687
+ "requires": {
688
+ "path-exists": "^2.0.0",
689
+ "pinkie-promise": "^2.0.0"
690
+ }
691
+ },
692
+ "findup-sync": {
693
+ "version": "0.3.0",
694
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
695
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
696
+ "dev": true,
697
+ "requires": {
698
+ "glob": "~5.0.0"
699
+ },
700
+ "dependencies": {
701
+ "glob": {
702
+ "version": "5.0.15",
703
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
704
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
705
+ "dev": true,
706
+ "requires": {
707
+ "inflight": "^1.0.4",
708
+ "inherits": "2",
709
+ "minimatch": "2 || 3",
710
+ "once": "^1.3.0",
711
+ "path-is-absolute": "^1.0.0"
712
+ }
713
+ }
714
+ }
715
+ },
716
+ "follow-redirects": {
717
+ "version": "1.5.9",
718
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz",
719
+ "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==",
720
+ "dev": true,
721
+ "requires": {
722
+ "debug": "=3.1.0"
723
+ }
724
+ },
725
+ "forever-agent": {
726
+ "version": "0.6.1",
727
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
728
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
729
+ "dev": true,
730
+ "optional": true
731
+ },
732
+ "form-data": {
733
+ "version": "2.3.2",
734
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
735
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
736
+ "dev": true,
737
+ "optional": true,
738
+ "requires": {
739
+ "asynckit": "^0.4.0",
740
+ "combined-stream": "1.0.6",
741
+ "mime-types": "^2.1.12"
742
+ },
743
+ "dependencies": {
744
+ "combined-stream": {
745
+ "version": "1.0.6",
746
+ "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
747
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
748
+ "dev": true,
749
+ "optional": true,
750
+ "requires": {
751
+ "delayed-stream": "~1.0.0"
752
+ }
753
+ }
754
+ }
755
+ },
756
+ "fs-constants": {
757
+ "version": "1.0.0",
758
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
759
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
760
+ "dev": true
761
+ },
762
+ "fs.realpath": {
763
+ "version": "1.0.0",
764
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
765
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
766
+ "dev": true
767
+ },
768
+ "fstream": {
769
+ "version": "1.0.11",
770
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
771
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
772
+ "dev": true,
773
+ "requires": {
774
+ "graceful-fs": "^4.1.2",
775
+ "inherits": "~2.0.0",
776
+ "mkdirp": ">=0.5 0",
777
+ "rimraf": "2"
778
+ }
779
+ },
780
+ "gauge": {
781
+ "version": "2.7.4",
782
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
783
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
784
+ "dev": true,
785
+ "requires": {
786
+ "aproba": "^1.0.3",
787
+ "console-control-strings": "^1.0.0",
788
+ "has-unicode": "^2.0.0",
789
+ "object-assign": "^4.1.0",
790
+ "signal-exit": "^3.0.0",
791
+ "string-width": "^1.0.1",
792
+ "strip-ansi": "^3.0.1",
793
+ "wide-align": "^1.1.0"
794
+ }
795
+ },
796
+ "get-stdin": {
797
+ "version": "4.0.1",
798
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
799
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
800
+ "dev": true
801
+ },
802
+ "getobject": {
803
+ "version": "0.1.0",
804
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
805
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
806
+ "dev": true
807
+ },
808
+ "getpass": {
809
+ "version": "0.1.7",
810
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
811
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
812
+ "dev": true,
813
+ "optional": true,
814
+ "requires": {
815
+ "assert-plus": "^1.0.0"
816
+ }
817
+ },
818
+ "gettext-parser": {
819
+ "version": "2.0.0",
820
+ "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-2.0.0.tgz",
821
+ "integrity": "sha512-FDs/7XjNw58ToQwJFO7avZZbPecSYgw8PBYhd0An+4JtZSrSzKhEvTsVV2uqdO7VziWTOGSgLGD5YRPdsCjF7Q==",
822
+ "dev": true,
823
+ "requires": {
824
+ "encoding": "^0.1.12",
825
+ "safe-buffer": "^5.1.2"
826
+ }
827
+ },
828
+ "github-from-package": {
829
+ "version": "0.0.0",
830
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
831
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
832
+ "dev": true,
833
+ "optional": true
834
+ },
835
+ "glob": {
836
+ "version": "7.0.6",
837
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
838
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
839
+ "dev": true,
840
+ "requires": {
841
+ "fs.realpath": "^1.0.0",
842
+ "inflight": "^1.0.4",
843
+ "inherits": "2",
844
+ "minimatch": "^3.0.2",
845
+ "once": "^1.3.0",
846
+ "path-is-absolute": "^1.0.0"
847
+ }
848
+ },
849
+ "graceful-fs": {
850
+ "version": "4.1.11",
851
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
852
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
853
+ "dev": true
854
+ },
855
+ "grunt": {
856
+ "version": "1.0.3",
857
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
858
+ "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
859
+ "dev": true,
860
+ "requires": {
861
+ "coffeescript": "~1.10.0",
862
+ "dateformat": "~1.0.12",
863
+ "eventemitter2": "~0.4.13",
864
+ "exit": "~0.1.1",
865
+ "findup-sync": "~0.3.0",
866
+ "glob": "~7.0.0",
867
+ "grunt-cli": "~1.2.0",
868
+ "grunt-known-options": "~1.1.0",
869
+ "grunt-legacy-log": "~2.0.0",
870
+ "grunt-legacy-util": "~1.1.1",
871
+ "iconv-lite": "~0.4.13",
872
+ "js-yaml": "~3.5.2",
873
+ "minimatch": "~3.0.2",
874
+ "mkdirp": "~0.5.1",
875
+ "nopt": "~3.0.6",
876
+ "path-is-absolute": "~1.0.0",
877
+ "rimraf": "~2.6.2"
878
+ },
879
+ "dependencies": {
880
+ "grunt-cli": {
881
+ "version": "1.2.0",
882
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
883
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
884
+ "dev": true,
885
+ "requires": {
886
+ "findup-sync": "~0.3.0",
887
+ "grunt-known-options": "~1.1.0",
888
+ "nopt": "~3.0.6",
889
+ "resolve": "~1.1.0"
890
+ }
891
+ }
892
+ }
893
+ },
894
+ "grunt-checktextdomain": {
895
+ "version": "1.0.1",
896
+ "resolved": "https://registry.npmjs.org/grunt-checktextdomain/-/grunt-checktextdomain-1.0.1.tgz",
897
+ "integrity": "sha1-slTQHh3pEwBdTbHFMD2QI7mD4Zs=",
898
+ "dev": true,
899
+ "requires": {
900
+ "chalk": "~0.2.1",
901
+ "text-table": "~0.2.0"
902
+ },
903
+ "dependencies": {
904
+ "ansi-styles": {
905
+ "version": "0.2.0",
906
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz",
907
+ "integrity": "sha1-NZq0sV3NZLptdHNLcsNjYKmvLBk=",
908
+ "dev": true
909
+ },
910
+ "chalk": {
911
+ "version": "0.2.1",
912
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz",
913
+ "integrity": "sha1-dhPhV1FFshOGSD9/SFql/6jL0Qw=",
914
+ "dev": true,
915
+ "requires": {
916
+ "ansi-styles": "~0.2.0",
917
+ "has-color": "~0.1.0"
918
+ }
919
+ }
920
+ }
921
+ },
922
+ "grunt-contrib-compress": {
923
+ "version": "1.4.3",
924
+ "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz",
925
+ "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=",
926
+ "dev": true,
927
+ "requires": {
928
+ "archiver": "^1.3.0",
929
+ "chalk": "^1.1.1",
930
+ "iltorb": "^1.0.13",
931
+ "lodash": "^4.7.0",
932
+ "pretty-bytes": "^4.0.2",
933
+ "stream-buffers": "^2.1.0"
934
+ },
935
+ "dependencies": {
936
+ "ansi-styles": {
937
+ "version": "2.2.1",
938
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
939
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
940
+ "dev": true
941
+ },
942
+ "chalk": {
943
+ "version": "1.1.3",
944
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
945
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
946
+ "dev": true,
947
+ "requires": {
948
+ "ansi-styles": "^2.2.1",
949
+ "escape-string-regexp": "^1.0.2",
950
+ "has-ansi": "^2.0.0",
951
+ "strip-ansi": "^3.0.0",
952
+ "supports-color": "^2.0.0"
953
+ }
954
+ },
955
+ "supports-color": {
956
+ "version": "2.0.0",
957
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
958
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
959
+ "dev": true
960
+ }
961
+ }
962
+ },
963
+ "grunt-contrib-copy": {
964
+ "version": "1.0.0",
965
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
966
+ "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
967
+ "dev": true,
968
+ "requires": {
969
+ "chalk": "^1.1.1",
970
+ "file-sync-cmp": "^0.1.0"
971
+ },
972
+ "dependencies": {
973
+ "ansi-styles": {
974
+ "version": "2.2.1",
975
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
976
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
977
+ "dev": true
978
+ },
979
+ "chalk": {
980
+ "version": "1.1.3",
981
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
982
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
983
+ "dev": true,
984
+ "requires": {
985
+ "ansi-styles": "^2.2.1",
986
+ "escape-string-regexp": "^1.0.2",
987
+ "has-ansi": "^2.0.0",
988
+ "strip-ansi": "^3.0.0",
989
+ "supports-color": "^2.0.0"
990
+ }
991
+ },
992
+ "supports-color": {
993
+ "version": "2.0.0",
994
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
995
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
996
+ "dev": true
997
+ }
998
+ }
999
+ },
1000
+ "grunt-known-options": {
1001
+ "version": "1.1.1",
1002
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
1003
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
1004
+ "dev": true
1005
+ },
1006
+ "grunt-legacy-log": {
1007
+ "version": "2.0.0",
1008
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
1009
+ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
1010
+ "dev": true,
1011
+ "requires": {
1012
+ "colors": "~1.1.2",
1013
+ "grunt-legacy-log-utils": "~2.0.0",
1014
+ "hooker": "~0.2.3",
1015
+ "lodash": "~4.17.5"
1016
+ }
1017
+ },
1018
+ "grunt-legacy-log-utils": {
1019
+ "version": "2.0.1",
1020
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
1021
+ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
1022
+ "dev": true,
1023
+ "requires": {
1024
+ "chalk": "~2.4.1",
1025
+ "lodash": "~4.17.10"
1026
+ }
1027
+ },
1028
+ "grunt-legacy-util": {
1029
+ "version": "1.1.1",
1030
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
1031
+ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
1032
+ "dev": true,
1033
+ "requires": {
1034
+ "async": "~1.5.2",
1035
+ "exit": "~0.1.1",
1036
+ "getobject": "~0.1.0",
1037
+ "hooker": "~0.2.3",
1038
+ "lodash": "~4.17.10",
1039
+ "underscore.string": "~3.3.4",
1040
+ "which": "~1.3.0"
1041
+ }
1042
+ },
1043
+ "grunt-phplint": {
1044
+ "version": "0.1.0",
1045
+ "resolved": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.1.0.tgz",
1046
+ "integrity": "sha1-bb4uauxTqiKc+sCtmnyZ4kGEhI0=",
1047
+ "dev": true,
1048
+ "requires": {
1049
+ "cache-swap": "~0.3.0",
1050
+ "grunt": "~0.4.1"
1051
+ },
1052
+ "dependencies": {
1053
+ "argparse": {
1054
+ "version": "0.1.16",
1055
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
1056
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
1057
+ "dev": true,
1058
+ "requires": {
1059
+ "underscore": "~1.7.0",
1060
+ "underscore.string": "~2.4.0"
1061
+ },
1062
+ "dependencies": {
1063
+ "underscore.string": {
1064
+ "version": "2.4.0",
1065
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
1066
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
1067
+ "dev": true
1068
+ }
1069
+ }
1070
+ },
1071
+ "async": {
1072
+ "version": "0.1.22",
1073
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
1074
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
1075
+ "dev": true
1076
+ },
1077
+ "coffee-script": {
1078
+ "version": "1.3.3",
1079
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
1080
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
1081
+ "dev": true
1082
+ },
1083
+ "colors": {
1084
+ "version": "0.6.2",
1085
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
1086
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
1087
+ "dev": true
1088
+ },
1089
+ "dateformat": {
1090
+ "version": "1.0.2-1.2.3",
1091
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
1092
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
1093
+ "dev": true
1094
+ },
1095
+ "esprima": {
1096
+ "version": "1.0.4",
1097
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
1098
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
1099
+ "dev": true
1100
+ },
1101
+ "findup-sync": {
1102
+ "version": "0.1.3",
1103
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
1104
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
1105
+ "dev": true,
1106
+ "requires": {
1107
+ "glob": "~3.2.9",
1108
+ "lodash": "~2.4.1"
1109
+ },
1110
+ "dependencies": {
1111
+ "glob": {
1112
+ "version": "3.2.11",
1113
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
1114
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
1115
+ "dev": true,
1116
+ "requires": {
1117
+ "inherits": "2",
1118
+ "minimatch": "0.3"
1119
+ }
1120
+ },
1121
+ "lodash": {
1122
+ "version": "2.4.2",
1123
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1124
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1125
+ "dev": true
1126
+ },
1127
+ "minimatch": {
1128
+ "version": "0.3.0",
1129
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
1130
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
1131
+ "dev": true,
1132
+ "requires": {
1133
+ "lru-cache": "2",
1134
+ "sigmund": "~1.0.0"
1135
+ }
1136
+ }
1137
+ }
1138
+ },
1139
+ "glob": {
1140
+ "version": "3.1.21",
1141
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
1142
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
1143
+ "dev": true,
1144
+ "requires": {
1145
+ "graceful-fs": "~1.2.0",
1146
+ "inherits": "1",
1147
+ "minimatch": "~0.2.11"
1148
+ },
1149
+ "dependencies": {
1150
+ "inherits": {
1151
+ "version": "1.0.2",
1152
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
1153
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
1154
+ "dev": true
1155
+ }
1156
+ }
1157
+ },
1158
+ "graceful-fs": {
1159
+ "version": "1.2.3",
1160
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
1161
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
1162
+ "dev": true
1163
+ },
1164
+ "grunt": {
1165
+ "version": "0.4.5",
1166
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
1167
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
1168
+ "dev": true,
1169
+ "requires": {
1170
+ "async": "~0.1.22",
1171
+ "coffee-script": "~1.3.3",
1172
+ "colors": "~0.6.2",
1173
+ "dateformat": "1.0.2-1.2.3",
1174
+ "eventemitter2": "~0.4.13",
1175
+ "exit": "~0.1.1",
1176
+ "findup-sync": "~0.1.2",
1177
+ "getobject": "~0.1.0",
1178
+ "glob": "~3.1.21",
1179
+ "grunt-legacy-log": "~0.1.0",
1180
+ "grunt-legacy-util": "~0.2.0",
1181
+ "hooker": "~0.2.3",
1182
+ "iconv-lite": "~0.2.11",
1183
+ "js-yaml": "~2.0.5",
1184
+ "lodash": "~0.9.2",
1185
+ "minimatch": "~0.2.12",
1186
+ "nopt": "~1.0.10",
1187
+ "rimraf": "~2.2.8",
1188
+ "underscore.string": "~2.2.1",
1189
+ "which": "~1.0.5"
1190
+ }
1191
+ },
1192
+ "grunt-legacy-log": {
1193
+ "version": "0.1.3",
1194
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
1195
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
1196
+ "dev": true,
1197
+ "requires": {
1198
+ "colors": "~0.6.2",
1199
+ "grunt-legacy-log-utils": "~0.1.1",
1200
+ "hooker": "~0.2.3",
1201
+ "lodash": "~2.4.1",
1202
+ "underscore.string": "~2.3.3"
1203
+ },
1204
+ "dependencies": {
1205
+ "lodash": {
1206
+ "version": "2.4.2",
1207
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1208
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1209
+ "dev": true
1210
+ },
1211
+ "underscore.string": {
1212
+ "version": "2.3.3",
1213
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
1214
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
1215
+ "dev": true
1216
+ }
1217
+ }
1218
+ },
1219
+ "grunt-legacy-log-utils": {
1220
+ "version": "0.1.1",
1221
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
1222
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
1223
+ "dev": true,
1224
+ "requires": {
1225
+ "colors": "~0.6.2",
1226
+ "lodash": "~2.4.1",
1227
+ "underscore.string": "~2.3.3"
1228
+ },
1229
+ "dependencies": {
1230
+ "lodash": {
1231
+ "version": "2.4.2",
1232
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1233
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1234
+ "dev": true
1235
+ },
1236
+ "underscore.string": {
1237
+ "version": "2.3.3",
1238
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
1239
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
1240
+ "dev": true
1241
+ }
1242
+ }
1243
+ },
1244
+ "grunt-legacy-util": {
1245
+ "version": "0.2.0",
1246
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
1247
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
1248
+ "dev": true,
1249
+ "requires": {
1250
+ "async": "~0.1.22",
1251
+ "exit": "~0.1.1",
1252
+ "getobject": "~0.1.0",
1253
+ "hooker": "~0.2.3",
1254
+ "lodash": "~0.9.2",
1255
+ "underscore.string": "~2.2.1",
1256
+ "which": "~1.0.5"
1257
+ }
1258
+ },
1259
+ "iconv-lite": {
1260
+ "version": "0.2.11",
1261
+ "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
1262
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
1263
+ "dev": true
1264
+ },
1265
+ "js-yaml": {
1266
+ "version": "2.0.5",
1267
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
1268
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
1269
+ "dev": true,
1270
+ "requires": {
1271
+ "argparse": "~ 0.1.11",
1272
+ "esprima": "~ 1.0.2"
1273
+ }
1274
+ },
1275
+ "lodash": {
1276
+ "version": "0.9.2",
1277
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
1278
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
1279
+ "dev": true
1280
+ },
1281
+ "minimatch": {
1282
+ "version": "0.2.14",
1283
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
1284
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1285
+ "dev": true,
1286
+ "requires": {
1287
+ "lru-cache": "2",
1288
+ "sigmund": "~1.0.0"
1289
+ }
1290
+ },
1291
+ "nopt": {
1292
+ "version": "1.0.10",
1293
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1294
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1295
+ "dev": true,
1296
+ "requires": {
1297
+ "abbrev": "1"
1298
+ }
1299
+ },
1300
+ "rimraf": {
1301
+ "version": "2.2.8",
1302
+ "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
1303
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
1304
+ "dev": true
1305
+ },
1306
+ "underscore.string": {
1307
+ "version": "2.2.1",
1308
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
1309
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
1310
+ "dev": true
1311
+ },
1312
+ "which": {
1313
+ "version": "1.0.9",
1314
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
1315
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
1316
+ "dev": true
1317
+ }
1318
+ }
1319
+ },
1320
+ "grunt-replace": {
1321
+ "version": "1.0.1",
1322
+ "resolved": "https://registry.npmjs.org/grunt-replace/-/grunt-replace-1.0.1.tgz",
1323
+ "integrity": "sha1-kKeVMvuJBB/kJ8h9QlI4sPiGZRo=",
1324
+ "dev": true,
1325
+ "requires": {
1326
+ "applause": "1.2.2",
1327
+ "chalk": "^1.1.0",
1328
+ "file-sync-cmp": "^0.1.0",
1329
+ "lodash": "^4.11.0"
1330
+ },
1331
+ "dependencies": {
1332
+ "ansi-styles": {
1333
+ "version": "2.2.1",
1334
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1335
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1336
+ "dev": true
1337
+ },
1338
+ "chalk": {
1339
+ "version": "1.1.3",
1340
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1341
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1342
+ "dev": true,
1343
+ "requires": {
1344
+ "ansi-styles": "^2.2.1",
1345
+ "escape-string-regexp": "^1.0.2",
1346
+ "has-ansi": "^2.0.0",
1347
+ "strip-ansi": "^3.0.0",
1348
+ "supports-color": "^2.0.0"
1349
+ }
1350
+ },
1351
+ "supports-color": {
1352
+ "version": "2.0.0",
1353
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1354
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1355
+ "dev": true
1356
+ }
1357
+ }
1358
+ },
1359
+ "grunt-wp-i18n": {
1360
+ "version": "1.0.2",
1361
+ "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz",
1362
+ "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==",
1363
+ "dev": true,
1364
+ "requires": {
1365
+ "grunt": "^1.0.2",
1366
+ "node-wp-i18n": "^1.0.5"
1367
+ }
1368
+ },
1369
+ "grunt-wptools": {
1370
+ "version": "0.1.0",
1371
+ "resolved": "https://registry.npmjs.org/grunt-wptools/-/grunt-wptools-0.1.0.tgz",
1372
+ "integrity": "sha512-ozHOTXwvppfFF3MoKosEFt4+gOmIFLbOjVxftLmUdGdDac+SG+DyE0WBXhYFGPJa7sT0ongo1sUHKpDveJwNGA==",
1373
+ "dev": true,
1374
+ "requires": {
1375
+ "@ndc/wptools": "^0.1.0"
1376
+ }
1377
+ },
1378
+ "har-schema": {
1379
+ "version": "2.0.0",
1380
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1381
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
1382
+ "dev": true,
1383
+ "optional": true
1384
+ },
1385
+ "har-validator": {
1386
+ "version": "5.1.0",
1387
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
1388
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
1389
+ "dev": true,
1390
+ "optional": true,
1391
+ "requires": {
1392
+ "ajv": "^5.3.0",
1393
+ "har-schema": "^2.0.0"
1394
+ }
1395
+ },
1396
+ "has-ansi": {
1397
+ "version": "2.0.0",
1398
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1399
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1400
+ "dev": true,
1401
+ "requires": {
1402
+ "ansi-regex": "^2.0.0"
1403
+ }
1404
+ },
1405
+ "has-color": {
1406
+ "version": "0.1.7",
1407
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
1408
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
1409
+ "dev": true
1410
+ },
1411
+ "has-flag": {
1412
+ "version": "3.0.0",
1413
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1414
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1415
+ "dev": true
1416
+ },
1417
+ "has-unicode": {
1418
+ "version": "2.0.1",
1419
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1420
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
1421
+ "dev": true
1422
+ },
1423
+ "hooker": {
1424
+ "version": "0.2.3",
1425
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
1426
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
1427
+ "dev": true
1428
+ },
1429
+ "hosted-git-info": {
1430
+ "version": "2.7.1",
1431
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
1432
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
1433
+ "dev": true
1434
+ },
1435
+ "http-signature": {
1436
+ "version": "1.2.0",
1437
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1438
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1439
+ "dev": true,
1440
+ "optional": true,
1441
+ "requires": {
1442
+ "assert-plus": "^1.0.0",
1443
+ "jsprim": "^1.2.2",
1444
+ "sshpk": "^1.7.0"
1445
+ }
1446
+ },
1447
+ "iconv-lite": {
1448
+ "version": "0.4.24",
1449
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1450
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1451
+ "dev": true,
1452
+ "requires": {
1453
+ "safer-buffer": ">= 2.1.2 < 3"
1454
+ }
1455
+ },
1456
+ "ieee754": {
1457
+ "version": "1.1.12",
1458
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
1459
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
1460
+ "dev": true
1461
+ },
1462
+ "iltorb": {
1463
+ "version": "1.3.10",
1464
+ "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz",
1465
+ "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==",
1466
+ "dev": true,
1467
+ "optional": true,
1468
+ "requires": {
1469
+ "detect-libc": "^0.2.0",
1470
+ "nan": "^2.6.2",
1471
+ "node-gyp": "^3.6.2",
1472
+ "prebuild-install": "^2.3.0"
1473
+ }
1474
+ },
1475
+ "indent-string": {
1476
+ "version": "2.1.0",
1477
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
1478
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
1479
+ "dev": true,
1480
+ "requires": {
1481
+ "repeating": "^2.0.0"
1482
+ }
1483
+ },
1484
+ "inflight": {
1485
+ "version": "1.0.6",
1486
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1487
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1488
+ "dev": true,
1489
+ "requires": {
1490
+ "once": "^1.3.0",
1491
+ "wrappy": "1"
1492
+ }
1493
+ },
1494
+ "inherits": {
1495
+ "version": "2.0.3",
1496
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1497
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1498
+ "dev": true
1499
+ },
1500
+ "ini": {
1501
+ "version": "1.3.5",
1502
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
1503
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
1504
+ "dev": true,
1505
+ "optional": true
1506
+ },
1507
+ "is-arrayish": {
1508
+ "version": "0.2.1",
1509
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1510
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1511
+ "dev": true
1512
+ },
1513
+ "is-buffer": {
1514
+ "version": "1.1.6",
1515
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1516
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1517
+ "dev": true
1518
+ },
1519
+ "is-builtin-module": {
1520
+ "version": "1.0.0",
1521
+ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
1522
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
1523
+ "dev": true,
1524
+ "requires": {
1525
+ "builtin-modules": "^1.0.0"
1526
+ }
1527
+ },
1528
+ "is-finite": {
1529
+ "version": "1.0.2",
1530
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
1531
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
1532
+ "dev": true,
1533
+ "requires": {
1534
+ "number-is-nan": "^1.0.0"
1535
+ }
1536
+ },
1537
+ "is-fullwidth-code-point": {
1538
+ "version": "1.0.0",
1539
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1540
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
1541
+ "dev": true,
1542
+ "requires": {
1543
+ "number-is-nan": "^1.0.0"
1544
+ }
1545
+ },
1546
+ "is-typedarray": {
1547
+ "version": "1.0.0",
1548
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1549
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1550
+ "dev": true,
1551
+ "optional": true
1552
+ },
1553
+ "is-utf8": {
1554
+ "version": "0.2.1",
1555
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1556
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1557
+ "dev": true
1558
+ },
1559
+ "isarray": {
1560
+ "version": "1.0.0",
1561
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1562
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1563
+ "dev": true
1564
+ },
1565
+ "isexe": {
1566
+ "version": "2.0.0",
1567
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1568
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1569
+ "dev": true
1570
+ },
1571
+ "isstream": {
1572
+ "version": "0.1.2",
1573
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1574
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1575
+ "dev": true,
1576
+ "optional": true
1577
+ },
1578
+ "js-yaml": {
1579
+ "version": "3.5.5",
1580
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
1581
+ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
1582
+ "dev": true,
1583
+ "requires": {
1584
+ "argparse": "^1.0.2",
1585
+ "esprima": "^2.6.0"
1586
+ }
1587
+ },
1588
+ "jsbn": {
1589
+ "version": "0.1.1",
1590
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1591
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1592
+ "dev": true,
1593
+ "optional": true
1594
+ },
1595
+ "json-schema": {
1596
+ "version": "0.2.3",
1597
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1598
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
1599
+ "dev": true,
1600
+ "optional": true
1601
+ },
1602
+ "json-schema-traverse": {
1603
+ "version": "0.3.1",
1604
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
1605
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
1606
+ "dev": true,
1607
+ "optional": true
1608
+ },
1609
+ "json-stringify-safe": {
1610
+ "version": "5.0.1",
1611
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1612
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1613
+ "dev": true,
1614
+ "optional": true
1615
+ },
1616
+ "jsprim": {
1617
+ "version": "1.4.1",
1618
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1619
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1620
+ "dev": true,
1621
+ "optional": true,
1622
+ "requires": {
1623
+ "assert-plus": "1.0.0",
1624
+ "extsprintf": "1.3.0",
1625
+ "json-schema": "0.2.3",
1626
+ "verror": "1.10.0"
1627
+ }
1628
+ },
1629
+ "lazystream": {
1630
+ "version": "1.0.0",
1631
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
1632
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1633
+ "dev": true,
1634
+ "requires": {
1635
+ "readable-stream": "^2.0.5"
1636
+ }
1637
+ },
1638
+ "load-grunt-tasks": {
1639
+ "version": "4.0.0",
1640
+ "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-4.0.0.tgz",
1641
+ "integrity": "sha512-w5JYPHpZgMxu9XFR9N9MEzyX8E0mLhQkwQ1qVP4mb3gmuomw8Ww8J49NHMbXqyQliq2LUCqdU7/wW96IVuPCKw==",
1642
+ "dev": true,
1643
+ "requires": {
1644
+ "arrify": "^1.0.0",
1645
+ "multimatch": "^2.0.0",
1646
+ "pkg-up": "^2.0.0",
1647
+ "resolve-pkg": "^1.0.0"
1648
+ }
1649
+ },
1650
+ "load-json-file": {
1651
+ "version": "1.1.0",
1652
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
1653
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
1654
+ "dev": true,
1655
+ "requires": {
1656
+ "graceful-fs": "^4.1.2",
1657
+ "parse-json": "^2.2.0",
1658
+ "pify": "^2.0.0",
1659
+ "pinkie-promise": "^2.0.0",
1660
+ "strip-bom": "^2.0.0"
1661
+ }
1662
+ },
1663
+ "locate-path": {
1664
+ "version": "2.0.0",
1665
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1666
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1667
+ "dev": true,
1668
+ "requires": {
1669
+ "p-locate": "^2.0.0",
1670
+ "path-exists": "^3.0.0"
1671
+ },
1672
+ "dependencies": {
1673
+ "path-exists": {
1674
+ "version": "3.0.0",
1675
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1676
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1677
+ "dev": true
1678
+ }
1679
+ }
1680
+ },
1681
+ "lodash": {
1682
+ "version": "4.17.11",
1683
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
1684
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
1685
+ "dev": true
1686
+ },
1687
+ "loud-rejection": {
1688
+ "version": "1.6.0",
1689
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
1690
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
1691
+ "dev": true,
1692
+ "requires": {
1693
+ "currently-unhandled": "^0.4.1",
1694
+ "signal-exit": "^3.0.0"
1695
+ }
1696
+ },
1697
+ "lru-cache": {
1698
+ "version": "2.7.3",
1699
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
1700
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
1701
+ "dev": true
1702
+ },
1703
+ "map-obj": {
1704
+ "version": "1.0.1",
1705
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
1706
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
1707
+ "dev": true
1708
+ },
1709
+ "meow": {
1710
+ "version": "3.7.0",
1711
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
1712
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
1713
+ "dev": true,
1714
+ "requires": {
1715
+ "camelcase-keys": "^2.0.0",
1716
+ "decamelize": "^1.1.2",
1717
+ "loud-rejection": "^1.0.0",
1718
+ "map-obj": "^1.0.1",
1719
+ "minimist": "^1.1.3",
1720
+ "normalize-package-data": "^2.3.4",
1721
+ "object-assign": "^4.0.1",
1722
+ "read-pkg-up": "^1.0.1",
1723
+ "redent": "^1.0.0",
1724
+ "trim-newlines": "^1.0.0"
1725
+ }
1726
+ },
1727
+ "mime-db": {
1728
+ "version": "1.36.0",
1729
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
1730
+ "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
1731
+ "dev": true
1732
+ },
1733
+ "mime-types": {
1734
+ "version": "2.1.20",
1735
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
1736
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
1737
+ "dev": true,
1738
+ "requires": {
1739
+ "mime-db": "~1.36.0"
1740
+ }
1741
+ },
1742
+ "mimic-response": {
1743
+ "version": "1.0.1",
1744
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1745
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
1746
+ "dev": true,
1747
+ "optional": true
1748
+ },
1749
+ "minimatch": {
1750
+ "version": "3.0.4",
1751
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1752
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1753
+ "dev": true,
1754
+ "requires": {
1755
+ "brace-expansion": "^1.1.7"
1756
+ }
1757
+ },
1758
+ "minimist": {
1759
+ "version": "1.2.0",
1760
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1761
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1762
+ "dev": true
1763
+ },
1764
+ "mkdirp": {
1765
+ "version": "0.5.1",
1766
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1767
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1768
+ "dev": true,
1769
+ "requires": {
1770
+ "minimist": "0.0.8"
1771
+ },
1772
+ "dependencies": {
1773
+ "minimist": {
1774
+ "version": "0.0.8",
1775
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1776
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1777
+ "dev": true
1778
+ }
1779
+ }
1780
+ },
1781
+ "ms": {
1782
+ "version": "2.0.0",
1783
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1784
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1785
+ "dev": true
1786
+ },
1787
+ "multimatch": {
1788
+ "version": "2.1.0",
1789
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
1790
+ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1791
+ "dev": true,
1792
+ "requires": {
1793
+ "array-differ": "^1.0.0",
1794
+ "array-union": "^1.0.1",
1795
+ "arrify": "^1.0.0",
1796
+ "minimatch": "^3.0.0"
1797
+ }
1798
+ },
1799
+ "nan": {
1800
+ "version": "2.11.1",
1801
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
1802
+ "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
1803
+ "dev": true,
1804
+ "optional": true
1805
+ },
1806
+ "node-abi": {
1807
+ "version": "2.4.5",
1808
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.5.tgz",
1809
+ "integrity": "sha512-aa/UC6Nr3+tqhHGRsAuw/edz7/q9nnetBrKWxj6rpTtm+0X9T1qU7lIEHMS3yN9JwAbRiKUbRRFy1PLz/y3aaA==",
1810
+ "dev": true,
1811
+ "optional": true,
1812
+ "requires": {
1813
+ "semver": "^5.4.1"
1814
+ }
1815
+ },
1816
+ "node-gyp": {
1817
+ "version": "3.8.0",
1818
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
1819
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
1820
+ "dev": true,
1821
+ "optional": true,
1822
+ "requires": {
1823
+ "fstream": "^1.0.0",
1824
+ "glob": "^7.0.3",
1825
+ "graceful-fs": "^4.1.2",
1826
+ "mkdirp": "^0.5.0",
1827
+ "nopt": "2 || 3",
1828
+ "npmlog": "0 || 1 || 2 || 3 || 4",
1829
+ "osenv": "0",
1830
+ "request": "^2.87.0",
1831
+ "rimraf": "2",
1832
+ "semver": "~5.3.0",
1833
+ "tar": "^2.0.0",
1834
+ "which": "1"
1835
+ },
1836
+ "dependencies": {
1837
+ "semver": {
1838
+ "version": "5.3.0",
1839
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
1840
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
1841
+ "dev": true,
1842
+ "optional": true
1843
+ }
1844
+ }
1845
+ },
1846
+ "node-wp-i18n": {
1847
+ "version": "1.2.1",
1848
+ "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.1.tgz",
1849
+ "integrity": "sha512-Wvl98XA/GBnQFe20iAMwlsXvikVOFTVz//cbRsF8OPQf0NIkJdeWToNYww/dZl52lHtS1KUEIVRyWcol5ibHog==",
1850
+ "dev": true,
1851
+ "requires": {
1852
+ "bluebird": "^3.4.1",
1853
+ "gettext-parser": "^2.0.0",
1854
+ "glob": "^7.0.5",
1855
+ "lodash": "^4.14.2",
1856
+ "minimist": "^1.2.0",
1857
+ "mkdirp": "^0.5.1",
1858
+ "tmp": "^0.0.33"
1859
+ }
1860
+ },
1861
+ "noop-logger": {
1862
+ "version": "0.1.1",
1863
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
1864
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
1865
+ "dev": true,
1866
+ "optional": true
1867
+ },
1868
+ "nopt": {
1869
+ "version": "3.0.6",
1870
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
1871
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
1872
+ "dev": true,
1873
+ "requires": {
1874
+ "abbrev": "1"
1875
+ }
1876
+ },
1877
+ "normalize-package-data": {
1878
+ "version": "2.4.0",
1879
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
1880
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
1881
+ "dev": true,
1882
+ "requires": {
1883
+ "hosted-git-info": "^2.1.4",
1884
+ "is-builtin-module": "^1.0.0",
1885
+ "semver": "2 || 3 || 4 || 5",
1886
+ "validate-npm-package-license": "^3.0.1"
1887
+ }
1888
+ },
1889
+ "normalize-path": {
1890
+ "version": "2.1.1",
1891
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1892
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1893
+ "dev": true,
1894
+ "requires": {
1895
+ "remove-trailing-separator": "^1.0.1"
1896
+ }
1897
+ },
1898
+ "npmlog": {
1899
+ "version": "4.1.2",
1900
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
1901
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
1902
+ "dev": true,
1903
+ "requires": {
1904
+ "are-we-there-yet": "~1.1.2",
1905
+ "console-control-strings": "~1.1.0",
1906
+ "gauge": "~2.7.3",
1907
+ "set-blocking": "~2.0.0"
1908
+ }
1909
+ },
1910
+ "number-is-nan": {
1911
+ "version": "1.0.1",
1912
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1913
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
1914
+ "dev": true
1915
+ },
1916
+ "oauth-sign": {
1917
+ "version": "0.9.0",
1918
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1919
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1920
+ "dev": true,
1921
+ "optional": true
1922
+ },
1923
+ "object-assign": {
1924
+ "version": "4.1.1",
1925
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1926
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1927
+ "dev": true
1928
+ },
1929
+ "once": {
1930
+ "version": "1.4.0",
1931
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1932
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1933
+ "dev": true,
1934
+ "requires": {
1935
+ "wrappy": "1"
1936
+ }
1937
+ },
1938
+ "os-homedir": {
1939
+ "version": "1.0.2",
1940
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1941
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
1942
+ "dev": true
1943
+ },
1944
+ "os-tmpdir": {
1945
+ "version": "1.0.2",
1946
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1947
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1948
+ "dev": true
1949
+ },
1950
+ "osenv": {
1951
+ "version": "0.1.5",
1952
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1953
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1954
+ "dev": true,
1955
+ "optional": true,
1956
+ "requires": {
1957
+ "os-homedir": "^1.0.0",
1958
+ "os-tmpdir": "^1.0.0"
1959
+ }
1960
+ },
1961
+ "p-limit": {
1962
+ "version": "1.3.0",
1963
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1964
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1965
+ "dev": true,
1966
+ "requires": {
1967
+ "p-try": "^1.0.0"
1968
+ }
1969
+ },
1970
+ "p-locate": {
1971
+ "version": "2.0.0",
1972
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1973
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1974
+ "dev": true,
1975
+ "requires": {
1976
+ "p-limit": "^1.1.0"
1977
+ }
1978
+ },
1979
+ "p-try": {
1980
+ "version": "1.0.0",
1981
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1982
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
1983
+ "dev": true
1984
+ },
1985
+ "parse-json": {
1986
+ "version": "2.2.0",
1987
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1988
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1989
+ "dev": true,
1990
+ "requires": {
1991
+ "error-ex": "^1.2.0"
1992
+ }
1993
+ },
1994
+ "path-exists": {
1995
+ "version": "2.1.0",
1996
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
1997
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
1998
+ "dev": true,
1999
+ "requires": {
2000
+ "pinkie-promise": "^2.0.0"
2001
+ }
2002
+ },
2003
+ "path-is-absolute": {
2004
+ "version": "1.0.1",
2005
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2006
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2007
+ "dev": true
2008
+ },
2009
+ "path-type": {
2010
+ "version": "1.1.0",
2011
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
2012
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
2013
+ "dev": true,
2014
+ "requires": {
2015
+ "graceful-fs": "^4.1.2",
2016
+ "pify": "^2.0.0",
2017
+ "pinkie-promise": "^2.0.0"
2018
+ }
2019
+ },
2020
+ "performance-now": {
2021
+ "version": "2.1.0",
2022
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2023
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
2024
+ "dev": true,
2025
+ "optional": true
2026
+ },
2027
+ "pify": {
2028
+ "version": "2.3.0",
2029
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2030
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2031
+ "dev": true
2032
+ },
2033
+ "pinkie": {
2034
+ "version": "2.0.4",
2035
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2036
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
2037
+ "dev": true
2038
+ },
2039
+ "pinkie-promise": {
2040
+ "version": "2.0.1",
2041
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2042
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
2043
+ "dev": true,
2044
+ "requires": {
2045
+ "pinkie": "^2.0.0"
2046
+ }
2047
+ },
2048
+ "pkg-up": {
2049
+ "version": "2.0.0",
2050
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
2051
+ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
2052
+ "dev": true,
2053
+ "requires": {
2054
+ "find-up": "^2.1.0"
2055
+ },
2056
+ "dependencies": {
2057
+ "find-up": {
2058
+ "version": "2.1.0",
2059
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2060
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2061
+ "dev": true,
2062
+ "requires": {
2063
+ "locate-path": "^2.0.0"
2064
+ }
2065
+ }
2066
+ }
2067
+ },
2068
+ "prebuild-install": {
2069
+ "version": "2.5.3",
2070
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz",
2071
+ "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==",
2072
+ "dev": true,
2073
+ "optional": true,
2074
+ "requires": {
2075
+ "detect-libc": "^1.0.3",
2076
+ "expand-template": "^1.0.2",
2077
+ "github-from-package": "0.0.0",
2078
+ "minimist": "^1.2.0",
2079
+ "mkdirp": "^0.5.1",
2080
+ "node-abi": "^2.2.0",
2081
+ "noop-logger": "^0.1.1",
2082
+ "npmlog": "^4.0.1",
2083
+ "os-homedir": "^1.0.1",
2084
+ "pump": "^2.0.1",
2085
+ "rc": "^1.1.6",
2086
+ "simple-get": "^2.7.0",
2087
+ "tar-fs": "^1.13.0",
2088
+ "tunnel-agent": "^0.6.0",
2089
+ "which-pm-runs": "^1.0.0"
2090
+ },
2091
+ "dependencies": {
2092
+ "detect-libc": {
2093
+ "version": "1.0.3",
2094
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
2095
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
2096
+ "dev": true,
2097
+ "optional": true
2098
+ }
2099
+ }
2100
+ },
2101
+ "pretty-bytes": {
2102
+ "version": "4.0.2",
2103
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
2104
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
2105
+ "dev": true
2106
+ },
2107
+ "process-nextick-args": {
2108
+ "version": "2.0.0",
2109
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2110
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
2111
+ "dev": true
2112
+ },
2113
+ "psl": {
2114
+ "version": "1.1.29",
2115
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
2116
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
2117
+ "dev": true,
2118
+ "optional": true
2119
+ },
2120
+ "pump": {
2121
+ "version": "2.0.1",
2122
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
2123
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
2124
+ "dev": true,
2125
+ "optional": true,
2126
+ "requires": {
2127
+ "end-of-stream": "^1.1.0",
2128
+ "once": "^1.3.1"
2129
+ }
2130
+ },
2131
+ "punycode": {
2132
+ "version": "1.4.1",
2133
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2134
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
2135
+ "dev": true,
2136
+ "optional": true
2137
+ },
2138
+ "qs": {
2139
+ "version": "6.5.2",
2140
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2141
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
2142
+ "dev": true,
2143
+ "optional": true
2144
+ },
2145
+ "rc": {
2146
+ "version": "1.2.8",
2147
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
2148
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
2149
+ "dev": true,
2150
+ "optional": true,
2151
+ "requires": {
2152
+ "deep-extend": "^0.6.0",
2153
+ "ini": "~1.3.0",
2154
+ "minimist": "^1.2.0",
2155
+ "strip-json-comments": "~2.0.1"
2156
+ }
2157
+ },
2158
+ "read-pkg": {
2159
+ "version": "1.1.0",
2160
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
2161
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
2162
+ "dev": true,
2163
+ "requires": {
2164
+ "load-json-file": "^1.0.0",
2165
+ "normalize-package-data": "^2.3.2",
2166
+ "path-type": "^1.0.0"
2167
+ }
2168
+ },
2169
+ "read-pkg-up": {
2170
+ "version": "1.0.1",
2171
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
2172
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
2173
+ "dev": true,
2174
+ "requires": {
2175
+ "find-up": "^1.0.0",
2176
+ "read-pkg": "^1.0.0"
2177
+ }
2178
+ },
2179
+ "readable-stream": {
2180
+ "version": "2.3.6",
2181
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2182
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2183
+ "dev": true,
2184
+ "requires": {
2185
+ "core-util-is": "~1.0.0",
2186
+ "inherits": "~2.0.3",
2187
+ "isarray": "~1.0.0",
2188
+ "process-nextick-args": "~2.0.0",
2189
+ "safe-buffer": "~5.1.1",
2190
+ "string_decoder": "~1.1.1",
2191
+ "util-deprecate": "~1.0.1"
2192
+ }
2193
+ },
2194
+ "redent": {
2195
+ "version": "1.0.0",
2196
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
2197
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
2198
+ "dev": true,
2199
+ "requires": {
2200
+ "indent-string": "^2.1.0",
2201
+ "strip-indent": "^1.0.1"
2202
+ }
2203
+ },
2204
+ "remove-trailing-separator": {
2205
+ "version": "1.1.0",
2206
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
2207
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
2208
+ "dev": true
2209
+ },
2210
+ "repeating": {
2211
+ "version": "2.0.1",
2212
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
2213
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2214
+ "dev": true,
2215
+ "requires": {
2216
+ "is-finite": "^1.0.0"
2217
+ }
2218
+ },
2219
+ "request": {
2220
+ "version": "2.88.0",
2221
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
2222
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
2223
+ "dev": true,
2224
+ "optional": true,
2225
+ "requires": {
2226
+ "aws-sign2": "~0.7.0",
2227
+ "aws4": "^1.8.0",
2228
+ "caseless": "~0.12.0",
2229
+ "combined-stream": "~1.0.6",
2230
+ "extend": "~3.0.2",
2231
+ "forever-agent": "~0.6.1",
2232
+ "form-data": "~2.3.2",
2233
+ "har-validator": "~5.1.0",
2234
+ "http-signature": "~1.2.0",
2235
+ "is-typedarray": "~1.0.0",
2236
+ "isstream": "~0.1.2",
2237
+ "json-stringify-safe": "~5.0.1",
2238
+ "mime-types": "~2.1.19",
2239
+ "oauth-sign": "~0.9.0",
2240
+ "performance-now": "^2.1.0",
2241
+ "qs": "~6.5.2",
2242
+ "safe-buffer": "^5.1.2",
2243
+ "tough-cookie": "~2.4.3",
2244
+ "tunnel-agent": "^0.6.0",
2245
+ "uuid": "^3.3.2"
2246
+ }
2247
+ },
2248
+ "resolve": {
2249
+ "version": "1.1.7",
2250
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
2251
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
2252
+ "dev": true
2253
+ },
2254
+ "resolve-from": {
2255
+ "version": "2.0.0",
2256
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
2257
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
2258
+ "dev": true
2259
+ },
2260
+ "resolve-pkg": {
2261
+ "version": "1.0.0",
2262
+ "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz",
2263
+ "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=",
2264
+ "dev": true,
2265
+ "requires": {
2266
+ "resolve-from": "^2.0.0"
2267
+ }
2268
+ },
2269
+ "rimraf": {
2270
+ "version": "2.6.2",
2271
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
2272
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
2273
+ "dev": true,
2274
+ "requires": {
2275
+ "glob": "^7.0.5"
2276
+ }
2277
+ },
2278
+ "safe-buffer": {
2279
+ "version": "5.1.2",
2280
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2281
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2282
+ "dev": true
2283
+ },
2284
+ "safer-buffer": {
2285
+ "version": "2.1.2",
2286
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2287
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2288
+ "dev": true
2289
+ },
2290
+ "semver": {
2291
+ "version": "5.5.1",
2292
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
2293
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
2294
+ "dev": true
2295
+ },
2296
+ "set-blocking": {
2297
+ "version": "2.0.0",
2298
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
2299
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
2300
+ "dev": true
2301
+ },
2302
+ "sigmund": {
2303
+ "version": "1.0.1",
2304
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
2305
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
2306
+ "dev": true
2307
+ },
2308
+ "signal-exit": {
2309
+ "version": "3.0.2",
2310
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2311
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2312
+ "dev": true
2313
+ },
2314
+ "simple-concat": {
2315
+ "version": "1.0.0",
2316
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
2317
+ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
2318
+ "dev": true,
2319
+ "optional": true
2320
+ },
2321
+ "simple-get": {
2322
+ "version": "2.8.1",
2323
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
2324
+ "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
2325
+ "dev": true,
2326
+ "optional": true,
2327
+ "requires": {
2328
+ "decompress-response": "^3.3.0",
2329
+ "once": "^1.3.1",
2330
+ "simple-concat": "^1.0.0"
2331
+ }
2332
+ },
2333
+ "spdx-correct": {
2334
+ "version": "3.0.2",
2335
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
2336
+ "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
2337
+ "dev": true,
2338
+ "requires": {
2339
+ "spdx-expression-parse": "^3.0.0",
2340
+ "spdx-license-ids": "^3.0.0"
2341
+ }
2342
+ },
2343
+ "spdx-exceptions": {
2344
+ "version": "2.2.0",
2345
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
2346
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
2347
+ "dev": true
2348
+ },
2349
+ "spdx-expression-parse": {
2350
+ "version": "3.0.0",
2351
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
2352
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
2353
+ "dev": true,
2354
+ "requires": {
2355
+ "spdx-exceptions": "^2.1.0",
2356
+ "spdx-license-ids": "^3.0.0"
2357
+ }
2358
+ },
2359
+ "spdx-license-ids": {
2360
+ "version": "3.0.1",
2361
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
2362
+ "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
2363
+ "dev": true
2364
+ },
2365
+ "sprintf-js": {
2366
+ "version": "1.1.1",
2367
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
2368
+ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=",
2369
+ "dev": true
2370
+ },
2371
+ "sshpk": {
2372
+ "version": "1.14.2",
2373
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
2374
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
2375
+ "dev": true,
2376
+ "optional": true,
2377
+ "requires": {
2378
+ "asn1": "~0.2.3",
2379
+ "assert-plus": "^1.0.0",
2380
+ "bcrypt-pbkdf": "^1.0.0",
2381
+ "dashdash": "^1.12.0",
2382
+ "ecc-jsbn": "~0.1.1",
2383
+ "getpass": "^0.1.1",
2384
+ "jsbn": "~0.1.0",
2385
+ "safer-buffer": "^2.0.2",
2386
+ "tweetnacl": "~0.14.0"
2387
+ }
2388
+ },
2389
+ "stream-buffers": {
2390
+ "version": "2.2.0",
2391
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
2392
+ "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=",
2393
+ "dev": true
2394
+ },
2395
+ "string-width": {
2396
+ "version": "1.0.2",
2397
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
2398
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
2399
+ "dev": true,
2400
+ "requires": {
2401
+ "code-point-at": "^1.0.0",
2402
+ "is-fullwidth-code-point": "^1.0.0",
2403
+ "strip-ansi": "^3.0.0"
2404
+ }
2405
+ },
2406
+ "string_decoder": {
2407
+ "version": "1.1.1",
2408
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2409
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2410
+ "dev": true,
2411
+ "requires": {
2412
+ "safe-buffer": "~5.1.0"
2413
+ }
2414
+ },
2415
+ "strip-ansi": {
2416
+ "version": "3.0.1",
2417
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2418
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2419
+ "dev": true,
2420
+ "requires": {
2421
+ "ansi-regex": "^2.0.0"
2422
+ }
2423
+ },
2424
+ "strip-bom": {
2425
+ "version": "2.0.0",
2426
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
2427
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
2428
+ "dev": true,
2429
+ "requires": {
2430
+ "is-utf8": "^0.2.0"
2431
+ }
2432
+ },
2433
+ "strip-indent": {
2434
+ "version": "1.0.1",
2435
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
2436
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
2437
+ "dev": true,
2438
+ "requires": {
2439
+ "get-stdin": "^4.0.1"
2440
+ }
2441
+ },
2442
+ "strip-json-comments": {
2443
+ "version": "2.0.1",
2444
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2445
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
2446
+ "dev": true,
2447
+ "optional": true
2448
+ },
2449
+ "supports-color": {
2450
+ "version": "5.5.0",
2451
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2452
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2453
+ "dev": true,
2454
+ "requires": {
2455
+ "has-flag": "^3.0.0"
2456
+ }
2457
+ },
2458
+ "tar": {
2459
+ "version": "2.2.1",
2460
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
2461
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2462
+ "dev": true,
2463
+ "optional": true,
2464
+ "requires": {
2465
+ "block-stream": "*",
2466
+ "fstream": "^1.0.2",
2467
+ "inherits": "2"
2468
+ }
2469
+ },
2470
+ "tar-fs": {
2471
+ "version": "1.16.3",
2472
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
2473
+ "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
2474
+ "dev": true,
2475
+ "optional": true,
2476
+ "requires": {
2477
+ "chownr": "^1.0.1",
2478
+ "mkdirp": "^0.5.1",
2479
+ "pump": "^1.0.0",
2480
+ "tar-stream": "^1.1.2"
2481
+ },
2482
+ "dependencies": {
2483
+ "pump": {
2484
+ "version": "1.0.3",
2485
+ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
2486
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
2487
+ "dev": true,
2488
+ "optional": true,
2489
+ "requires": {
2490
+ "end-of-stream": "^1.1.0",
2491
+ "once": "^1.3.1"
2492
+ }
2493
+ }
2494
+ }
2495
+ },
2496
+ "tar-stream": {
2497
+ "version": "1.6.2",
2498
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
2499
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
2500
+ "dev": true,
2501
+ "requires": {
2502
+ "bl": "^1.0.0",
2503
+ "buffer-alloc": "^1.2.0",
2504
+ "end-of-stream": "^1.0.0",
2505
+ "fs-constants": "^1.0.0",
2506
+ "readable-stream": "^2.3.0",
2507
+ "to-buffer": "^1.1.1",
2508
+ "xtend": "^4.0.0"
2509
+ }
2510
+ },
2511
+ "text-table": {
2512
+ "version": "0.2.0",
2513
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2514
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2515
+ "dev": true
2516
+ },
2517
+ "tmp": {
2518
+ "version": "0.0.33",
2519
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2520
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2521
+ "dev": true,
2522
+ "requires": {
2523
+ "os-tmpdir": "~1.0.2"
2524
+ }
2525
+ },
2526
+ "to-buffer": {
2527
+ "version": "1.1.1",
2528
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
2529
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
2530
+ "dev": true
2531
+ },
2532
+ "tough-cookie": {
2533
+ "version": "2.4.3",
2534
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
2535
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2536
+ "dev": true,
2537
+ "optional": true,
2538
+ "requires": {
2539
+ "psl": "^1.1.24",
2540
+ "punycode": "^1.4.1"
2541
+ }
2542
+ },
2543
+ "trim-newlines": {
2544
+ "version": "1.0.0",
2545
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
2546
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
2547
+ "dev": true
2548
+ },
2549
+ "tunnel-agent": {
2550
+ "version": "0.6.0",
2551
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2552
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2553
+ "dev": true,
2554
+ "requires": {
2555
+ "safe-buffer": "^5.0.1"
2556
+ }
2557
+ },
2558
+ "tweetnacl": {
2559
+ "version": "0.14.5",
2560
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2561
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
2562
+ "dev": true,
2563
+ "optional": true
2564
+ },
2565
+ "underscore": {
2566
+ "version": "1.7.0",
2567
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
2568
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
2569
+ "dev": true
2570
+ },
2571
+ "underscore.string": {
2572
+ "version": "3.3.5",
2573
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
2574
+ "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
2575
+ "dev": true,
2576
+ "requires": {
2577
+ "sprintf-js": "^1.0.3",
2578
+ "util-deprecate": "^1.0.2"
2579
+ }
2580
+ },
2581
+ "util-deprecate": {
2582
+ "version": "1.0.2",
2583
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2584
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2585
+ "dev": true
2586
+ },
2587
+ "uuid": {
2588
+ "version": "3.3.2",
2589
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
2590
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
2591
+ "dev": true,
2592
+ "optional": true
2593
+ },
2594
+ "validate-npm-package-license": {
2595
+ "version": "3.0.4",
2596
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2597
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2598
+ "dev": true,
2599
+ "requires": {
2600
+ "spdx-correct": "^3.0.0",
2601
+ "spdx-expression-parse": "^3.0.0"
2602
+ }
2603
+ },
2604
+ "verror": {
2605
+ "version": "1.10.0",
2606
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2607
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2608
+ "dev": true,
2609
+ "optional": true,
2610
+ "requires": {
2611
+ "assert-plus": "^1.0.0",
2612
+ "core-util-is": "1.0.2",
2613
+ "extsprintf": "^1.2.0"
2614
+ }
2615
+ },
2616
+ "walkdir": {
2617
+ "version": "0.0.11",
2618
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
2619
+ "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
2620
+ "dev": true
2621
+ },
2622
+ "which": {
2623
+ "version": "1.3.1",
2624
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2625
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2626
+ "dev": true,
2627
+ "requires": {
2628
+ "isexe": "^2.0.0"
2629
+ }
2630
+ },
2631
+ "which-pm-runs": {
2632
+ "version": "1.0.0",
2633
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
2634
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
2635
+ "dev": true,
2636
+ "optional": true
2637
+ },
2638
+ "wide-align": {
2639
+ "version": "1.1.3",
2640
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
2641
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
2642
+ "dev": true,
2643
+ "requires": {
2644
+ "string-width": "^1.0.2 || 2"
2645
+ }
2646
+ },
2647
+ "wrappy": {
2648
+ "version": "1.0.2",
2649
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2650
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2651
+ "dev": true
2652
+ },
2653
+ "xtend": {
2654
+ "version": "4.0.1",
2655
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
2656
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
2657
+ "dev": true
2658
+ },
2659
+ "zip-stream": {
2660
+ "version": "1.2.0",
2661
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
2662
+ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
2663
+ "dev": true,
2664
+ "requires": {
2665
+ "archiver-utils": "^1.3.0",
2666
+ "compress-commons": "^1.2.0",
2667
+ "lodash": "^4.8.0",
2668
+ "readable-stream": "^2.0.0"
2669
+ }
2670
+ }
2671
+ }
2672
+ }
package.json CHANGED
@@ -1,5 +1,6 @@
1
  {
2
  "name": "simple-social-icons",
 
3
  "description": "Development files for the Simple Social Icons plugin.",
4
  "repository": {
5
  "type": "git",
@@ -8,19 +9,13 @@
8
  "dependencies": {},
9
  "devDependencies": {
10
  "grunt": "*",
11
- "grunt-autoprefixer": "*",
12
  "grunt-checktextdomain": "*",
13
- "grunt-contrib-cssmin": "*",
14
- "grunt-contrib-imagemin": "*",
15
- "grunt-contrib-jshint": "*",
16
- "grunt-contrib-uglify": "*",
17
- "grunt-contrib-watch": "*",
18
- "grunt-csscomb": "*",
19
- "grunt-jsbeautifier": "*",
20
- "grunt-jsvalidate": "*",
21
  "grunt-phplint": "*",
22
- "grunt-styledocco": "*",
23
  "grunt-wp-i18n": "*",
 
 
 
 
24
  "load-grunt-tasks": "*"
25
  },
26
  "plugin": {
@@ -29,7 +24,7 @@
29
  "description": "A simple, CSS and icon font driven social icons widget.",
30
  "author": "StudioPress",
31
  "authoruri": "http://www.studiopress.com/",
32
- "version": "2.0.1",
33
  "license": "GPL-2.0+",
34
  "licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
35
  "textdomain": "simple-social-icons"
1
  {
2
  "name": "simple-social-icons",
3
+ "main_plugin_file": "simple-social-icons",
4
  "description": "Development files for the Simple Social Icons plugin.",
5
  "repository": {
6
  "type": "git",
9
  "dependencies": {},
10
  "devDependencies": {
11
  "grunt": "*",
 
12
  "grunt-checktextdomain": "*",
 
 
 
 
 
 
 
 
13
  "grunt-phplint": "*",
 
14
  "grunt-wp-i18n": "*",
15
+ "grunt-contrib-compress": "*",
16
+ "grunt-contrib-copy": "*",
17
+ "grunt-replace": "*",
18
+ "grunt-wptools": "*",
19
  "load-grunt-tasks": "*"
20
  },
21
  "plugin": {
24
  "description": "A simple, CSS and icon font driven social icons widget.",
25
  "author": "StudioPress",
26
  "authoruri": "http://www.studiopress.com/",
27
+ "version": "3.0.0",
28
  "license": "GPL-2.0+",
29
  "licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
30
  "textdomain": "simple-social-icons"
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Plugin Name ===
2
- Contributors: studiopress, nathanrice, bgardner, laurenmancke, shannonsans
3
  Tags: social media, social networking, social profiles
4
  Requires at least: 4.0
5
- Tested up to: 4.7
6
- Stable tag: 2.0.1
7
 
8
  This plugin allows you to insert social icons in any widget area.
9
 
@@ -30,6 +30,14 @@ Yes, icons can be reordered with the use of a filter. See: https://github.com/co
30
 
31
  Yes, icons can be added with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Add-an-additional-icon-in-version-2.0
32
 
 
 
 
 
 
 
 
 
33
  = Which services are included? =
34
 
35
  * Behance
@@ -59,6 +67,17 @@ NOTE - The rights to each pictogram in the social extension are either trademark
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
 
 
 
 
 
 
62
  = 2.0.1 =
63
  * Fixed typo in Snapchat icon markup
64
  * Made CSS selectors more specific
1
  === Plugin Name ===
2
+ Contributors: studiopress, nathanrice, bgardner, laurenmancke, shannonsans, modernnerd, marksabbath, damiencarbery, helgatheviking, littlerchicken, tiagohillebrandt, wpmuguru, michaelbeil, norcross, rafaltomal
3
  Tags: social media, social networking, social profiles
4
  Requires at least: 4.0
5
+ Tested up to: 4.9
6
+ Stable tag: 3.0.0
7
 
8
  This plugin allows you to insert social icons in any widget area.
9
 
30
 
31
  Yes, icons can be added with the use of a filter. See: https://github.com/copyblogger/simple-social-icons/wiki/Add-an-additional-icon-in-version-2.0
32
 
33
+ = My icon styling changed after updating =
34
+
35
+ If your theme includes custom icon styling, you can try adding this line to your functions.php file:
36
+
37
+ `add_filter( 'simple_social_disable_custom_css', '__return_true' );`
38
+
39
+ This will remove icon styling options in the widget settings, and prevent Simple Social Icons from overriding custom theme styling.
40
+
41
  = Which services are included? =
42
 
43
  * Behance
67
 
68
  == Changelog ==
69
 
70
+ = 3.0.0 =
71
+ * Obfuscate email address from spambots
72
+ * Prevent email links to open in new window if option selected
73
+ * Fix saving email by removing http:// from it
74
+ * Allow icons to accept transparent color on border and background
75
+ * Fix phone by removing http:// from it
76
+ * Updated Medium logo
77
+ * Added a proper uninstall hook
78
+ * Added a filter to disable the CSS
79
+ * Added filter to update the HTML markup
80
+
81
  = 2.0.1 =
82
  * Fixed typo in Snapchat icon markup
83
  * Made CSS selectors more specific
simple-social-icons.php CHANGED
@@ -1,19 +1,17 @@
1
  <?php
2
- /*
3
- Plugin Name: Simple Social Icons
4
- Plugin URI: http://wordpress.org/plugins/simple-social-icons/
5
- Description: A simple CSS and SVG driven social icons widget.
6
- Author: Nathan Rice
7
- Author URI: http://www.nathanrice.net/
8
-
9
- Version: 2.0.1
10
-
11
- Text Domain: simple-social-icons
12
- Domain Path: /languages
13
-
14
- License: GNU General Public License v2.0 (or later)
15
- License URI: http://www.opensource.org/licenses/gpl-license.php
16
- */
17
 
18
  add_action( 'plugins_loaded', 'simple_social_icons_load_textdomain' );
19
  /**
@@ -30,7 +28,7 @@ class Simple_Social_Icons_Widget extends WP_Widget {
30
  *
31
  * @var string
32
  */
33
- protected $version = '2.0.1';
34
 
35
  /**
36
  * Default widget values.
@@ -53,6 +51,20 @@ class Simple_Social_Icons_Widget extends WP_Widget {
53
  */
54
  protected $profiles;
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  /**
57
  * Constructor method.
58
  *
@@ -61,7 +73,11 @@ class Simple_Social_Icons_Widget extends WP_Widget {
61
  function __construct() {
62
 
63
  /**
64
- * Default widget option values.
 
 
 
 
65
  */
66
  $this->defaults = apply_filters( 'simple_social_default_styles', array(
67
  'title' => '',
@@ -101,99 +117,122 @@ class Simple_Social_Icons_Widget extends WP_Widget {
101
  ) );
102
 
103
  /**
104
- * Social profile choices.
 
 
 
 
105
  */
106
  $this->profiles = apply_filters( 'simple_social_default_profiles', array(
107
  'behance' => array(
108
  'label' => __( 'Behance URI', 'simple-social-icons' ),
109
- 'pattern' => '<li class="ssi-behance"><a href="%s" %s><svg role="img" class="social-behance" aria-labelledby="social-behance"><title id="social-behance">' . __( 'Behance', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-behance' ) . '"></use></svg></a></li>',
110
  ),
111
  'bloglovin' => array(
112
  'label' => __( 'Bloglovin URI', 'simple-social-icons' ),
113
- 'pattern' => '<li class="ssi-bloglovin"><a href="%s" %s><svg role="img" class="social-bloglovin" aria-labelledby="social-bloglovin"><title id="social-bloglovin">' . __( 'Bloglovin', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-bloglovin' ) . '"></use></svg></a></li>',
114
  ),
115
  'dribbble' => array(
116
  'label' => __( 'Dribbble URI', 'simple-social-icons' ),
117
- 'pattern' => '<li class="ssi-dribbble"><a href="%s" %s><svg role="img" class="social-dribbble" aria-labelledby="social-dribbble"><title id="social-dribbble">' . __( 'Dribbble', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-dribbble' ) . '"></use></svg></a></li>',
118
  ),
119
  'email' => array(
120
  'label' => __( 'Email URI', 'simple-social-icons' ),
121
- 'pattern' => '<li class="ssi-email"><a href="%s" %s><svg role="img" class="social-email" aria-labelledby="social-email"><title id="social-email">' . __( 'Email', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-email' ) . '"></use></svg></a></li>',
122
  ),
123
  'facebook' => array(
124
  'label' => __( 'Facebook URI', 'simple-social-icons' ),
125
- 'pattern' => '<li class="ssi-facebook"><a href="%s" %s><svg role="img" class="social-facebook" aria-labelledby="social-facebook"><title id="social-facebook">' . __( 'Facebook', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-facebook' ) . '"></use></svg></a></li>',
126
  ),
127
  'flickr' => array(
128
  'label' => __( 'Flickr URI', 'simple-social-icons' ),
129
- 'pattern' => '<li class="ssi-flickr"><a href="%s" %s><svg role="img" class="social-flickr" aria-labelledby="social-flickr"><title id="social-flickr">' . __( 'Flickr', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-flickr' ) . '"></use></svg></a></li>',
130
  ),
131
  'github' => array(
132
  'label' => __( 'GitHub URI', 'simple-social-icons' ),
133
- 'pattern' => '<li class="ssi-github"><a href="%s" %s><svg role="img" class="social-github" aria-labelledby="social-github"><title id="social-github">' . __( 'Github', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-github' ) . '"></use></svg></a></li>',
134
  ),
135
  'gplus' => array(
136
  'label' => __( 'Google+ URI', 'simple-social-icons' ),
137
- 'pattern' => '<li class="ssi-gplus"><a href="%s" %s><svg role="img" class="social-gplus" aria-labelledby="social-gplus"><title id="social-gplus">' . __( 'Google+', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-gplus' ) . '"></use></svg></a></li>',
138
  ),
139
  'instagram' => array(
140
  'label' => __( 'Instagram URI', 'simple-social-icons' ),
141
- 'pattern' => '<li class="ssi-instagram"><a href="%s" %s><svg role="img" class="social-instagram" aria-labelledby="social-instagram"><title id="social-instagram">' . __( 'Instagram', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-instagram' ) . '"></use></svg></a></li>',
142
  ),
143
  'linkedin' => array(
144
  'label' => __( 'Linkedin URI', 'simple-social-icons' ),
145
- 'pattern' => '<li class="ssi-linkedin"><a href="%s" %s><svg role="img" class="social-linkedin" aria-labelledby="social-linkedin"><title id="social-linkedin">' . __( 'Linkedin', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-linkedin' ) . '"></use></svg></a></li>',
146
  ),
147
  'medium' => array(
148
  'label' => __( 'Medium URI', 'simple-social-icons' ),
149
- 'pattern' => '<li class="ssi-medium"><a href="%s" %s><svg role="img" class="social-medium" aria-labelledby="social-medium"><title id="social-medium">' . __( 'Medium', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-medium' ) . '"></use></svg></a></li>',
150
  ),
151
  'periscope' => array(
152
  'label' => __( 'Periscope URI', 'simple-social-icons' ),
153
- 'pattern' => '<li class="ssi-periscope"><a href="%s" %s><svg role="img" class="social-periscope" aria-labelledby="social-periscope"><title id="social-periscope">' . __( 'Periscope', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-periscope' ) . '"></use></svg></a></li>',
154
  ),
155
  'phone' => array(
156
  'label' => __( 'Phone URI', 'simple-social-icons' ),
157
- 'pattern' => '<li class="ssi-phone"><a href="%s" %s><svg role="img" class="social-phone" aria-labelledby="social-phone"><title id="social-phone">' . __( 'Phone', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-phone' ) . '"></use></svg></a></li>',
158
  ),
159
  'pinterest' => array(
160
  'label' => __( 'Pinterest URI', 'simple-social-icons' ),
161
- 'pattern' => '<li class="ssi-pinterest"><a href="%s" %s><svg role="img" class="social-pinterest" aria-labelledby="social-pinterest"><title id="social-pinterest">' . __( 'Pinterest', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-pinterest' ) . '"></use></svg></a></li>',
162
  ),
163
  'rss' => array(
164
  'label' => __( 'RSS URI', 'simple-social-icons' ),
165
- 'pattern' => '<li class="ssi-rss"><a href="%s" %s><svg role="img" class="social-rss" aria-labelledby="social-rss"><title id="social-rss">' . __( 'RSS', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-rss' ) . '"></use></svg></a></li>',
166
  ),
167
  'snapchat' => array(
168
  'label' => __( 'Snapchat URI', 'simple-social-icons' ),
169
- 'pattern' => '<li class="ssi-snapchat"><a href="%s" %s><svg role="img" class="social-snapchat" aria-labelledby="social-snapchat"><title id="social-snapchat">' . __( 'Snapchat', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-snapchat' ) . '"></use></svg></a></li>',
170
  ),
171
  'stumbleupon' => array(
172
  'label' => __( 'StumbleUpon URI', 'simple-social-icons' ),
173
- 'pattern' => '<li class="ssi-stumbleupon"><a href="%s" %s><svg role="img" class="social-stumbleupon" aria-labelledby="social-stumbleupon"><title id="social-stumbleupon">' . __( 'StumbleUpon', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-stumbleupon' ) . '"></use></svg></a></li>',
174
  ),
175
  'tumblr' => array(
176
  'label' => __( 'Tumblr URI', 'simple-social-icons' ),
177
- 'pattern' => '<li class="ssi-tumblr"><a href="%s" %s><svg role="img" class="social-tumblr" aria-labelledby="social-tumblr"><title id="social-tumblr">' . __( 'Tumblr', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-tumblr' ) . '"></use></svg></a></li>',
178
  ),
179
  'twitter' => array(
180
  'label' => __( 'Twitter URI', 'simple-social-icons' ),
181
- 'pattern' => '<li class="ssi-twitter"><a href="%s" %s><svg role="img" class="social-twitter" aria-labelledby="social-twitter"><title id="social-twitter">' . __( 'Twitter', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-twitter' ) . '"></use></svg></a></li>',
182
  ),
183
  'vimeo' => array(
184
  'label' => __( 'Vimeo URI', 'simple-social-icons' ),
185
- 'pattern' => '<li class="ssi-vimeo"><a href="%s" %s><svg role="img" class="social-vimeo" aria-labelledby="social-vimeo"><title id="social-vimeo">' . __( 'Vimeo', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-vimeo' ) . '"></use></svg></a></li>',
186
  ),
187
  'xing' => array(
188
  'label' => __( 'Xing URI', 'simple-social-icons' ),
189
- 'pattern' => '<li class="ssi-xing"><a href="%s" %s><svg role="img" class="social-xing" aria-labelledby="social-xing"><title id="social-xing">' . __( 'Xing', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-xing' ) . '"></use></svg></a></li>',
190
  ),
191
  'youtube' => array(
192
  'label' => __( 'YouTube URI', 'simple-social-icons' ),
193
- 'pattern' => '<li class="ssi-youtube"><a href="%s" %s><svg role="img" class="social-youtube" aria-labelledby="social-youtube"><title id="social-youtube">' . __( 'YouTube', 'simple-social-icons' ) . '</title><use xlink:href="' . esc_url( plugin_dir_url(__FILE__) . 'symbol-defs.svg#social-youtube' ) . '"></use></svg></a></li>',
194
  ),
195
  ) );
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  $widget_ops = array(
198
  'classname' => 'simple-social-icons',
199
  'description' => __( 'Displays select social icons.', 'simple-social-icons' ),
@@ -203,13 +242,15 @@ class Simple_Social_Icons_Widget extends WP_Widget {
203
  'id_base' => 'simple-social-icons',
204
  );
205
 
 
 
206
  parent::__construct( 'simple-social-icons', __( 'Simple Social Icons', 'simple-social-icons' ), $widget_ops, $control_ops );
207
 
208
  /** Enqueue scripts and styles */
209
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_css' ) );
210
 
211
  /** Load CSS in <head> */
212
- add_action( 'wp_head', array( $this, 'css' ) );
213
 
214
  /** Load color picker */
215
  add_action( 'admin_enqueue_scripts', array( $this, 'load_color_picker' ) );
@@ -285,42 +326,45 @@ class Simple_Social_Icons_Widget extends WP_Widget {
285
 
286
  <p><label><input id="<?php echo $this->get_field_id( 'new_window' ); ?>" type="checkbox" name="<?php echo $this->get_field_name( 'new_window' ); ?>" value="1" <?php checked( 1, $instance['new_window'] ); ?>/> <?php esc_html_e( 'Open links in new window?', 'simple-social-icons' ); ?></label></p>
287
 
288
- <p><label for="<?php echo $this->get_field_id( 'size' ); ?>"><?php _e( 'Icon Size', 'simple-social-icons' ); ?>:</label> <input id="<?php echo $this->get_field_id( 'size' ); ?>" name="<?php echo $this->get_field_name( 'size' ); ?>" type="text" value="<?php echo esc_attr( $instance['size'] ); ?>" size="3" />px</p>
289
 
290
- <p><label for="<?php echo $this->get_field_id( 'border_radius' ); ?>"><?php _e( 'Icon Border Radius:', 'simple-social-icons' ); ?></label> <input id="<?php echo $this->get_field_id( 'border_radius' ); ?>" name="<?php echo $this->get_field_name( 'border_radius' ); ?>" type="text" value="<?php echo esc_attr( $instance['border_radius'] ); ?>" size="3" />px</p>
291
 
292
- <p><label for="<?php echo $this->get_field_id( 'border_width' ); ?>"><?php _e( 'Border Width:', 'simple-social-icons' ); ?></label> <input id="<?php echo $this->get_field_id( 'border_width' ); ?>" name="<?php echo $this->get_field_name( 'border_width' ); ?>" type="text" value="<?php echo esc_attr( $instance['border_width'] ); ?>" size="3" />px</p>
293
 
294
- <p>
295
- <label for="<?php echo $this->get_field_id( 'alignment' ); ?>"><?php _e( 'Alignment', 'simple-social-icons' ); ?>:</label>
296
- <select id="<?php echo $this->get_field_id( 'alignment' ); ?>" name="<?php echo $this->get_field_name( 'alignment' ); ?>">
297
- <option value="alignleft" <?php selected( 'alignright', $instance['alignment'] ) ?>><?php _e( 'Align Left', 'simple-social-icons' ); ?></option>
298
- <option value="aligncenter" <?php selected( 'aligncenter', $instance['alignment'] ) ?>><?php _e( 'Align Center', 'simple-social-icons' ); ?></option>
299
- <option value="alignright" <?php selected( 'alignright', $instance['alignment'] ) ?>><?php _e( 'Align Right', 'simple-social-icons' ); ?></option>
300
- </select>
301
- </p>
302
 
303
- <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
 
 
 
 
 
 
 
304
 
305
- <p><label for="<?php echo $this->get_field_id( 'background_color' ); ?>"><?php _e( 'Icon Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'icon_color' ); ?>" name="<?php echo $this->get_field_name( 'icon_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['icon_color'] ); ?>" value="<?php echo esc_attr( $instance['icon_color'] ); ?>" size="6" /></p>
306
 
307
- <p><label for="<?php echo $this->get_field_id( 'background_color_hover' ); ?>"><?php _e( 'Icon Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'icon_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'icon_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['icon_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['icon_color_hover'] ); ?>" size="6" /></p>
308
 
309
- <p><label for="<?php echo $this->get_field_id( 'background_color' ); ?>"><?php _e( 'Background Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'background_color' ); ?>" name="<?php echo $this->get_field_name( 'background_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['background_color'] ); ?>" value="<?php echo esc_attr( $instance['background_color'] ); ?>" size="6" /></p>
310
 
311
- <p><label for="<?php echo $this->get_field_id( 'background_color_hover' ); ?>"><?php _e( 'Background Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'background_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'background_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['background_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['background_color_hover'] ); ?>" size="6" /></p>
312
 
313
- <p><label for="<?php echo $this->get_field_id( 'border_color' ); ?>"><?php _e( 'Border Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'border_color' ); ?>" name="<?php echo $this->get_field_name( 'border_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['border_color'] ); ?>" value="<?php echo esc_attr( $instance['border_color'] ); ?>" size="6" /></p>
314
 
315
- <p><label for="<?php echo $this->get_field_id( 'border_color_hover' ); ?>"><?php _e( 'Border Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'border_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'border_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['border_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['border_color_hover'] ); ?>" size="6" /></p>
316
 
317
- <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
 
 
 
318
 
319
  <?php
320
  foreach ( (array) $this->profiles as $profile => $data ) {
321
 
322
  printf( '<p><label for="%s">%s:</label></p>', esc_attr( $this->get_field_id( $profile ) ), esc_attr( $data['label'] ) );
323
- printf( '<p><input type="text" id="%s" name="%s" value="%s" class="widefat" />', esc_attr( $this->get_field_id( $profile ) ), esc_attr( $this->get_field_name( $profile ) ), esc_url( $instance[$profile] ) );
324
  printf( '</p>' );
325
 
326
  }
@@ -335,27 +379,39 @@ class Simple_Social_Icons_Widget extends WP_Widget {
335
  */
336
  function update( $newinstance, $oldinstance ) {
337
 
 
 
 
 
 
 
 
 
338
  foreach ( $newinstance as $key => $value ) {
339
 
340
  /** Border radius and Icon size must not be empty, must be a digit */
341
  if ( ( 'border_radius' == $key || 'size' == $key ) && ( '' == $value || ! ctype_digit( $value ) ) ) {
342
- $newinstance[$key] = 0;
343
  }
344
 
345
  if ( ( 'border_width' == $key || 'size' == $key ) && ( '' == $value || ! ctype_digit( $value ) ) ) {
346
- $newinstance[$key] = 0;
 
 
 
 
 
347
  }
348
 
349
  /** Validate hex code colors */
350
  elseif ( strpos( $key, '_color' ) && 0 == preg_match( '/^#(([a-fA-F0-9]{3}$)|([a-fA-F0-9]{6}$))/', $value ) ) {
351
- $newinstance[$key] = $oldinstance[$key];
352
  }
353
 
354
  /** Sanitize Profile URIs */
355
- elseif ( array_key_exists( $key, (array) $this->profiles ) ) {
356
- $newinstance[$key] = esc_url( $newinstance[$key] );
357
  }
358
-
359
  }
360
 
361
  return $newinstance;
@@ -382,8 +438,6 @@ class Simple_Social_Icons_Widget extends WP_Widget {
382
 
383
  $output = '';
384
 
385
- $new_window = $instance['new_window'] ? 'target="_blank"' : '';
386
-
387
  $profiles = (array) $this->profiles;
388
 
389
  foreach ( $profiles as $profile => $data ) {
@@ -391,22 +445,41 @@ class Simple_Social_Icons_Widget extends WP_Widget {
391
  if ( empty( $instance[ $profile ] ) )
392
  continue;
393
 
394
- if ( is_email( $instance[ $profile ] ) )
395
- $output .= sprintf( $data['pattern'], 'mailto:' . esc_attr( $instance[$profile] ), $new_window );
396
- else
397
- $output .= sprintf( $data['pattern'], esc_url( $instance[$profile] ), $new_window );
 
 
 
 
 
 
 
 
398
 
399
  }
400
 
401
- if ( $output )
 
402
  printf( '<ul class="%s">%s</ul>', $instance['alignment'], $output );
 
403
 
404
  echo $after_widget;
405
 
 
 
406
  }
407
 
408
  function enqueue_css() {
409
 
 
 
 
 
 
 
 
410
  $cssfile = apply_filters( 'simple_social_default_stylesheet', plugin_dir_url( __FILE__ ) . 'css/style.css' );
411
 
412
  wp_enqueue_style( 'simple-social-icons-font', esc_url( $cssfile ), array(), $this->version, 'all' );
@@ -423,50 +496,100 @@ class Simple_Social_Icons_Widget extends WP_Widget {
423
 
424
  /** Pull widget settings, merge with defaults */
425
  $all_instances = $this->get_settings();
426
- if ( ! isset( $this->number ) || ! isset( $all_instances[$this->number] ) ) {
427
- return;
428
- }
429
 
430
- $instance = wp_parse_args( $all_instances[$this->number], $this->defaults );
431
-
432
- $font_size = round( (int) $instance['size'] / 2 );
433
- $icon_padding = round ( (int) $font_size / 2 );
434
-
435
- /** The CSS to output */
436
- $css = '
437
- .simple-social-icons ul li a,
438
- .simple-social-icons ul li a:hover,
439
- .simple-social-icons ul li a:focus {
440
- background-color: ' . $instance['background_color'] . ' !important;
441
- border-radius: ' . $instance['border_radius'] . 'px;
442
- color: ' . $instance['icon_color'] . ' !important;
443
- border: ' . $instance['border_width'] . 'px ' . $instance['border_color'] . ' solid !important;
444
- font-size: ' . $font_size . 'px;
445
- padding: ' . $icon_padding . 'px;
446
- }
447
 
448
- .simple-social-icons ul li a:hover,
449
- .simple-social-icons ul li a:focus {
450
- background-color: ' . $instance['background_color_hover'] . ' !important;
451
- border-color: ' . $instance['border_color_hover'] . ' !important;
452
- color: ' . $instance['icon_color_hover'] . ' !important;
453
- }
454
 
455
- .simple-social-icons ul li a:focus {
456
- outline: 1px dotted ' . $instance['background_color_hover'] . ' !important;
457
- }';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
458
 
459
- /** Minify a bit */
 
 
460
  $css = str_replace( "\t", '', $css );
461
  $css = str_replace( array( "\n", "\r" ), ' ', $css );
462
 
463
- /** Echo the CSS */
464
  echo '<style type="text/css" media="screen">' . $css . '</style>';
465
 
466
  }
467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
  }
469
 
 
470
  add_action( 'widgets_init', 'ssiw_load_widget' );
471
  /**
472
  * Widget Registration.
1
  <?php
2
+ /**
3
+ * Plugin Name: Simple Social Icons
4
+ * Plugin URI: https://wordpress.org/plugins/simple-social-icons/
5
+ * Description: A simple CSS and SVG driven social icons widget.
6
+ * Author: StudioPress
7
+ * Author URI: https://www.studiopress.com/
8
+ * Version: 3.0.0
9
+ * Text Domain: simple-social-icons
10
+ * Domain Path: /languages
11
+ *
12
+ * License: GNU General Public License v2.0 (or later)
13
+ * License URI: https://www.opensource.org/licenses/gpl-license.php
14
+ */
 
 
15
 
16
  add_action( 'plugins_loaded', 'simple_social_icons_load_textdomain' );
17
  /**
28
  *
29
  * @var string
30
  */
31
+ protected $version = '3.0.0';
32
 
33
  /**
34
  * Default widget values.
51
  */
52
  protected $profiles;
53
 
54
+ /**
55
+ * Array of widget instance IDs. Used to generate CSS.
56
+ *
57
+ * @var array
58
+ */
59
+ protected $active_instances;
60
+
61
+ /**
62
+ * Controls custom css output.
63
+ *
64
+ * @var bool
65
+ */
66
+ protected $disable_css_output;
67
+
68
  /**
69
  * Constructor method.
70
  *
73
  function __construct() {
74
 
75
  /**
76
+ * Filter for default widget option values.
77
+ *
78
+ * @since 1.0.6
79
+ *
80
+ * @param array $defaults Default widget options.
81
  */
82
  $this->defaults = apply_filters( 'simple_social_default_styles', array(
83
  'title' => '',
117
  ) );
118
 
119
  /**
120
+ * Filter for social profile choices.
121
+ *
122
+ * @since 1.0.6
123
+ *
124
+ * @param array $profiles Social icons to include in widget options.
125
  */
126
  $this->profiles = apply_filters( 'simple_social_default_profiles', array(
127
  'behance' => array(
128
  'label' => __( 'Behance URI', 'simple-social-icons' ),
129
+ 'pattern' => $this->get_icon_markup( 'behance', __( 'Behance', 'simple-social-icons' ) ),
130
  ),
131
  'bloglovin' => array(
132
  'label' => __( 'Bloglovin URI', 'simple-social-icons' ),
133
+ 'pattern' => $this->get_icon_markup( 'bloglovin', __( 'Bloglovin', 'simple-social-icons' ) ),
134
  ),
135
  'dribbble' => array(
136
  'label' => __( 'Dribbble URI', 'simple-social-icons' ),
137
+ 'pattern' => $this->get_icon_markup( 'dribbble', __( 'Dribbble', 'simple-social-icons' ) ),
138
  ),
139
  'email' => array(
140
  'label' => __( 'Email URI', 'simple-social-icons' ),
141
+ 'pattern' => $this->get_icon_markup( 'email', __( 'Email', 'simple-social-icons' ) ),
142
  ),
143
  'facebook' => array(
144
  'label' => __( 'Facebook URI', 'simple-social-icons' ),
145
+ 'pattern' => $this->get_icon_markup( 'facebook', __( 'Facebook', 'simple-social-icons' ) ),
146
  ),
147
  'flickr' => array(
148
  'label' => __( 'Flickr URI', 'simple-social-icons' ),
149
+ 'pattern' => $this->get_icon_markup( 'flickr', __( 'Flickr', 'simple-social-icons' ) ),
150
  ),
151
  'github' => array(
152
  'label' => __( 'GitHub URI', 'simple-social-icons' ),
153
+ 'pattern' => $this->get_icon_markup( 'github', __( 'GitHub', 'simple-social-icons' ) ),
154
  ),
155
  'gplus' => array(
156
  'label' => __( 'Google+ URI', 'simple-social-icons' ),
157
+ 'pattern' => $this->get_icon_markup( 'gplus', __( 'Google+', 'simple-social-icons' ) ),
158
  ),
159
  'instagram' => array(
160
  'label' => __( 'Instagram URI', 'simple-social-icons' ),
161
+ 'pattern' => $this->get_icon_markup( 'instagram', __( 'Instagram', 'simple-social-icons' ) ),
162
  ),
163
  'linkedin' => array(
164
  'label' => __( 'Linkedin URI', 'simple-social-icons' ),
165
+ 'pattern' => $this->get_icon_markup( 'linkedin', __( 'LinkedIn', 'simple-social-icons' ) ),
166
  ),
167
  'medium' => array(
168
  'label' => __( 'Medium URI', 'simple-social-icons' ),
169
+ 'pattern' => $this->get_icon_markup( 'medium', __( 'Medium', 'simple-social-icons' ) ),
170
  ),
171
  'periscope' => array(
172
  'label' => __( 'Periscope URI', 'simple-social-icons' ),
173
+ 'pattern' => $this->get_icon_markup( 'periscope', __( 'Periscope', 'simple-social-icons' ) ),
174
  ),
175
  'phone' => array(
176
  'label' => __( 'Phone URI', 'simple-social-icons' ),
177
+ 'pattern' => $this->get_icon_markup( 'phone', __( 'Phone', 'simple-social-icons' ) ),
178
  ),
179
  'pinterest' => array(
180
  'label' => __( 'Pinterest URI', 'simple-social-icons' ),
181
+ 'pattern' => $this->get_icon_markup( 'pinterest', __( 'Pinterest', 'simple-social-icons' ) ),
182
  ),
183
  'rss' => array(
184
  'label' => __( 'RSS URI', 'simple-social-icons' ),
185
+ 'pattern' => $this->get_icon_markup( 'rss', __( 'RSS', 'simple-social-icons' ) ),
186
  ),
187
  'snapchat' => array(
188
  'label' => __( 'Snapchat URI', 'simple-social-icons' ),
189
+ 'pattern' => $this->get_icon_markup( 'snapchat', __( 'Snapchat', 'simple-social-icons' ) ),
190
  ),
191
  'stumbleupon' => array(
192
  'label' => __( 'StumbleUpon URI', 'simple-social-icons' ),
193
+ 'pattern' => $this->get_icon_markup( 'stumbleupon', __( 'StumbleUpon', 'simple-social-icons' ) ),
194
  ),
195
  'tumblr' => array(
196
  'label' => __( 'Tumblr URI', 'simple-social-icons' ),
197
+ 'pattern' => $this->get_icon_markup( 'tumblr', __( 'Tumblr', 'simple-social-icons' ) ),
198
  ),
199
  'twitter' => array(
200
  'label' => __( 'Twitter URI', 'simple-social-icons' ),
201
+ 'pattern' => $this->get_icon_markup( 'twitter', __( 'Twitter', 'simple-social-icons' ) ),
202
  ),
203
  'vimeo' => array(
204
  'label' => __( 'Vimeo URI', 'simple-social-icons' ),
205
+ 'pattern' => $this->get_icon_markup( 'vimeo', __( 'Vimeo', 'simple-social-icons' ) ),
206
  ),
207
  'xing' => array(
208
  'label' => __( 'Xing URI', 'simple-social-icons' ),
209
+ 'pattern' => $this->get_icon_markup( 'xing', __( 'xing', 'simple-social-icons' ) ),
210
  ),
211
  'youtube' => array(
212
  'label' => __( 'YouTube URI', 'simple-social-icons' ),
213
+ 'pattern' => $this->get_icon_markup( 'youtube', __( 'YouTube', 'simple-social-icons' ) ),
214
  ),
215
  ) );
216
 
217
+ /**
218
+ * Filter to disable output of custom CSS.
219
+ *
220
+ * Setting this to true in your child theme will:
221
+ * - Stop output of inline custom icon CSS.
222
+ * - Stop styling options showing in Simple Social Icons widget settings.
223
+ *
224
+ * The intent if enabling is that your theme will provide CSS for all
225
+ * widget areas, instead of allowing people to set their own icon
226
+ * styles. You should consider mentioning in theme documentation that
227
+ * Simple Social Icons widget settings will not display styling
228
+ * options, as your theme styles icons instead.
229
+ *
230
+ * @since 3.0.0
231
+ *
232
+ * @param bool $disable_css_output True if custom CSS should be disabled.
233
+ */
234
+ $this->disable_css_output = apply_filters( 'simple_social_disable_custom_css', false );
235
+
236
  $widget_ops = array(
237
  'classname' => 'simple-social-icons',
238
  'description' => __( 'Displays select social icons.', 'simple-social-icons' ),
242
  'id_base' => 'simple-social-icons',
243
  );
244
 
245
+ $this->active_instances = array();
246
+
247
  parent::__construct( 'simple-social-icons', __( 'Simple Social Icons', 'simple-social-icons' ), $widget_ops, $control_ops );
248
 
249
  /** Enqueue scripts and styles */
250
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_css' ) );
251
 
252
  /** Load CSS in <head> */
253
+ add_action( 'wp_footer', array( $this, 'css' ) );
254
 
255
  /** Load color picker */
256
  add_action( 'admin_enqueue_scripts', array( $this, 'load_color_picker' ) );
326
 
327
  <p><label><input id="<?php echo $this->get_field_id( 'new_window' ); ?>" type="checkbox" name="<?php echo $this->get_field_name( 'new_window' ); ?>" value="1" <?php checked( 1, $instance['new_window'] ); ?>/> <?php esc_html_e( 'Open links in new window?', 'simple-social-icons' ); ?></label></p>
328
 
329
+ <?php if ( ! $this->disable_css_output ) { ?>
330
 
331
+ <p><label for="<?php echo $this->get_field_id( 'size' ); ?>"><?php _e( 'Icon Size', 'simple-social-icons' ); ?>:</label> <input id="<?php echo $this->get_field_id( 'size' ); ?>" name="<?php echo $this->get_field_name( 'size' ); ?>" type="text" value="<?php echo esc_attr( $instance['size'] ); ?>" size="3" />px</p>
332
 
333
+ <p><label for="<?php echo $this->get_field_id( 'border_radius' ); ?>"><?php _e( 'Icon Border Radius:', 'simple-social-icons' ); ?></label> <input id="<?php echo $this->get_field_id( 'border_radius' ); ?>" name="<?php echo $this->get_field_name( 'border_radius' ); ?>" type="text" value="<?php echo esc_attr( $instance['border_radius'] ); ?>" size="3" />px</p>
334
 
335
+ <p><label for="<?php echo $this->get_field_id( 'border_width' ); ?>"><?php _e( 'Border Width:', 'simple-social-icons' ); ?></label> <input id="<?php echo $this->get_field_id( 'border_width' ); ?>" name="<?php echo $this->get_field_name( 'border_width' ); ?>" type="text" value="<?php echo esc_attr( $instance['border_width'] ); ?>" size="3" />px</p>
 
 
 
 
 
 
 
336
 
337
+ <p>
338
+ <label for="<?php echo $this->get_field_id( 'alignment' ); ?>"><?php _e( 'Alignment', 'simple-social-icons' ); ?>:</label>
339
+ <select id="<?php echo $this->get_field_id( 'alignment' ); ?>" name="<?php echo $this->get_field_name( 'alignment' ); ?>">
340
+ <option value="alignleft" <?php selected( 'alignright', $instance['alignment'] ) ?>><?php _e( 'Align Left', 'simple-social-icons' ); ?></option>
341
+ <option value="aligncenter" <?php selected( 'aligncenter', $instance['alignment'] ) ?>><?php _e( 'Align Center', 'simple-social-icons' ); ?></option>
342
+ <option value="alignright" <?php selected( 'alignright', $instance['alignment'] ) ?>><?php _e( 'Align Right', 'simple-social-icons' ); ?></option>
343
+ </select>
344
+ </p>
345
 
346
+ <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
347
 
348
+ <p><label for="<?php echo $this->get_field_id( 'background_color' ); ?>"><?php _e( 'Icon Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'icon_color' ); ?>" name="<?php echo $this->get_field_name( 'icon_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['icon_color'] ); ?>" value="<?php echo esc_attr( $instance['icon_color'] ); ?>" size="6" /></p>
349
 
350
+ <p><label for="<?php echo $this->get_field_id( 'background_color_hover' ); ?>"><?php _e( 'Icon Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'icon_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'icon_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['icon_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['icon_color_hover'] ); ?>" size="6" /></p>
351
 
352
+ <p><label for="<?php echo $this->get_field_id( 'background_color' ); ?>"><?php _e( 'Background Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'background_color' ); ?>" name="<?php echo $this->get_field_name( 'background_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['background_color'] ); ?>" value="<?php echo esc_attr( $instance['background_color'] ); ?>" size="6" /></p>
353
 
354
+ <p><label for="<?php echo $this->get_field_id( 'background_color_hover' ); ?>"><?php _e( 'Background Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'background_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'background_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['background_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['background_color_hover'] ); ?>" size="6" /></p>
355
 
356
+ <p><label for="<?php echo $this->get_field_id( 'border_color' ); ?>"><?php _e( 'Border Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'border_color' ); ?>" name="<?php echo $this->get_field_name( 'border_color' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['border_color'] ); ?>" value="<?php echo esc_attr( $instance['border_color'] ); ?>" size="6" /></p>
357
 
358
+ <p><label for="<?php echo $this->get_field_id( 'border_color_hover' ); ?>"><?php _e( 'Border Hover Color:', 'simple-social-icons' ); ?></label><br /> <input id="<?php echo $this->get_field_id( 'border_color_hover' ); ?>" name="<?php echo $this->get_field_name( 'border_color_hover' ); ?>" type="text" class="ssiw-color-picker" data-default-color="<?php echo esc_attr( $this->defaults['border_color_hover'] ); ?>" value="<?php echo esc_attr( $instance['border_color_hover'] ); ?>" size="6" /></p>
359
+
360
+ <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
361
+ <?php } ?>
362
 
363
  <?php
364
  foreach ( (array) $this->profiles as $profile => $data ) {
365
 
366
  printf( '<p><label for="%s">%s:</label></p>', esc_attr( $this->get_field_id( $profile ) ), esc_attr( $data['label'] ) );
367
+ printf( '<p><input type="text" id="%s" name="%s" value="%s" class="widefat" />', esc_attr( $this->get_field_id( $profile ) ), esc_attr( $this->get_field_name( $profile ) ), $instance[ $profile ] );
368
  printf( '</p>' );
369
 
370
  }
379
  */
380
  function update( $newinstance, $oldinstance ) {
381
 
382
+ // Fields that can be transparent if their values are unset.
383
+ $can_be_transparent = array(
384
+ 'background_color',
385
+ 'background_color_hover',
386
+ 'border_color',
387
+ 'border_color_hover',
388
+ );
389
+
390
  foreach ( $newinstance as $key => $value ) {
391
 
392
  /** Border radius and Icon size must not be empty, must be a digit */
393
  if ( ( 'border_radius' == $key || 'size' == $key ) && ( '' == $value || ! ctype_digit( $value ) ) ) {
394
+ $newinstance[ $key ] = 0;
395
  }
396
 
397
  if ( ( 'border_width' == $key || 'size' == $key ) && ( '' == $value || ! ctype_digit( $value ) ) ) {
398
+ $newinstance[ $key ] = 0;
399
+ }
400
+
401
+ /** Accept empty colors for permitted keys. */
402
+ elseif ( in_array( $key, $can_be_transparent, true ) && '' == trim( $value ) ) {
403
+ $newinstance[ $key ] = '';
404
  }
405
 
406
  /** Validate hex code colors */
407
  elseif ( strpos( $key, '_color' ) && 0 == preg_match( '/^#(([a-fA-F0-9]{3}$)|([a-fA-F0-9]{6}$))/', $value ) ) {
408
+ $newinstance[ $key ] = $oldinstance[ $key ];
409
  }
410
 
411
  /** Sanitize Profile URIs */
412
+ elseif ( array_key_exists( $key, (array) $this->profiles ) && ! is_email( $value ) && ! 'phone' === $key ) {
413
+ $newinstance[ $key ] = esc_url( $newinstance[ $key ] );
414
  }
 
415
  }
416
 
417
  return $newinstance;
438
 
439
  $output = '';
440
 
 
 
441
  $profiles = (array) $this->profiles;
442
 
443
  foreach ( $profiles as $profile => $data ) {
445
  if ( empty( $instance[ $profile ] ) )
446
  continue;
447
 
448
+ $new_window = $instance['new_window'] ? 'target="_blank" rel="noopener noreferrer"' : '';
449
+
450
+ if ( is_email( $instance[ $profile ] ) || false !== strpos( $instance[ $profile ], 'mailto:' ) )
451
+ $new_window = '';
452
+
453
+ if ( is_email( $instance[ $profile ] ) ) {
454
+ $output .= sprintf( $data['pattern'], 'mailto:' . esc_attr( antispambot( $instance[ $profile ] ) ), $new_window );
455
+ } elseif ( 'phone' === $profile ) {
456
+ $output .= sprintf( $data['pattern'], 'tel:' . esc_attr( antispambot( $instance[ $profile ] ) ), $new_window );
457
+ } else {
458
+ $output .= sprintf( $data['pattern'], esc_url( $instance[ $profile ] ), $new_window );
459
+ }
460
 
461
  }
462
 
463
+ if ( $output ) {
464
+ $output = str_replace( '{WIDGET_INSTANCE_ID}', $this->number, $output );
465
  printf( '<ul class="%s">%s</ul>', $instance['alignment'], $output );
466
+ }
467
 
468
  echo $after_widget;
469
 
470
+ $this->active_instances[] = $this->number;
471
+
472
  }
473
 
474
  function enqueue_css() {
475
 
476
+ /**
477
+ * Filter the plugin stylesheet location.
478
+ *
479
+ * @since 2.0.0
480
+ *
481
+ * @param string $cssfile The full path to the stylesheet.
482
+ */
483
  $cssfile = apply_filters( 'simple_social_default_stylesheet', plugin_dir_url( __FILE__ ) . 'css/style.css' );
484
 
485
  wp_enqueue_style( 'simple-social-icons-font', esc_url( $cssfile ), array(), $this->version, 'all' );
496
 
497
  /** Pull widget settings, merge with defaults */
498
  $all_instances = $this->get_settings();
 
 
 
499
 
500
+ $css = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
 
502
+ foreach ( $this->active_instances as $instance_id ) {
503
+ // Skip if info for this instance does not exist - this should never happen.
504
+ if ( ! isset( $all_instances[ $instance_id ] ) || $this->disable_css_output ) {
505
+ continue;
506
+ }
 
507
 
508
+ $instance = wp_parse_args( $all_instances[ $instance_id ], $this->defaults );
509
+
510
+ $font_size = round( (int) $instance['size'] / 2 );
511
+ $icon_padding = round( (int) $font_size / 2 );
512
+
513
+ // Treat empty background and border colors as transparent.
514
+ $instance['background_color'] = $instance['background_color'] ?: 'transparent';
515
+ $instance['border_color'] = $instance['border_color'] ?: 'transparent';
516
+ $instance['background_color_hover'] = $instance['background_color_hover'] ?: 'transparent';
517
+ $instance['border_color_hover'] = $instance['border_color_hover'] ?: 'transparent';
518
+
519
+ /** The CSS to output */
520
+ $css .= '
521
+ #simple-social-icons-' . $instance_id . ' ul li a,
522
+ #simple-social-icons-' . $instance_id . ' ul li a:hover,
523
+ #simple-social-icons-' . $instance_id . ' ul li a:focus {
524
+ background-color: ' . $instance['background_color'] . ' !important;
525
+ border-radius: ' . $instance['border_radius'] . 'px;
526
+ color: ' . $instance['icon_color'] . ' !important;
527
+ border: ' . $instance['border_width'] . 'px ' . $instance['border_color'] . ' solid !important;
528
+ font-size: ' . $font_size . 'px;
529
+ padding: ' . $icon_padding . 'px;
530
+ }
531
+
532
+ #simple-social-icons-' . $instance_id . ' ul li a:hover,
533
+ #simple-social-icons-' . $instance_id . ' ul li a:focus {
534
+ background-color: ' . $instance['background_color_hover'] . ' !important;
535
+ border-color: ' . $instance['border_color_hover'] . ' !important;
536
+ color: ' . $instance['icon_color_hover'] . ' !important;
537
+ }
538
+
539
+ #simple-social-icons-' . $instance_id . ' ul li a:focus {
540
+ outline: 1px dotted ' . $instance['background_color_hover'] . ' !important;
541
+ }';
542
 
543
+ }
544
+
545
+ // Minify a bit.
546
  $css = str_replace( "\t", '', $css );
547
  $css = str_replace( array( "\n", "\r" ), ' ', $css );
548
 
 
549
  echo '<style type="text/css" media="screen">' . $css . '</style>';
550
 
551
  }
552
 
553
+ /**
554
+ * Construct the markup for each icon
555
+ *
556
+ * @param string The lowercase icon name for use in tag attributes.
557
+ * @param string The plain text icon label.
558
+ *
559
+ * @return string The full markup for the given icon.
560
+ */
561
+ function get_icon_markup( $icon, $label ) {
562
+ $markup = '<li class="ssi-' . $icon . '"><a href="%s" %s>';
563
+ $markup .= '<svg role="img" class="social-' . $icon . '" aria-labelledby="social-' . $icon . '-{WIDGET_INSTANCE_ID}">';
564
+ $markup .= '<title id="social-' . $icon . '-{WIDGET_INSTANCE_ID}' . '">' . $label . '</title>';
565
+ $markup .= '<use xlink:href="' . esc_url( plugin_dir_url( __FILE__ ) . 'symbol-defs.svg#social-' . $icon ) . '"></use>';
566
+ $markup .= '</svg></a></li>';
567
+
568
+ /**
569
+ * Filter the icon markup HTML.
570
+ *
571
+ * @since 3.0.0
572
+ *
573
+ * @param string $markup The full HTML markup for a single icon.
574
+ * @param string $icon The lowercase icon name used in tag attributes.
575
+ * @param string $label The plain text icon label.
576
+ */
577
+ return apply_filters( 'simple_social_icon_html', $markup, $icon, $label );
578
+ }
579
+
580
+ /**
581
+ * Remove option when uninstalling the plugin.
582
+ *
583
+ * @since 2.1.0
584
+ */
585
+ public static function plugin_uninstall() {
586
+ delete_option( 'widget_simple-social-icons' );
587
+ }
588
+
589
+
590
  }
591
 
592
+ register_uninstall_hook( __FILE__, array( 'Simple_Social_Icons_Widget', 'plugin_uninstall' ) );
593
  add_action( 'widgets_init', 'ssiw_load_widget' );
594
  /**
595
  * Widget Registration.
symbol-defs.svg CHANGED
@@ -42,7 +42,7 @@
42
  </symbol>
43
  <symbol id="social-medium" viewBox="0 0 32 32">
44
  <title>medium</title>
45
- <path class="path1" d="M11.329 8.579v18.329c0 .261-.064.482-.195.664s-.32.273-.57.273c-.177 0-.348-.041-.516-.125l-7.266-3.641c-.218-.104-.404-.279-.555-.523S2 23.068 2 22.829V5.016c0-.209.052-.386.157-.532s.255-.218.454-.218c.146 0 .375.079.688.234l7.984 4c.03.032.046.057.046.079zm1 1.578l8.343 13.532-8.343-4.157v-9.375zM30 10.438v16.468c0 .261-.073.471-.218.632s-.343.243-.593.243-.495-.068-.734-.204l-6.891-3.438L30 10.437zm-.046-1.875c0 .032-1.336 2.216-4.007 6.555s-4.238 6.877-4.695 7.618l-6.095-9.907 5.063-8.234c.177-.291.448-.438.813-.438.146 0 .282.032.407.093l8.454 4.218c.039.021.061.054.061.095z"></path>
46
  </symbol>
47
  <symbol id="social-periscope" viewBox="0 0 32 32">
48
  <title>periscope</title>
42
  </symbol>
43
  <symbol id="social-medium" viewBox="0 0 32 32">
44
  <title>medium</title>
45
+ <path d="M3.5 8.3c.05-.4-.1-.8-.4-1.07L.02 3.55V3h9.5l7.34 16.1L23.32 3h9.06v.55l-2.62 2.5a.77.77 0 0 0-.29.74V25.2c-.04.28.07.56.3.73l2.55 2.51V29H19.47v-.55l2.65-2.57c.26-.26.26-.33.26-.73v-14.9l-7.36 18.7h-1l-8.56-18.7v12.53c-.07.53.1 1.06.48 1.44l3.44 4.17v.55H-.38v-.55l3.44-4.17c.37-.38.53-.92.44-1.44V8.3z"></path>
46
  </symbol>
47
  <symbol id="social-periscope" viewBox="0 0 32 32">
48
  <title>periscope</title>