├── .babelrc ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── appcast.xml ├── assets ├── icon.png ├── icon2x.png ├── icon3x.png ├── icon4x.png └── icon5x.png ├── gulpfile.js ├── package-lock.json ├── package.json ├── src ├── common.js ├── constants.js ├── create-type-system.js ├── manifest.json ├── responsive-type.js ├── settings.js ├── smart-symbols-no-resize.js ├── smart-symbols-update-size.js ├── spacer.js ├── stackswell.js ├── ui.js ├── utils.js └── view-model.js ├── webpack.skpm.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["@babel/plugin-proposal-class-properties"] 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # npm 2 | node_modules 3 | .npm 4 | npm-debug.log 5 | 6 | # mac 7 | .DS_Store 8 | 9 | # WebStorm 10 | .idea 11 | 12 | # personal 13 | src/notes 14 | 15 | # src maps 16 | *.map 17 | 18 | *.sketchplugin 19 | 20 | build 21 | *.local.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Stackswell LLC. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | brew install npm 3 | npm install -g skpm 4 | sudo npm install 5 | 6 | run-watch: 7 | npm run watch --run 8 | 9 | logs: 10 | skpm log -f 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Stackswell - No Longer Updated 2 | 3 | Stackswell is no longer being updated but feel free to fork the code. 4 | 5 | Thanks, 6 | Joseph 7 | hi@stackswell.io 8 | 9 | ## 📄 License 10 | 11 | Stackswell is MIT licensed, as found in the [LICENSE][l] file. 12 | 13 | [l]: https://github.com/JosephMueller/stackswell/blob/master/LICENSE 14 | 15 | -------------------------------------------------------------------------------- /appcast.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= name %> 5 | <%= appcastUrl %> 6 | <%= description %> 7 | en 8 | 9 | Version <%= version %> 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JosephMueller/stackswell/3124a64b09f3591913867680b6c4e29bd8bc9a1f/assets/icon.png -------------------------------------------------------------------------------- /assets/icon2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JosephMueller/stackswell/3124a64b09f3591913867680b6c4e29bd8bc9a1f/assets/icon2x.png -------------------------------------------------------------------------------- /assets/icon3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JosephMueller/stackswell/3124a64b09f3591913867680b6c4e29bd8bc9a1f/assets/icon3x.png -------------------------------------------------------------------------------- /assets/icon4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JosephMueller/stackswell/3124a64b09f3591913867680b6c4e29bd8bc9a1f/assets/icon4x.png -------------------------------------------------------------------------------- /assets/icon5x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JosephMueller/stackswell/3124a64b09f3591913867680b6c4e29bd8bc9a1f/assets/icon5x.png -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const packageConfig = require('./package.json'); 3 | const config = packageConfig.gulp; 4 | const gulp = require('gulp'); 5 | const shell = require('gulp-shell'); 6 | const template = require('gulp-template'); 7 | const del = require('del'); 8 | 9 | const updateUrl = `https://${config.bitbucketUsername}.bitbucket.io/${config.pluginId}/${config.updateFilename}`; 10 | const distRepo = `${config.bitbucketUsername}.bitbucket.io.git`; 11 | 12 | gulp.task('init', function(done) { 13 | if (!fs.existsSync(`${config.buildPath}/.git`)) { 14 | return gulp.src('gulpfile.js', {read: false}) 15 | .pipe(shell([ 16 | `git clone git@bitbucket.org:${config.bitbucketUsername}/${distRepo} ${config.buildPath}` 17 | ])); 18 | } 19 | done(); 20 | }); 21 | 22 | gulp.task('clean', function() { 23 | return del([`${packageConfig.skpm.main}/**`]); 24 | }); 25 | 26 | gulp.task('plugin', gulp.series('init', 'clean', shell.task([ 27 | 'NODE_ENV=production npm run build' 28 | ]))); 29 | 30 | gulp.task('appcast', function() { 31 | return gulp.src('appcast.xml') 32 | .pipe(template({ 33 | name: packageConfig.name, 34 | appcastUrl: packageConfig.skpm.appcast, 35 | description: packageConfig.description, 36 | version: packageConfig.version, 37 | updateUrl: updateUrl 38 | })) 39 | .pipe(gulp.dest(`${config.buildPath}/stackswell`)); 40 | }); 41 | 42 | gulp.task('compress', gulp.series('plugin', 'appcast', shell.task([ 43 | `zip -rq ${config.buildPath}/${config.pluginId}/${config.updateFilename} ${packageConfig.skpm.main} -x *.map` 44 | ]))); 45 | 46 | gulp.task('addToDistRepo', shell.task([ 47 | `git add ${config.pluginId}/${config.appcastFilename} ${config.pluginId}/${config.updateFilename}`, 48 | `git commit -m "v${packageConfig.version}"`, 49 | `git push` 50 | ], {cwd: config.buildPath})); 51 | 52 | gulp.task('publish', gulp.series('compress', 'addToDistRepo', shell.task([ 53 | `git tag -f v${packageConfig.version}` 54 | ]))); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Stackswell", 3 | "description": "Design responsively, faster, smarter, and more consistently.", 4 | "version": "1.1.10", 5 | "engines": { 6 | "sketch": ">=3.0" 7 | }, 8 | "skpm": { 9 | "name": "Stackswell", 10 | "manifest": "src/manifest.json", 11 | "main": "Stackswell.sketchplugin", 12 | "appcast": "https://stackswell.bitbucket.io/stackswell/appcast.xml", 13 | "assets": [ 14 | "assets/**/*" 15 | ] 16 | }, 17 | "gulp": { 18 | "pluginId": "stackswell", 19 | "updateFilename": "update.zip", 20 | "appcastFilename": "appcast.xml", 21 | "buildPath": "build", 22 | "baseUrl": "https://stackswell.bitbucket.io/stackswell", 23 | "bitbucketUsername": "stackswell" 24 | }, 25 | "scripts": { 26 | "build": "skpm-build", 27 | "watch": "skpm-build --watch", 28 | "start": "skpm-build --watch --run", 29 | "postinstall": "npm run build && skpm-link" 30 | }, 31 | "devDependencies": { 32 | "@babel/plugin-proposal-class-properties": "^7.1.0", 33 | "@skpm/builder": "^0.5.2", 34 | "del": "^3.0.0", 35 | "gulp": "^4.0.0", 36 | "gulp-shell": "^0.6.5", 37 | "gulp-template": "^5.0.0" 38 | }, 39 | "author": "Joseph Mueller " 40 | } 41 | -------------------------------------------------------------------------------- /src/common.js: -------------------------------------------------------------------------------- 1 | import { HEADER_TAGS, ALIGNMENTS } from "./settings"; 2 | 3 | export function rename_text_styles(old_settings, new_settings, document_data) { 4 | const shared_styles_by_name = new Map(); 5 | document_data.layerTextStyles().sharedStyles().forEach(shared_style => { 6 | shared_styles_by_name.set(String(shared_style.name()), shared_style); 7 | }); 8 | 9 | old_settings.breakpoint_labels.forEach((old_breakpoint_label, index) => { 10 | HEADER_TAGS.forEach(header_tag => { 11 | ALIGNMENTS.forEach(alignment => { 12 | const old_color = old_settings.naming_convention != "" ? old_settings.naming_convention : `#${old_settings.text_color !== undefined ? old_settings.text_color : new_settings.text_color}`; 13 | const old_style_name = `${old_breakpoint_label}/${header_tag}/${old_color}/${alignment}`; 14 | const shared_style = shared_styles_by_name.get(old_style_name); 15 | if (shared_style != null) { 16 | const new_color = new_settings.naming_convention != "" ? new_settings.naming_convention : `#${new_settings.text_color}`; 17 | const new_breakpoint_label = new_settings.breakpoint_labels[index]; 18 | const new_style_name = `${new_breakpoint_label}/${header_tag}/${new_color}/${alignment}`; 19 | shared_style.name = new_style_name; 20 | } 21 | }); 22 | }); 23 | }); 24 | } -------------------------------------------------------------------------------- /src/constants.js: -------------------------------------------------------------------------------- 1 | export default { 2 | NAMING_CONVENTION_PLACHOLDER_TEXT: "e.g. Blue" 3 | } -------------------------------------------------------------------------------- /src/create-type-system.js: -------------------------------------------------------------------------------- 1 | import StacksWell from './stackswell' 2 | import Settings, { DEFAULT_SETTINGS, HEADER_TAGS, ALIGNMENTS } from "./settings"; 3 | import Constants from "./constants"; 4 | import Spacer from "./spacer.js"; 5 | import UI from "./ui.js"; 6 | import ViewModel from "./view-model"; 7 | import Utils from "./utils"; 8 | import { rename_text_styles } from "./common"; 9 | 10 | var alignment_is = [ 11 | 0, 12 | 2, 13 | 1 14 | ]; 15 | 16 | function create_dialog(settings) { 17 | const dialog = UI.build_dialog("Create Type System", "Generate System", "Cancel"); 18 | 19 | // Creating the view 20 | const viewHeight = 317; 21 | const viewLineHeight = 25; // the height of each line in the modal 22 | const label_width = 100; 23 | const control_width = 200; 24 | 25 | // keep current line state 26 | var viewSpacer = new Spacer(viewHeight, 35); 27 | var viewLine = viewSpacer.nextLine(); 28 | 29 | var type_scale = { 30 | x: label_width, 31 | y: viewLine, 32 | width: control_width, 33 | height: viewLineHeight, 34 | initValue: settings.type_scale, 35 | isNumber: true, 36 | label: { 37 | x: 0, 38 | y: viewLine, 39 | width: label_width, 40 | height: viewLineHeight, 41 | fontSize: 12, 42 | message: "Type Scale" 43 | } 44 | }; 45 | 46 | viewLine = viewSpacer.nextLine(); 47 | var line_height = { 48 | x: label_width, 49 | y: viewLine, 50 | width: control_width, 51 | height: viewLineHeight, 52 | initValue: settings.line_height, 53 | isNumber: true, 54 | label: { 55 | x: 0, 56 | y: viewLine, 57 | width: label_width, 58 | height: viewLineHeight, 59 | fontSize: 12, 60 | message: "Line Height" 61 | } 62 | }; 63 | 64 | viewLine = viewSpacer.nextLine(); 65 | var paragraph_spacing = { 66 | x: label_width, 67 | y: viewLine, 68 | width: control_width, 69 | height: viewLineHeight, 70 | initValue: settings.paragraph_spacing, 71 | isNumber: true, 72 | label: { 73 | x: 0, 74 | y: viewLine, 75 | width: label_width, 76 | height: viewLineHeight, 77 | fontSize: 12, 78 | message: "Paragraph Spacing" 79 | } 80 | }; 81 | 82 | viewLine = viewSpacer.nextLine(); 83 | var alignment_checkboxes = { 84 | checkBoxes: [ 85 | { 86 | x: label_width, 87 | y: viewLine, 88 | width: 50, 89 | height: viewLineHeight, 90 | message: "Left", 91 | enabled: settings.alignments[0] == "1" 92 | }, 93 | { 94 | x: label_width + 50, 95 | y: viewLine, 96 | width: 70, 97 | height: viewLineHeight, 98 | message: "Center", 99 | enabled: settings.alignments[1] == "1" 100 | }, 101 | { 102 | x: label_width + 120, 103 | y: viewLine, 104 | width: 50, 105 | height: viewLineHeight, 106 | message: "Right", 107 | enabled: settings.alignments[2] == "1" 108 | } 109 | ], 110 | label: { 111 | x: 0, 112 | y: viewLine, 113 | width: label_width, 114 | height: viewLineHeight, 115 | fontSize: 12, 116 | message: "Alignment" 117 | } 118 | }; 119 | 120 | viewLine = viewSpacer.nextLine(); 121 | var breakpoint_scale = { 122 | x: label_width, 123 | y: viewLine, 124 | width: control_width, 125 | height: viewLineHeight, 126 | initValue: settings.breakpoint_scale, 127 | isNumber: true, 128 | label: { 129 | x: 0, 130 | y: viewLine, 131 | width: label_width, 132 | height: viewLineHeight, 133 | fontSize: 12, 134 | message: "Breakpoint Scale" 135 | } 136 | }; 137 | 138 | viewLine = viewSpacer.nextLine(); 139 | const x = label_width; 140 | const checkbox_width = 20; 141 | const textfield_width = 40; 142 | const horz_spacing = checkbox_width + textfield_width + 9; 143 | const vert_spacing = 30; 144 | const textfield_margin_left = 20; 145 | var breakpoints = { 146 | checkBoxes: [ 147 | { 148 | x: x, 149 | y: viewLine, 150 | width: checkbox_width, 151 | height: viewLineHeight, 152 | enabled: settings.chosen_breakpoints[0] == "1" 153 | }, 154 | { 155 | x: x + horz_spacing, 156 | y: viewLine, 157 | width: checkbox_width, 158 | height: viewLineHeight, 159 | enabled: settings.chosen_breakpoints[1] == "1" 160 | }, 161 | { 162 | x: x + (2 * horz_spacing), 163 | y: viewLine, 164 | width: checkbox_width, 165 | height: viewLineHeight, 166 | enabled: settings.chosen_breakpoints[2] == "1" 167 | }, 168 | { 169 | x: x, 170 | y: viewLine - vert_spacing, 171 | width: checkbox_width, 172 | height: viewLineHeight, 173 | enabled: settings.chosen_breakpoints[3] == "1" 174 | }, 175 | { 176 | x: x + horz_spacing, 177 | y: viewLine - vert_spacing, 178 | width: checkbox_width, 179 | height: viewLineHeight, 180 | enabled: settings.chosen_breakpoints[4] == "1" 181 | }, 182 | ], 183 | textFields: [ 184 | { 185 | x: x + textfield_margin_left, 186 | y: viewLine, 187 | width: textfield_width, 188 | height: viewLineHeight, 189 | initValue: settings.breakpoint_labels[0] 190 | }, 191 | { 192 | x: x + horz_spacing + textfield_margin_left, 193 | y: viewLine, 194 | width: textfield_width, 195 | height: viewLineHeight, 196 | initValue: settings.breakpoint_labels[1] 197 | }, 198 | { 199 | x: x + (2 * horz_spacing) + textfield_margin_left, 200 | y: viewLine, 201 | width: textfield_width, 202 | height: viewLineHeight, 203 | initValue: settings.breakpoint_labels[2] 204 | }, 205 | { 206 | x: x + textfield_margin_left, 207 | y: viewLine - vert_spacing, 208 | width: textfield_width, 209 | height: viewLineHeight, 210 | initValue: settings.breakpoint_labels[3] 211 | }, 212 | { 213 | x: x + horz_spacing + textfield_margin_left, 214 | y: viewLine - vert_spacing, 215 | width: textfield_width, 216 | height: viewLineHeight, 217 | initValue: settings.breakpoint_labels[4] 218 | } 219 | 220 | ], 221 | label: { 222 | x: 0, 223 | y: viewLine, 224 | width: label_width, 225 | height: viewLineHeight, 226 | fontSize: 12, 227 | message: "Breakpoints" 228 | } 229 | }; 230 | 231 | viewLine = viewSpacer.nextLine(67); 232 | var naming_convention = { 233 | x: label_width, 234 | y: viewLine, 235 | width: control_width, 236 | height: viewLineHeight, 237 | initValue: settings.naming_convention.length === 0 ? Constants.NAMING_CONVENTION_PLACHOLDER_TEXT : settings.naming_convention, // TODO make this a variable/search if changing 238 | label: { 239 | x: 0, 240 | y: viewLine, 241 | width: label_width, 242 | height: viewLineHeight, 243 | message: "Color Name" 244 | } 245 | }; 246 | 247 | viewLine = viewSpacer.nextLine(); 248 | var rounding = { 249 | x: label_width, 250 | y: viewLine, 251 | width: control_width, 252 | height: viewLineHeight, 253 | options: [ 254 | 'Normal', 255 | 'Multiples of 4', 256 | 'Multiples of 8', 257 | 'None' 258 | ], 259 | selected_option: settings.rounding, 260 | label: { 261 | x: 0, 262 | y: viewLine, 263 | width: label_width, 264 | height: viewLineHeight, 265 | fontSize: 12, 266 | message: "Rounding" 267 | } 268 | }; 269 | 270 | const accessoryView = UI.build_accessory_view(300, viewHeight, dialog) 271 | var view_model = new ViewModel(); 272 | 273 | view_model.addProp('type_scale', UI.createTextField(accessoryView, type_scale)); 274 | UI.createLabel(accessoryView, type_scale.label); 275 | 276 | view_model.addProp('line_height', UI.createTextField(accessoryView, line_height)); 277 | UI.createLabel(accessoryView, line_height.label); 278 | 279 | view_model.addProp('paragraph_spacing', UI.createTextField(accessoryView, paragraph_spacing)); 280 | UI.createLabel(accessoryView, paragraph_spacing.label); 281 | 282 | alignment_checkboxes.checkBoxes.forEach(checkbox => view_model.addPropArray('alignments', UI.createCheckBox(accessoryView, checkbox))); 283 | UI.createLabel(accessoryView, alignment_checkboxes.label); 284 | 285 | view_model.addProp('breakpoint_scale', UI.createTextField(accessoryView, breakpoint_scale)); 286 | UI.createLabel(accessoryView, breakpoint_scale.label); 287 | 288 | breakpoints.checkBoxes.forEach(checkbox => view_model.addPropArray('chosen_breakpoints', UI.createCheckBox(accessoryView, checkbox))); 289 | breakpoints.textFields.forEach(text_field => view_model.addPropArray('breakpoint_labels', UI.createTextField(accessoryView, text_field))); 290 | UI.createLabel(accessoryView, breakpoints.label); 291 | 292 | view_model.addProp('naming_convention', UI.createTextField(accessoryView, naming_convention)); 293 | UI.createLabel(accessoryView, naming_convention.label); 294 | 295 | view_model.addProp('rounding', UI.createDropdown(accessoryView, rounding)); 296 | UI.createLabel(accessoryView, rounding.label); 297 | 298 | return { 299 | dialog: dialog, 300 | model: view_model 301 | }; 302 | } 303 | 304 | function reverse_layers_and_fix_x(new_layers, chosen_alignments, type_scale, breakpoint_scale) { 305 | var max_width = 0; 306 | 307 | new_layers.forEach(function (layer) { 308 | var current_width = layer.frame().width(), 309 | current_x = layer.frame().x(); 310 | 311 | if (current_width > max_width) { 312 | max_width = current_width; 313 | } 314 | }); 315 | 316 | new_layers.forEach(function (layer) { 317 | var pieces = layer.stringValue().split('/'), 318 | current_column = ALIGNMENTS.indexOf(pieces.pop()); 319 | layer.frame().setX(layer.frame().x() + max_width * Math.max(2, breakpoint_scale, type_scale) * current_column); 320 | }); 321 | 322 | return new_layers; 323 | } 324 | 325 | function get_rounding(rounding_type) { 326 | if (rounding_type == 'Normal') { 327 | return Math.round; 328 | } else if (rounding_type == 'Multiples of 4') { 329 | return function (x) { 330 | return x - (x % 4) + Math.round(parseFloat(x % 4) / 4.0) * 4; 331 | ; 332 | } 333 | } else if (rounding_type == 'Multiples of 8') { 334 | return function (x) { 335 | return x - (x % 8) + Math.round(parseFloat(x % 8) / 8.0) * 8; 336 | } 337 | } 338 | return function (x) { 339 | return x; 340 | }; 341 | } 342 | 343 | /** 344 | * options: { 345 | current_layer:, 346 | lh, // line height 347 | x, // x pos 348 | y, // y pos 349 | fs, // font size 350 | ps, // paragraph spacing 351 | style_name, 352 | replace_text_with 353 | } 354 | */ 355 | function create_text_and_style(options) { 356 | var new_layer = options.current_layer.copy(); 357 | 358 | // setup the line height 359 | // TODO is this supposed to go into the style? 360 | // 361 | // new_layer.setTextAlignment(options.alignment); 362 | 363 | // setup the frame 364 | new_layer.frame().setY(options.y); 365 | new_layer.frame().setX(options.x); 366 | // new_layer.setLineHeight(options.lh); 367 | 368 | // get the current style & attributes 369 | var current_text_style = options.current_layer.style().textStyle(), 370 | current_attributes = current_text_style.attributes(), 371 | new_para_style = NSMutableParagraphStyle.alloc().init(); 372 | 373 | // set the paragraph properties 374 | new_para_style.setParagraphStyle(current_attributes.NSParagraphStyle); 375 | 376 | // var old = new_para_style.maximumLineHeight(); 377 | // new_para_style.lineHeight = options.lh; 378 | // new_para_style.setLineSpacing(options.lh); 379 | new_para_style.setMaximumLineHeight(options.lh); 380 | new_para_style.setMinimumLineHeight(options.lh); 381 | new_para_style.setAlignment(options.alignment_i); 382 | new_para_style.setParagraphSpacing(options.ps); 383 | 384 | // create a new text style 385 | var textStyleAttributes = { 386 | // NSColor.colorWithRed_green_blue_alpha(1,0,0,1) 387 | 'MSAttributedStringColorAttribute': current_attributes.MSAttributedStringColorAttribute, 388 | 'NSFont': NSFont.fontWithName_size_(options.current_layer.font().fontName(), options.fs), 389 | 'NSParagraphStyle': new_para_style 390 | }; 391 | var textStyle = MSTextStyle.styleWithAttributes_(textStyleAttributes); 392 | 393 | // add the text style to a style 394 | var style = MSStyle.alloc().init(); 395 | style.setTextStyle_(textStyle); 396 | 397 | // add the style to shared style 398 | var hexVal = options.naming_convention ? options.naming_convention : '#' + current_attributes.MSAttributedStringColorAttribute.hexValue(); 399 | const style_name = options.style_name.replace('COLOR', hexVal); 400 | let shared_style = context.document.documentData().layerTextStyles().sharedStyles().find(sharedStyle => { 401 | return sharedStyle.name() == style_name; 402 | }); 403 | if (shared_style != null) { 404 | context.document.documentData().layerTextStyles().removeSharedObject(shared_style); 405 | } 406 | shared_style = MSSharedStyle.alloc(); 407 | 408 | if (shared_style.initWithName_firstInstance) { 409 | // < v52 410 | shared_style = shared_style.initWithName_firstInstance(style_name, style); 411 | } else { 412 | // >= v52 413 | shared_style = shared_style.initWithName_style(style_name, style); 414 | } 415 | context.document.documentData().layerTextStyles().addSharedObject(shared_style); // TODO can cache upto .layerTextStyles() 416 | 417 | // replace the text in the layer 418 | new_layer.replaceTextPreservingAttributeRanges(style_name); 419 | new_layer.setName(style_name); 420 | new_layer.setSharedStyle(shared_style); 421 | new_layer.setStyle(style); 422 | return new_layer; 423 | } 424 | 425 | function handle_sumbit(dialog, old_settings, context) { 426 | var response = dialog.dialog.runModal(); 427 | var Text = require('sketch/dom').Text; 428 | 429 | if (response == '1000') { 430 | console.log('Generate Type System'); 431 | 432 | console.log('Type Scale: ' + dialog.model.get('type_scale')); 433 | console.log('Line Height: ' + dialog.model.get('line_height')); 434 | console.log('Rounding: ' + dialog.model.get('rounding')); 435 | // console.log('Paragraph Spacing: '+ dialog.model.get('paragraph_spacing')); 436 | // console.log(dialog.model.getArray('chosen_breakpoints')); 437 | console.log(dialog.model.getArray('alignments')); 438 | var selected_layers = Array.from(context.document.selectedLayers().layers()); 439 | 440 | if (selected_layers.length === 0) { 441 | console.log('No text area selected'); 442 | return 443 | } 444 | var current_layer = selected_layers[0]; 445 | if (current_layer.class() != "MSTextLayer") { 446 | console.log('Wrong layer type selected'); 447 | return; 448 | } 449 | 450 | const settings = Settings.save(dialog, context, current_layer.textColor().immutableModelObject().hexValue()); 451 | rename_text_styles(old_settings, settings, context.document.documentData()); 452 | 453 | var current_layer_parent = current_layer.parentGroup(); 454 | var fs = current_layer.fontSize(), 455 | lh = parseFloat(current_layer.lineHeight()), 456 | ts = parseFloat(dialog.model.get('type_scale', DEFAULT_SETTINGS.type_scale, {is_number: true})), 457 | ls = parseFloat(dialog.model.get('line_height', DEFAULT_SETTINGS.line_height, {is_number: true})), 458 | bs = parseFloat(dialog.model.get('breakpoint_scale', DEFAULT_SETTINGS.breakpoint_scale, {is_number: true})), 459 | ps = parseFloat(dialog.model.get('paragraph_spacing', DEFAULT_SETTINGS.paragraph_spacing, {is_number: true})), 460 | chosen_alignments = dialog.model.getArray('alignments'), 461 | chosen_breakpoints = dialog.model.getArray('chosen_breakpoints'), 462 | breakpoint_labels = dialog.model.getArray('breakpoint_labels', DEFAULT_SETTINGS.breakpoint_labels), 463 | rounding = get_rounding(dialog.model.get('rounding')), 464 | naming_convention = dialog.model.get('naming_convention', DEFAULT_SETTINGS.naming_convention, {placeholder: Constants.NAMING_CONVENTION_PLACHOLDER_TEXT}), 465 | y = current_layer.frame().y() + 25, // + start 25 pixels below the selected text layer 466 | x = current_layer.frame().x(); 467 | 468 | var current_text_style = current_layer.style().textStyle(), 469 | current_attributes = current_text_style.attributes(); 470 | 471 | var new_layers = []; 472 | 473 | // TODO also delete the original selected text layer 474 | var breakpoint_group_spacing = 100; 475 | breakpoint_labels.forEach(function (breakpoint_label, breakpoint_label_i) { 476 | // when you move across a break point 477 | // start over at the selected layers font size 478 | var current_fs = fs; 479 | if (chosen_breakpoints[breakpoint_label_i] == "1") { 480 | HEADER_TAGS.forEach(function (header_tag) { 481 | y += (current_fs + lh); 482 | lh = ls * current_fs; 483 | ALIGNMENTS.forEach(function (alignment, alignment_i) { 484 | var name = `${breakpoint_label}/${header_tag}/COLOR/${alignment}`; 485 | if (chosen_alignments[alignment_i] == "1") { 486 | var new_y = y; 487 | var new_layer = create_text_and_style({ 488 | current_layer: current_layer, 489 | lh: rounding(lh), 490 | x: x, 491 | y: new_y, 492 | fs: rounding(current_fs), 493 | ps: rounding(ps * lh), 494 | style_name: name, 495 | replace_text_with: name, 496 | alignment_i: alignment_is[alignment_i], 497 | alignment: alignment.toLowerCase(), 498 | naming_convention: naming_convention == "" ? false : naming_convention 499 | }); 500 | 501 | 502 | new_layers.push(new_layer); 503 | } else { 504 | console.log(`${alignment} not selected`); 505 | } 506 | }); 507 | current_fs *= ts; 508 | }); 509 | y += breakpoint_group_spacing; 510 | fs *= bs; 511 | } else { 512 | console.log(`${breakpoint_label} not chosen`); 513 | } 514 | }); 515 | 516 | current_layer_parent.insertLayers_afterLayer(reverse_layers_and_fix_x(new_layers, chosen_alignments, ts, bs), current_layer); 517 | } 518 | else if (response == '1001') { 519 | console.log('Cancel'); 520 | } else { 521 | console.log('Unhandled response'); 522 | console.log(response); 523 | } 524 | } 525 | 526 | export default function (context) { 527 | const settings = Settings.load(context); 528 | const old_settings = Utils.deep_clone(settings); 529 | handle_sumbit(create_dialog(settings), old_settings, context); 530 | } -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "compatibleVersion": 3, 3 | "bundleVersion": 1, 4 | "icon": "icon.png", 5 | "commands": [ 6 | { 7 | "name": "Create Type System", 8 | "identifier": "create-type-system-id", 9 | "script": "./create-type-system.js" 10 | }, 11 | { 12 | "name": "Responsive Type", 13 | "identifier": "responsive-type-id", 14 | "script": "./responsive-type.js" 15 | }, 16 | { 17 | "name": "Do Not Resize", 18 | "identifier": "smart-symbols-no-resize-id", 19 | "script": "./smart-symbols-no-resize.js" 20 | }, 21 | { 22 | "name": "Fit To Original Symbol", 23 | "identifier": "smart-symbols-update-size-id", 24 | "script": "./smart-symbols-update-size.js" 25 | } 26 | ], 27 | "menu": { 28 | "title": "Stackswell", 29 | "items": [ 30 | "create-type-system-id", 31 | "-", 32 | "responsive-type-id", 33 | { 34 | "title": "Smart Symbols", 35 | "items": [ 36 | "smart-symbols-no-resize-id", 37 | "smart-symbols-update-size-id" 38 | ] 39 | } 40 | ] 41 | } 42 | } -------------------------------------------------------------------------------- /src/responsive-type.js: -------------------------------------------------------------------------------- 1 | import StacksWell from './stackswell.js' 2 | 3 | export default function (context) { 4 | var stacks_well = new StacksWell(context).init(); 5 | function act_on_layer(layer, break_point, stacks_well) { 6 | if (layer.class() == "MSTextLayer") { 7 | stacks_well.scale_text(layer, break_point); 8 | } else if(layer.class() == "MSLayerGroup") { 9 | Array.from(layer.layers()).forEach(layer => act_on_layer(layer, break_point, stacks_well)); 10 | } 11 | } 12 | 13 | 14 | stacks_well.artboards.slice().forEach(function(artboard){ 15 | var break_point = stacks_well.find_break_point_for_artboard(artboard); 16 | // console.log('Break point: ' , break_point); 17 | Array.from(artboard.layers()).forEach(layer => act_on_layer(layer, break_point, stacks_well)); 18 | }); 19 | } -------------------------------------------------------------------------------- /src/settings.js: -------------------------------------------------------------------------------- 1 | import Constants from "./constants"; 2 | 3 | export const DEFAULT_SETTINGS = { 4 | type_scale: "1.25", 5 | line_height: "1.333", 6 | paragraph_spacing: "0", 7 | alignments: ["1", "1", "1"], 8 | breakpoint_scale: "1.25", 9 | chosen_breakpoints: ["1", "1", "1", "1", "1"], 10 | breakpoint_labels: ["XS", "SM", "MD", "LG", ".XL"], 11 | naming_convention: "", 12 | rounding: "Normal" 13 | }; 14 | /* 15 | XS: 0-575 16 | SM: 576-766 17 | MD: 767 - 990 18 | LG: 991 - 1198 19 | XL: 1199+ 20 | */ 21 | export const DEFAULT_BREAKPOINTS = [575, 766, 990, 1198]; 22 | export const HEADER_TAGS = ["P", "H6", "H5", "H4", "H3", "H2", "H1"]; 23 | export const ALIGNMENTS = ["Left", "Center", "Right"]; 24 | export const LABEL_VARIANTS = [["XL", ".XL", "_XL"]]; 25 | 26 | export default class Settings { 27 | static KEY = "settings"; 28 | 29 | static load(context) { 30 | const documentData = context.document.documentData(); 31 | // get settings from current document 32 | let settings = this._getSettings(documentData); 33 | if (settings == null) { 34 | const libraryNamesById = new Map(); 35 | // get libraries of foreign text styles 36 | documentData.foreignTextStyles().forEach(foreignTextStyle => { 37 | libraryNamesById.set(String(foreignTextStyle.libraryID()), String(foreignTextStyle.sourceLibraryName())); 38 | }); 39 | // get libraries of foreign symbols 40 | documentData.foreignSymbols().forEach(foreignSymbol => { 41 | libraryNamesById.set(String(foreignSymbol.libraryID()), String(foreignSymbol.sourceLibraryName())); 42 | }); 43 | // look for settings in libraries, pick the first one it finds settings for 44 | for (let libraryData of libraryNamesById) { 45 | const [libraryId, libraryName] = libraryData; 46 | const library = this._getLibrary(libraryId, libraryName); 47 | if (library != null) { 48 | settings = this._getSettings(library.document()); 49 | if (settings != null) { 50 | console.log(`Got settings from library ${libraryName}`); 51 | break; 52 | } 53 | } 54 | } 55 | if (settings == null) { 56 | console.log("Couldn't getting settings document or library, using default settings"); 57 | settings = DEFAULT_SETTINGS; 58 | } 59 | } else { 60 | console.log('Got settings from document'); 61 | } 62 | console.log(settings); 63 | return settings; 64 | } 65 | 66 | static save(dialog, context, text_color) { 67 | const settings = { 68 | type_scale: dialog.model.get('type_scale', DEFAULT_SETTINGS.type_scale, {is_number: true}), 69 | line_height: dialog.model.get('line_height', DEFAULT_SETTINGS.line_height, {is_number: true}), 70 | paragraph_spacing: dialog.model.get('paragraph_spacing', DEFAULT_SETTINGS.paragraph_spacing, {is_number: true}), 71 | alignments: dialog.model.getArray('alignments'), 72 | breakpoint_scale: dialog.model.get('breakpoint_scale', DEFAULT_SETTINGS.breakpoint_scale, {is_number: true}), 73 | chosen_breakpoints: dialog.model.getArray('chosen_breakpoints'), 74 | breakpoint_labels: dialog.model.getArray('breakpoint_labels', DEFAULT_SETTINGS.breakpoint_labels), 75 | naming_convention: dialog.model.get('naming_convention', DEFAULT_SETTINGS.naming_convention, {placeholder: Constants.NAMING_CONVENTION_PLACHOLDER_TEXT}), 76 | rounding: dialog.model.get('rounding'), 77 | text_color: String(text_color) 78 | }; 79 | //console.log(`save() ${JSON.stringify(settings)}`, settings); 80 | const settingsStr = JSON.stringify(settings); 81 | context.command.setValue_forKey_onDocument(settingsStr, Settings.KEY, context.document.documentData()); 82 | return JSON.parse(settingsStr); 83 | } 84 | 85 | static _getLibrary(libraryId, libraryName) { 86 | let closeMatch, exactMatch; 87 | AppController.sharedInstance().librariesController().userLibraries().some(library => { 88 | if (library.enabled() && library.libraryID() == libraryId) { 89 | closeMatch = library; 90 | if (library.name() == libraryName) { 91 | exactMatch = library; 92 | return true; 93 | } 94 | } 95 | }); 96 | return exactMatch ? exactMatch : closeMatch; 97 | } 98 | 99 | static _getSettings(documentData) { 100 | return JSON.parse(context.command.valueForKey_onDocument(Settings.KEY, documentData)); 101 | } 102 | 103 | } 104 | 105 | -------------------------------------------------------------------------------- /src/smart-symbols-no-resize.js: -------------------------------------------------------------------------------- 1 | import StacksWell from './stackswell.js' 2 | 3 | export default function (context) { 4 | 5 | var stacks_well = new StacksWell(context).init(); 6 | 7 | function smart_symbol(old_symbol, break_point, stacks_well) { 8 | var old_symbol_master = old_symbol.symbolMaster(); 9 | // console.log('Found symbol: '+old_symbol_master); 10 | 11 | var replacement = stacks_well.get_master_symbol_for_breakpoint(break_point, old_symbol_master); 12 | 13 | if (replacement) { 14 | // console.log('Replace with:'+replacement); 15 | old_symbol.changeInstanceToSymbol(replacement); 16 | } else { 17 | // console.log('No replacement found'); 18 | } 19 | } 20 | 21 | function act_on_layer(layer, break_point, stacks_well) { 22 | if (layer.class() == "MSSymbolInstance") { 23 | smart_symbol(layer, break_point, stacks_well); 24 | } else if (layer.class() == "MSLayerGroup") { 25 | Array.from(layer.layers()).forEach(layer => act_on_layer(layer, break_point, stacks_well)); 26 | } 27 | } 28 | 29 | var selected_layers = stacks_well.selected_layers; 30 | stacks_well.artboards.slice().forEach(function(artboard){ 31 | var break_point = stacks_well.find_break_point_for_artboard(artboard); 32 | // console.log('Break point: ' , break_point); 33 | var artboard_layers = Array.from(artboard.layers()); 34 | if (selected_layers.length > 0) { 35 | selected_layers.forEach(function (layer) { 36 | // only act on the layer if it is selected AND its in the artboard we're in right now 37 | // this sucks...n^2 loop 38 | if (stacks_well.in_artboard(artboard_layers, layer)) { 39 | // console.log('Layer '+layer+' is selected'); 40 | act_on_layer(layer, break_point, stacks_well); 41 | } 42 | }); 43 | } else { 44 | artboard_layers.forEach(layer => act_on_layer(layer, break_point, stacks_well)); 45 | } 46 | }); 47 | } -------------------------------------------------------------------------------- /src/smart-symbols-update-size.js: -------------------------------------------------------------------------------- 1 | import StacksWell from './stackswell.js' 2 | 3 | export default function (context) { 4 | 5 | var stacks_well = new StacksWell(context).init(); 6 | 7 | function smart_symbol(old_symbol, break_point, stacks_well) { 8 | var old_symbol_master = old_symbol.symbolMaster(); 9 | // console.log('Found symbol: '+old_symbol_master); 10 | 11 | var replacement = stacks_well.get_master_symbol_for_breakpoint(break_point, old_symbol_master); 12 | // console.log(replacement); 13 | if (replacement && replacement.symbolID() != old_symbol_master.symbolID()) { 14 | var replacement_frame = replacement.frame(); 15 | // console.log('Replace with:'+replacement); 16 | old_symbol.changeInstanceToSymbol(replacement); 17 | // after changing the old_symbol to the requested master 18 | // adjust its height & width to match 19 | // console.log('Old Symbol Frame' + old_symbol.frame()); 20 | old_symbol.frame().setHeight(replacement_frame.height()); 21 | old_symbol.frame().setWidth(replacement_frame.width()); 22 | // console.log('New Symbol Frame' + old_symbol.frame()); 23 | } 24 | // else { 25 | // console.log('No replacement found'); 26 | // } 27 | } 28 | 29 | function act_on_layer(layer, break_point, stacks_well) { 30 | if (layer.class() == "MSSymbolInstance") { 31 | smart_symbol(layer, break_point, stacks_well); 32 | } else if (layer.class() == "MSLayerGroup") { 33 | Array.from(layer.layers()).forEach(layer => act_on_layer(layer, break_point, stacks_well)); 34 | apply_group_frame_bugfix(layer, stacks_well); 35 | } else { 36 | // console.log('unknown class ' + layer.class()) 37 | } 38 | } 39 | 40 | // this functino fixes a bug where: 41 | // changing a group's frame size 42 | // inadvertantly changes the frame size of the symbols inside the group 43 | function apply_group_frame_bugfix(group, stacks_well) { 44 | var max_x = 0, 45 | max_y = 0, 46 | // keep track of the old symbol frame sizes, 47 | // to apply to the (wrongly/likely bec of a bug) altered symbol 48 | old_frames = {}; 49 | 50 | Array.from(group.layers()) 51 | .forEach(function (symbol) { 52 | var old_frame = symbol.frame(), 53 | x = old_frame.x(), 54 | y = old_frame.y(), 55 | w = old_frame.width(), 56 | h = old_frame.height(); 57 | 58 | old_frames[symbol] = [w,h,x,y]; 59 | 60 | var frame = symbol.frame(), 61 | new_x = frame.x() + frame.width(), 62 | new_y = frame.y() + frame.height(); 63 | 64 | if (new_x > max_x) { 65 | max_x = new_x; 66 | } 67 | 68 | if (new_y > max_y) { 69 | max_y = new_y; 70 | } 71 | }); 72 | 73 | group.frame().setWidth(max_x); 74 | group.frame().setHeight(max_y); 75 | 76 | Array.from(group.layers()) 77 | .forEach(function (item) { 78 | item.frame().setWidth(old_frames[item][0]); 79 | item.frame().setHeight(old_frames[item][1]); 80 | item.frame().setX(old_frames[item][2]); 81 | item.frame().setY(old_frames[item][3]); 82 | }); 83 | 84 | } 85 | 86 | var selected_layers = stacks_well.selected_layers; 87 | 88 | const boards = stacks_well.artboards; 89 | 90 | boards.slice().forEach(function(artboard){ 91 | var break_point = stacks_well.find_break_point_for_artboard(artboard); 92 | // console.log('Break point: ' , break_point); 93 | 94 | var artboard_layers = Array.from(artboard.layers()); 95 | 96 | if (selected_layers.length > 0) { 97 | selected_layers.forEach(function (layer) { 98 | // only act on the layer if it is selected AND its in the artboard we're in right now 99 | // this sucks...n^2 loop 100 | if (stacks_well.in_artboard(artboard_layers, layer)) { 101 | // console.log('Layer '+layer+' is selected'); 102 | act_on_layer(layer, break_point, stacks_well); 103 | } 104 | }); 105 | } else { 106 | artboard_layers.forEach(layer => act_on_layer(layer, break_point, stacks_well)); 107 | } 108 | }); 109 | 110 | } -------------------------------------------------------------------------------- /src/spacer.js: -------------------------------------------------------------------------------- 1 | export default class Spacer { 2 | 3 | constructor(window_height, line_height) { 4 | this.wh = window_height, 5 | this.lh = line_height; 6 | } 7 | 8 | nextLine(line_height = undefined) { 9 | // returns the y coordinate for the next line 10 | if (line_height !== undefined) { 11 | this.wh -= line_height; 12 | } else { 13 | this.wh -= this.lh; 14 | } 15 | return this.wh; 16 | } 17 | } -------------------------------------------------------------------------------- /src/stackswell.js: -------------------------------------------------------------------------------- 1 | import Settings from "./settings"; 2 | import { DEFAULT_BREAKPOINTS, LABEL_VARIANTS } from "./settings"; 3 | 4 | class StacksWell 5 | { 6 | constructor(context) { 7 | this.context = context; 8 | this.document = context.document; 9 | this.style_map = {}; 10 | this.librariesController = AppController.sharedInstance().librariesController(); 11 | this.libraries_map = {}; 12 | this.foreign_text_styles_map = {}; 13 | } 14 | 15 | get selected_layers() { 16 | return Array.from(this.context.document.selectedLayers().layers()) 17 | } 18 | 19 | // local and referenced foreign shared text styles 20 | get avail_txt_styles() { 21 | var self = this; 22 | return Array.from(this.context 23 | .document 24 | .documentData() 25 | .allTextStyles() 26 | ).filter(style => self.is_compatible_style(style)); 27 | } 28 | 29 | get avail_symbols() { 30 | var self = this; 31 | return Array.from(this.context 32 | .document 33 | .documentData() 34 | .localSymbols() 35 | ).filter(symbol => self.is_compatible_symbol(symbol)) 36 | } 37 | 38 | get artboards() { 39 | return Array.from(this.context 40 | .document 41 | .currentPage() 42 | .children()) 43 | .filter(item => item.class() == "MSArtboardGroup") 44 | } 45 | 46 | init() { 47 | const settings = Settings.load(this.context); 48 | this.labels = []; 49 | this.break_points = []; 50 | settings.breakpoint_labels.forEach((label, i) => { 51 | if (!LABEL_VARIANTS.some(label_variant => { 52 | if (label_variant.includes(label)) { 53 | this.labels.push(label_variant); 54 | return true; 55 | } 56 | })) { 57 | this.labels.push([label]); 58 | } 59 | if (i < settings.breakpoint_labels.length - 1) { 60 | if (isNaN(label)) { 61 | this.break_points[i] = [DEFAULT_BREAKPOINTS[i]]; 62 | } else { 63 | this.break_points[i] = [parseInt(label)]; 64 | } 65 | } 66 | }); 67 | console.log(`labels: ${JSON.stringify(this.labels)}, breakpoints: ${this.break_points}`); 68 | 69 | // local and referenced foreign shared text styles 70 | this.avail_txt_styles.forEach(sharedStyle => { 71 | this.style_map[sharedStyle.name()] = sharedStyle; 72 | this.style_map[sharedStyle.objectID()] = sharedStyle; 73 | }); 74 | 75 | // foreign shared text styles 76 | //console.log('Foreign text styles'); 77 | this.librariesController.userLibraries().forEach(library => { 78 | this.libraries_map[library.libraryID()] = {}; 79 | if (!library.document() 80 | || !library.document().layerTextStyles() 81 | || !library.document().layerTextStyles().sharedStyles()) { 82 | return; 83 | } 84 | library.document().layerTextStyles().sharedStyles().forEach(shared_text_style => { 85 | if (!this.is_compatible_style(shared_text_style)) { 86 | return; 87 | } 88 | const data = {shared_text_style, library}; 89 | this.foreign_text_styles_map[shared_text_style.objectID()] = data; 90 | this.foreign_text_styles_map[shared_text_style.name()] = data; 91 | //console.log(` ${sharedTextStyle.name()}`); 92 | }); 93 | }); 94 | 95 | print('completed initialization') 96 | return this; 97 | } 98 | 99 | get_shared_text_style_from_library(name) { 100 | const shared_text_style_data = this.foreign_text_styles_map[name]; 101 | if (shared_text_style_data != null) { 102 | const foreign_text_style = MSForeignTextStyle.alloc().initWithOriginalObject_inLibrary(shared_text_style_data.shared_text_style, shared_text_style_data.library); 103 | this.document.documentData().addForeignTextStyle(foreign_text_style); 104 | const shared_text_style = foreign_text_style.localObject(); 105 | this.style_map[shared_text_style.name()] = shared_text_style; 106 | this.style_map[shared_text_style.objectID()] = shared_text_style; 107 | return shared_text_style; 108 | } 109 | return null; 110 | } 111 | 112 | get_next_smaller_label(label) { 113 | for (var i = this.labels.length - 1; i >=0; i--) { 114 | for (var j = 0; j < this.labels[i].length; j++) { 115 | if (label == this.labels[i][j]) { 116 | i-=1; 117 | if (i < 0) { 118 | return null; 119 | } else { 120 | return this.labels[i]; 121 | } 122 | } 123 | } 124 | } 125 | } 126 | 127 | get_style_from_label_and_style(label, style, text) { 128 | // if we found one, chop off the first part of the name 129 | // ex. md/H1/Black/Left -> H1,Black,Left 130 | if (style) { 131 | var pieces = style.name().split('/'); 132 | pieces.shift(); 133 | } 134 | 135 | // since we might provide an array of labels 136 | // ex. label = ['XL', '.XL', '_XL'] 137 | // try each break point 138 | for (var i =0; i < label.length; i ++) { 139 | // reconstruct the style name 140 | // ex. label = ['XL', '.XL', '_XL'], pieces = ['H1','Black','Left'] 141 | // bp = 'XL/H1/Black/Left Style' 142 | var bp = [label[i]].concat(pieces).join('/'); 143 | //console.log(`${text.parentArtboard().name()}.${text.name()}: ${style.name()}`); 144 | // if we have a style that maps to this reconstructed name 145 | // give it back, otherwise try the next available break point in labels 146 | if (bp in this.style_map) { 147 | return this.style_map[bp]; 148 | } else { 149 | const shared_text_style = this.get_shared_text_style_from_library(bp); 150 | if (shared_text_style != null) { 151 | return shared_text_style; 152 | } 153 | } 154 | } 155 | // console.log('No style found for break point & style '+ label + ' ' + style); 156 | var next_smaller = this.get_next_smaller_label(label); 157 | if (next_smaller) { 158 | // console.log('Trying a smaller style to use: '+ next_smaller); 159 | return this.get_style_from_label_and_style(next_smaller, style, text); 160 | } 161 | } 162 | 163 | getStyleFromName(name) { 164 | return this.style_map[name]; 165 | } 166 | 167 | get_master_symbol_for_breakpoint(break_point, old_symbol) { 168 | // check if the symbol is part of a library, 169 | // and if it is, use the library symbols as choices for replacement 170 | var library = this.librariesController.libraryForShareableObject(old_symbol); 171 | // console.log('Has library? '+library); 172 | var avail_symbols = library && library.enabled() ? library.document().localSymbols() : this.avail_symbols; 173 | 174 | for (var j = 0; j < break_point.length; j++) { 175 | for (var i = 0; i < avail_symbols.length; i++) { 176 | var symbol = avail_symbols[i], 177 | label = break_point[j]; 178 | 179 | // chop off the end of the symbol (the size part) 180 | var pieces = old_symbol.name().split('/'); 181 | pieces.pop(); 182 | var old_symbol_name = pieces.join('/'); 183 | // if the symbol that you are on 184 | // has the "label" (the break point size) 185 | // entirely, and only, in between two slashes (ignore case) 186 | // AND 187 | // if the symbol that you are on 188 | // has the rest of the "old_symbol" (the target of this function) 189 | if (symbol.name().toUpperCase().split('/').indexOf(label.toUpperCase()) !== -1 190 | && symbol.name().toUpperCase().includes(old_symbol_name.toUpperCase()) 191 | ) { 192 | if (!library) { 193 | return symbol; 194 | } 195 | 196 | 197 | return this.librariesController.importShareableObjectReference_intoDocument( 198 | MSShareableObjectReference.referenceForShareableObject_inLibrary(symbol,library), 199 | MSDocument.currentDocument().documentData() 200 | ).symbolMaster(); 201 | } 202 | } 203 | } 204 | 205 | // console.log('No symbol found for break point ' + break_point); 206 | var next_smaller = this.get_next_smaller_label(break_point); 207 | if (next_smaller) { 208 | // console.log('Trying to find symbol for the next smaller size: '+next_smaller); 209 | return this.get_master_symbol_for_breakpoint(next_smaller, old_symbol); 210 | } 211 | } 212 | 213 | scale_text(text, label) { 214 | var current_style = text.sharedStyle(); 215 | if (current_style) { 216 | console.log(` Current style is: ${current_style.name()}`); 217 | 218 | var style_to_apply = this.get_style_from_label_and_style(label, current_style, text); 219 | if (style_to_apply) { 220 | console.log(` Going to apply: ${style_to_apply.name()}`); 221 | text.setSharedStyle(style_to_apply); 222 | } 223 | } else { 224 | console.log(` text layer ${text.name()} has no text style`); 225 | } 226 | } 227 | 228 | is_compatible_style(style) { 229 | var style_name = style.name(); 230 | for (var i = 0; i < this.labels.length; i++) { 231 | for (var j = 0; j < this.labels[i].length; j++) { 232 | if (style_name.toUpperCase().startsWith(this.labels[i][j].toUpperCase())) { 233 | return true; 234 | } 235 | } 236 | } 237 | return false; 238 | } 239 | is_compatible_symbol(symbol) { 240 | var symbol_name = symbol.name(); 241 | for (var i = 0; i < this.labels.length; i++) { 242 | for (var j = 0; j < this.labels[i].length; j++) { 243 | if (symbol_name.toUpperCase().split('/').indexOf(this.labels[i][j].toUpperCase()) !== -1) { 244 | return true; 245 | } 246 | } 247 | } 248 | return false; 249 | } 250 | find_break_point_for_artboard(artboard) { 251 | var width = artboard.frame().width(); 252 | console.log('artboard width '+width); 253 | var found = 0; 254 | for (; found < this.break_points.length; found++) { 255 | if (width <= this.break_points[found]) { 256 | return this.labels[found]; 257 | } 258 | } 259 | 260 | return this.labels[found]; 261 | } 262 | 263 | in_artboard(artboard_layers, layer) { 264 | if (artboard_layers.indexOf(layer) !== -1) { 265 | return true; 266 | } 267 | 268 | var artboard_groups = artboard_layers.filter(symbol => symbol.class() == 'MSLayerGroup'); 269 | 270 | for (var i = 0; i < artboard_groups.length; i++) { 271 | var group = artboard_groups[i]; 272 | if (Array.from(group.layers()).indexOf(layer) !== -1) { 273 | return true; 274 | } 275 | } 276 | return false; 277 | } 278 | } 279 | 280 | export {StacksWell as default} -------------------------------------------------------------------------------- /src/ui.js: -------------------------------------------------------------------------------- 1 | export default class UI { 2 | 3 | static createTextField(view, settings) { 4 | var textField = NSTextField.alloc().initWithFrame(NSMakeRect( 5 | settings.x, 6 | settings.y, 7 | settings.width, 8 | settings.height 9 | )); 10 | 11 | let value; 12 | if (settings.isNumber) { 13 | const numberFormatter = NSNumberFormatter.new(); 14 | numberFormatter.numberStyle = NSNumberFormatterDecimalStyle; 15 | value = numberFormatter.stringFromNumber(NSNumber.numberWithDouble(NSString.alloc().initWithString(settings.initValue).doubleValue())); 16 | } else { 17 | value = settings.initValue; 18 | } 19 | textField.setStringValue(value); 20 | 21 | view.addSubview(textField); 22 | 23 | return textField; 24 | } 25 | 26 | static createLabel(view, settings) { 27 | var fontSize = settings.fontSize === undefined ? 11 : settings.fontSize; 28 | 29 | var label = NSTextField.alloc().initWithFrame(NSMakeRect( 30 | settings.x, 31 | settings.y, 32 | settings.width, 33 | settings.height 34 | )); 35 | label.setEditable_(false); 36 | label.setSelectable_(false); 37 | label.setBezeled_(false); 38 | label.setDrawsBackground_(false); 39 | // label.setFont(NSFont.systemFontOfSize_(fontSize)); 40 | label.setStringValue(settings.message); 41 | view.addSubview(label); 42 | 43 | return label; 44 | } 45 | 46 | static createDropdown(view, settings) { 47 | // Creating the input 48 | var popup = NSPopUpButton.alloc(); 49 | 50 | var dropdown = popup.initWithFrame(NSMakeRect( 51 | settings.x, 52 | settings.y, 53 | settings.width, 54 | settings.height 55 | )); 56 | 57 | let selectedIndex = 0; 58 | settings.options.forEach((option, index) => { 59 | dropdown.addItemWithTitle(option); 60 | if (settings.selected_option == option) { 61 | selectedIndex = index; 62 | } 63 | }); 64 | dropdown.selectItemAtIndex(selectedIndex); 65 | 66 | // Adding the PopUpButton to the dialog 67 | view.addSubview(dropdown); 68 | 69 | return dropdown; 70 | } 71 | 72 | static createCheckBox(view, settings) { 73 | // Creating the input 74 | var checkbox = NSButton.alloc().initWithFrame(NSMakeRect( 75 | settings.x, 76 | settings.y, 77 | settings.width, 78 | settings.height 79 | )); 80 | 81 | // Setting the options for the checkbox 82 | checkbox.setButtonType(NSSwitchButton); 83 | checkbox.setBezelStyle(0); 84 | if (settings.message !== undefined) { 85 | checkbox.setTitle(settings.message); 86 | } 87 | checkbox.setState(settings.enabled ? NSOnState : NSOffState); 88 | 89 | view.addSubview(checkbox); 90 | 91 | return checkbox; 92 | } 93 | 94 | static build_dialog(title, primaryButtonTitle, secondaryButtonTitle = undefined) { 95 | const dialog = COSAlertWindow.new(); 96 | 97 | dialog.setIcon(NSImage.alloc().initByReferencingFile(context.plugin.urlForResourceNamed("icon2x.png").path())); 98 | dialog.setMessageText(title); 99 | 100 | dialog.addButtonWithTitle(primaryButtonTitle); 101 | if (secondaryButtonTitle !== undefined) { 102 | dialog.addButtonWithTitle("Cancel"); 103 | } 104 | return dialog; 105 | } 106 | 107 | static build_accessory_view(width, height, dialog) { 108 | const view = NSView.alloc().initWithFrame(NSMakeRect(0, 0, width, height)); 109 | dialog.addAccessoryView(view); 110 | return view; 111 | } 112 | 113 | } -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | export default class Utils { 2 | 3 | static deep_clone(object) { 4 | return JSON.parse(JSON.stringify(object)); 5 | } 6 | 7 | } -------------------------------------------------------------------------------- /src/view-model.js: -------------------------------------------------------------------------------- 1 | export default class ViewModel { 2 | 3 | constructor() { 4 | this.properties = {}; 5 | } 6 | 7 | addProp(name, value) { 8 | this.properties[name] = value; 9 | } 10 | 11 | addPropArray(name, value) { 12 | if (!(name in this.properties)) { 13 | this.properties[name] = []; 14 | } 15 | this.properties[name].push(value); 16 | } 17 | 18 | get(value, defaultValue = undefined, options = undefined) { 19 | options = options || {}; 20 | var prop = this.properties[value] || value; 21 | var prop_type = prop.class(); 22 | if (prop_type == 'NSPopUpButton') { 23 | return String(prop.titleOfSelectedItem()); 24 | } else if (prop_type == 'NSTextField' || prop_type == 'NSButton') { 25 | let val = String(prop.stringValue()); 26 | if (options.is_number) { 27 | if (isNaN(val)) { 28 | return defaultValue; 29 | } 30 | const numberFormatter = NSNumberFormatter.new(); 31 | numberFormatter.numberStyle = NSNumberFormatterDecimalStyle; 32 | const number = numberFormatter.numberFromString(val); 33 | return String(number.stringValue()); 34 | } 35 | if (val.trim().length == 0) { 36 | return defaultValue; 37 | } 38 | if (options.placeholder && val == options.placeholder) { 39 | return ""; 40 | } 41 | return val; 42 | } else { 43 | console.log('unknown prop type ' + prop_type); 44 | } 45 | } 46 | 47 | getArray(value, defaultValues = undefined) { 48 | var props = this.properties[value], 49 | out = [], 50 | self = this; 51 | 52 | props.forEach((prop, index) => out.push(self.get(prop, defaultValues !== undefined ? defaultValues[index] : undefined))); 53 | 54 | return out; 55 | } 56 | } -------------------------------------------------------------------------------- /webpack.skpm.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | if (process.env.NODE_ENV === 'production') { 3 | config.plugins.some(section => { 4 | if (section.options !== undefined && section.options.uglifyOptions !== undefined) { 5 | const uglifyOptions = section.options.uglifyOptions; 6 | uglifyOptions.compress = { 7 | drop_console: true 8 | }; 9 | uglifyOptions.output = { 10 | comments: false 11 | }; 12 | return true; 13 | } 14 | }); 15 | } 16 | }; -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | dependencies: 9 | "@babel/highlight" "^7.0.0" 10 | 11 | "@babel/core@^7.0.1": 12 | version "7.1.2" 13 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" 14 | dependencies: 15 | "@babel/code-frame" "^7.0.0" 16 | "@babel/generator" "^7.1.2" 17 | "@babel/helpers" "^7.1.2" 18 | "@babel/parser" "^7.1.2" 19 | "@babel/template" "^7.1.2" 20 | "@babel/traverse" "^7.1.0" 21 | "@babel/types" "^7.1.2" 22 | convert-source-map "^1.1.0" 23 | debug "^3.1.0" 24 | json5 "^0.5.0" 25 | lodash "^4.17.10" 26 | resolve "^1.3.2" 27 | semver "^5.4.1" 28 | source-map "^0.5.0" 29 | 30 | "@babel/generator@^7.1.2", "@babel/generator@^7.1.3": 31 | version "7.1.3" 32 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" 33 | dependencies: 34 | "@babel/types" "^7.1.3" 35 | jsesc "^2.5.1" 36 | lodash "^4.17.10" 37 | source-map "^0.5.0" 38 | trim-right "^1.0.1" 39 | 40 | "@babel/helper-annotate-as-pure@^7.0.0": 41 | version "7.0.0" 42 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" 43 | dependencies: 44 | "@babel/types" "^7.0.0" 45 | 46 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": 47 | version "7.1.0" 48 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" 49 | dependencies: 50 | "@babel/helper-explode-assignable-expression" "^7.1.0" 51 | "@babel/types" "^7.0.0" 52 | 53 | "@babel/helper-builder-react-jsx@^7.0.0": 54 | version "7.0.0" 55 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" 56 | dependencies: 57 | "@babel/types" "^7.0.0" 58 | esutils "^2.0.0" 59 | 60 | "@babel/helper-call-delegate@^7.1.0": 61 | version "7.1.0" 62 | resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" 63 | dependencies: 64 | "@babel/helper-hoist-variables" "^7.0.0" 65 | "@babel/traverse" "^7.1.0" 66 | "@babel/types" "^7.0.0" 67 | 68 | "@babel/helper-define-map@^7.1.0": 69 | version "7.1.0" 70 | resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" 71 | dependencies: 72 | "@babel/helper-function-name" "^7.1.0" 73 | "@babel/types" "^7.0.0" 74 | lodash "^4.17.10" 75 | 76 | "@babel/helper-explode-assignable-expression@^7.1.0": 77 | version "7.1.0" 78 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" 79 | dependencies: 80 | "@babel/traverse" "^7.1.0" 81 | "@babel/types" "^7.0.0" 82 | 83 | "@babel/helper-function-name@^7.1.0": 84 | version "7.1.0" 85 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" 86 | dependencies: 87 | "@babel/helper-get-function-arity" "^7.0.0" 88 | "@babel/template" "^7.1.0" 89 | "@babel/types" "^7.0.0" 90 | 91 | "@babel/helper-get-function-arity@^7.0.0": 92 | version "7.0.0" 93 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" 94 | dependencies: 95 | "@babel/types" "^7.0.0" 96 | 97 | "@babel/helper-hoist-variables@^7.0.0": 98 | version "7.0.0" 99 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" 100 | dependencies: 101 | "@babel/types" "^7.0.0" 102 | 103 | "@babel/helper-member-expression-to-functions@^7.0.0": 104 | version "7.0.0" 105 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" 106 | dependencies: 107 | "@babel/types" "^7.0.0" 108 | 109 | "@babel/helper-module-imports@^7.0.0": 110 | version "7.0.0" 111 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" 112 | dependencies: 113 | "@babel/types" "^7.0.0" 114 | 115 | "@babel/helper-module-transforms@^7.1.0": 116 | version "7.1.0" 117 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" 118 | dependencies: 119 | "@babel/helper-module-imports" "^7.0.0" 120 | "@babel/helper-simple-access" "^7.1.0" 121 | "@babel/helper-split-export-declaration" "^7.0.0" 122 | "@babel/template" "^7.1.0" 123 | "@babel/types" "^7.0.0" 124 | lodash "^4.17.10" 125 | 126 | "@babel/helper-optimise-call-expression@^7.0.0": 127 | version "7.0.0" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" 129 | dependencies: 130 | "@babel/types" "^7.0.0" 131 | 132 | "@babel/helper-plugin-utils@^7.0.0": 133 | version "7.0.0" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" 135 | 136 | "@babel/helper-regex@^7.0.0": 137 | version "7.0.0" 138 | resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" 139 | dependencies: 140 | lodash "^4.17.10" 141 | 142 | "@babel/helper-remap-async-to-generator@^7.1.0": 143 | version "7.1.0" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" 145 | dependencies: 146 | "@babel/helper-annotate-as-pure" "^7.0.0" 147 | "@babel/helper-wrap-function" "^7.1.0" 148 | "@babel/template" "^7.1.0" 149 | "@babel/traverse" "^7.1.0" 150 | "@babel/types" "^7.0.0" 151 | 152 | "@babel/helper-replace-supers@^7.1.0": 153 | version "7.1.0" 154 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" 155 | dependencies: 156 | "@babel/helper-member-expression-to-functions" "^7.0.0" 157 | "@babel/helper-optimise-call-expression" "^7.0.0" 158 | "@babel/traverse" "^7.1.0" 159 | "@babel/types" "^7.0.0" 160 | 161 | "@babel/helper-simple-access@^7.1.0": 162 | version "7.1.0" 163 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" 164 | dependencies: 165 | "@babel/template" "^7.1.0" 166 | "@babel/types" "^7.0.0" 167 | 168 | "@babel/helper-split-export-declaration@^7.0.0": 169 | version "7.0.0" 170 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" 171 | dependencies: 172 | "@babel/types" "^7.0.0" 173 | 174 | "@babel/helper-wrap-function@^7.1.0": 175 | version "7.1.0" 176 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" 177 | dependencies: 178 | "@babel/helper-function-name" "^7.1.0" 179 | "@babel/template" "^7.1.0" 180 | "@babel/traverse" "^7.1.0" 181 | "@babel/types" "^7.0.0" 182 | 183 | "@babel/helpers@^7.1.2": 184 | version "7.1.2" 185 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" 186 | dependencies: 187 | "@babel/template" "^7.1.2" 188 | "@babel/traverse" "^7.1.0" 189 | "@babel/types" "^7.1.2" 190 | 191 | "@babel/highlight@^7.0.0": 192 | version "7.0.0" 193 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 194 | dependencies: 195 | chalk "^2.0.0" 196 | esutils "^2.0.2" 197 | js-tokens "^4.0.0" 198 | 199 | "@babel/parser@^7.1.2", "@babel/parser@^7.1.3": 200 | version "7.1.3" 201 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" 202 | 203 | "@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.1.0": 204 | version "7.1.0" 205 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" 206 | dependencies: 207 | "@babel/helper-plugin-utils" "^7.0.0" 208 | "@babel/helper-remap-async-to-generator" "^7.1.0" 209 | "@babel/plugin-syntax-async-generators" "^7.0.0" 210 | 211 | "@babel/plugin-proposal-json-strings@^7.0.0": 212 | version "7.0.0" 213 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" 214 | dependencies: 215 | "@babel/helper-plugin-utils" "^7.0.0" 216 | "@babel/plugin-syntax-json-strings" "^7.0.0" 217 | 218 | "@babel/plugin-proposal-object-rest-spread@^7.0.0": 219 | version "7.0.0" 220 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" 221 | dependencies: 222 | "@babel/helper-plugin-utils" "^7.0.0" 223 | "@babel/plugin-syntax-object-rest-spread" "^7.0.0" 224 | 225 | "@babel/plugin-proposal-optional-catch-binding@^7.0.0": 226 | version "7.0.0" 227 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" 228 | dependencies: 229 | "@babel/helper-plugin-utils" "^7.0.0" 230 | "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" 231 | 232 | "@babel/plugin-proposal-unicode-property-regex@^7.0.0": 233 | version "7.0.0" 234 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" 235 | dependencies: 236 | "@babel/helper-plugin-utils" "^7.0.0" 237 | "@babel/helper-regex" "^7.0.0" 238 | regexpu-core "^4.2.0" 239 | 240 | "@babel/plugin-syntax-async-generators@^7.0.0": 241 | version "7.0.0" 242 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" 243 | dependencies: 244 | "@babel/helper-plugin-utils" "^7.0.0" 245 | 246 | "@babel/plugin-syntax-json-strings@^7.0.0": 247 | version "7.0.0" 248 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" 249 | dependencies: 250 | "@babel/helper-plugin-utils" "^7.0.0" 251 | 252 | "@babel/plugin-syntax-jsx@^7.0.0": 253 | version "7.0.0" 254 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd" 255 | dependencies: 256 | "@babel/helper-plugin-utils" "^7.0.0" 257 | 258 | "@babel/plugin-syntax-object-rest-spread@^7.0.0": 259 | version "7.0.0" 260 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" 261 | dependencies: 262 | "@babel/helper-plugin-utils" "^7.0.0" 263 | 264 | "@babel/plugin-syntax-optional-catch-binding@^7.0.0": 265 | version "7.0.0" 266 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" 267 | dependencies: 268 | "@babel/helper-plugin-utils" "^7.0.0" 269 | 270 | "@babel/plugin-transform-arrow-functions@^7.0.0": 271 | version "7.0.0" 272 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" 273 | dependencies: 274 | "@babel/helper-plugin-utils" "^7.0.0" 275 | 276 | "@babel/plugin-transform-async-to-generator@^7.1.0": 277 | version "7.1.0" 278 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" 279 | dependencies: 280 | "@babel/helper-module-imports" "^7.0.0" 281 | "@babel/helper-plugin-utils" "^7.0.0" 282 | "@babel/helper-remap-async-to-generator" "^7.1.0" 283 | 284 | "@babel/plugin-transform-block-scoped-functions@^7.0.0": 285 | version "7.0.0" 286 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" 287 | dependencies: 288 | "@babel/helper-plugin-utils" "^7.0.0" 289 | 290 | "@babel/plugin-transform-block-scoping@^7.0.0": 291 | version "7.0.0" 292 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" 293 | dependencies: 294 | "@babel/helper-plugin-utils" "^7.0.0" 295 | lodash "^4.17.10" 296 | 297 | "@babel/plugin-transform-classes@^7.1.0": 298 | version "7.1.0" 299 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" 300 | dependencies: 301 | "@babel/helper-annotate-as-pure" "^7.0.0" 302 | "@babel/helper-define-map" "^7.1.0" 303 | "@babel/helper-function-name" "^7.1.0" 304 | "@babel/helper-optimise-call-expression" "^7.0.0" 305 | "@babel/helper-plugin-utils" "^7.0.0" 306 | "@babel/helper-replace-supers" "^7.1.0" 307 | "@babel/helper-split-export-declaration" "^7.0.0" 308 | globals "^11.1.0" 309 | 310 | "@babel/plugin-transform-computed-properties@^7.0.0": 311 | version "7.0.0" 312 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" 313 | dependencies: 314 | "@babel/helper-plugin-utils" "^7.0.0" 315 | 316 | "@babel/plugin-transform-destructuring@^7.0.0": 317 | version "7.1.3" 318 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" 319 | dependencies: 320 | "@babel/helper-plugin-utils" "^7.0.0" 321 | 322 | "@babel/plugin-transform-dotall-regex@^7.0.0": 323 | version "7.0.0" 324 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" 325 | dependencies: 326 | "@babel/helper-plugin-utils" "^7.0.0" 327 | "@babel/helper-regex" "^7.0.0" 328 | regexpu-core "^4.1.3" 329 | 330 | "@babel/plugin-transform-duplicate-keys@^7.0.0": 331 | version "7.0.0" 332 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" 333 | dependencies: 334 | "@babel/helper-plugin-utils" "^7.0.0" 335 | 336 | "@babel/plugin-transform-exponentiation-operator@^7.1.0": 337 | version "7.1.0" 338 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" 339 | dependencies: 340 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" 341 | "@babel/helper-plugin-utils" "^7.0.0" 342 | 343 | "@babel/plugin-transform-for-of@^7.0.0": 344 | version "7.0.0" 345 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" 346 | dependencies: 347 | "@babel/helper-plugin-utils" "^7.0.0" 348 | 349 | "@babel/plugin-transform-function-name@^7.1.0": 350 | version "7.1.0" 351 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" 352 | dependencies: 353 | "@babel/helper-function-name" "^7.1.0" 354 | "@babel/helper-plugin-utils" "^7.0.0" 355 | 356 | "@babel/plugin-transform-literals@^7.0.0": 357 | version "7.0.0" 358 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" 359 | dependencies: 360 | "@babel/helper-plugin-utils" "^7.0.0" 361 | 362 | "@babel/plugin-transform-modules-amd@^7.1.0": 363 | version "7.1.0" 364 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" 365 | dependencies: 366 | "@babel/helper-module-transforms" "^7.1.0" 367 | "@babel/helper-plugin-utils" "^7.0.0" 368 | 369 | "@babel/plugin-transform-modules-commonjs@^7.1.0": 370 | version "7.1.0" 371 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" 372 | dependencies: 373 | "@babel/helper-module-transforms" "^7.1.0" 374 | "@babel/helper-plugin-utils" "^7.0.0" 375 | "@babel/helper-simple-access" "^7.1.0" 376 | 377 | "@babel/plugin-transform-modules-systemjs@^7.0.0": 378 | version "7.1.3" 379 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" 380 | dependencies: 381 | "@babel/helper-hoist-variables" "^7.0.0" 382 | "@babel/helper-plugin-utils" "^7.0.0" 383 | 384 | "@babel/plugin-transform-modules-umd@^7.1.0": 385 | version "7.1.0" 386 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" 387 | dependencies: 388 | "@babel/helper-module-transforms" "^7.1.0" 389 | "@babel/helper-plugin-utils" "^7.0.0" 390 | 391 | "@babel/plugin-transform-new-target@^7.0.0": 392 | version "7.0.0" 393 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" 394 | dependencies: 395 | "@babel/helper-plugin-utils" "^7.0.0" 396 | 397 | "@babel/plugin-transform-object-super@^7.1.0": 398 | version "7.1.0" 399 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" 400 | dependencies: 401 | "@babel/helper-plugin-utils" "^7.0.0" 402 | "@babel/helper-replace-supers" "^7.1.0" 403 | 404 | "@babel/plugin-transform-parameters@^7.1.0": 405 | version "7.1.0" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" 407 | dependencies: 408 | "@babel/helper-call-delegate" "^7.1.0" 409 | "@babel/helper-get-function-arity" "^7.0.0" 410 | "@babel/helper-plugin-utils" "^7.0.0" 411 | 412 | "@babel/plugin-transform-react-display-name@^7.0.0": 413 | version "7.0.0" 414 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee" 415 | dependencies: 416 | "@babel/helper-plugin-utils" "^7.0.0" 417 | 418 | "@babel/plugin-transform-react-jsx-self@^7.0.0": 419 | version "7.0.0" 420 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11" 421 | dependencies: 422 | "@babel/helper-plugin-utils" "^7.0.0" 423 | "@babel/plugin-syntax-jsx" "^7.0.0" 424 | 425 | "@babel/plugin-transform-react-jsx-source@^7.0.0": 426 | version "7.0.0" 427 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c" 428 | dependencies: 429 | "@babel/helper-plugin-utils" "^7.0.0" 430 | "@babel/plugin-syntax-jsx" "^7.0.0" 431 | 432 | "@babel/plugin-transform-react-jsx@^7.0.0": 433 | version "7.0.0" 434 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz#524379e4eca5363cd10c4446ba163f093da75f3e" 435 | dependencies: 436 | "@babel/helper-builder-react-jsx" "^7.0.0" 437 | "@babel/helper-plugin-utils" "^7.0.0" 438 | "@babel/plugin-syntax-jsx" "^7.0.0" 439 | 440 | "@babel/plugin-transform-regenerator@^7.0.0": 441 | version "7.0.0" 442 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" 443 | dependencies: 444 | regenerator-transform "^0.13.3" 445 | 446 | "@babel/plugin-transform-shorthand-properties@^7.0.0": 447 | version "7.0.0" 448 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" 449 | dependencies: 450 | "@babel/helper-plugin-utils" "^7.0.0" 451 | 452 | "@babel/plugin-transform-spread@^7.0.0": 453 | version "7.0.0" 454 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" 455 | dependencies: 456 | "@babel/helper-plugin-utils" "^7.0.0" 457 | 458 | "@babel/plugin-transform-sticky-regex@^7.0.0": 459 | version "7.0.0" 460 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" 461 | dependencies: 462 | "@babel/helper-plugin-utils" "^7.0.0" 463 | "@babel/helper-regex" "^7.0.0" 464 | 465 | "@babel/plugin-transform-template-literals@^7.0.0": 466 | version "7.0.0" 467 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" 468 | dependencies: 469 | "@babel/helper-annotate-as-pure" "^7.0.0" 470 | "@babel/helper-plugin-utils" "^7.0.0" 471 | 472 | "@babel/plugin-transform-typeof-symbol@^7.0.0": 473 | version "7.0.0" 474 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" 475 | dependencies: 476 | "@babel/helper-plugin-utils" "^7.0.0" 477 | 478 | "@babel/plugin-transform-unicode-regex@^7.0.0": 479 | version "7.0.0" 480 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" 481 | dependencies: 482 | "@babel/helper-plugin-utils" "^7.0.0" 483 | "@babel/helper-regex" "^7.0.0" 484 | regexpu-core "^4.1.3" 485 | 486 | "@babel/preset-env@^7.0.0": 487 | version "7.1.0" 488 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" 489 | dependencies: 490 | "@babel/helper-module-imports" "^7.0.0" 491 | "@babel/helper-plugin-utils" "^7.0.0" 492 | "@babel/plugin-proposal-async-generator-functions" "^7.1.0" 493 | "@babel/plugin-proposal-json-strings" "^7.0.0" 494 | "@babel/plugin-proposal-object-rest-spread" "^7.0.0" 495 | "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" 496 | "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" 497 | "@babel/plugin-syntax-async-generators" "^7.0.0" 498 | "@babel/plugin-syntax-object-rest-spread" "^7.0.0" 499 | "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" 500 | "@babel/plugin-transform-arrow-functions" "^7.0.0" 501 | "@babel/plugin-transform-async-to-generator" "^7.1.0" 502 | "@babel/plugin-transform-block-scoped-functions" "^7.0.0" 503 | "@babel/plugin-transform-block-scoping" "^7.0.0" 504 | "@babel/plugin-transform-classes" "^7.1.0" 505 | "@babel/plugin-transform-computed-properties" "^7.0.0" 506 | "@babel/plugin-transform-destructuring" "^7.0.0" 507 | "@babel/plugin-transform-dotall-regex" "^7.0.0" 508 | "@babel/plugin-transform-duplicate-keys" "^7.0.0" 509 | "@babel/plugin-transform-exponentiation-operator" "^7.1.0" 510 | "@babel/plugin-transform-for-of" "^7.0.0" 511 | "@babel/plugin-transform-function-name" "^7.1.0" 512 | "@babel/plugin-transform-literals" "^7.0.0" 513 | "@babel/plugin-transform-modules-amd" "^7.1.0" 514 | "@babel/plugin-transform-modules-commonjs" "^7.1.0" 515 | "@babel/plugin-transform-modules-systemjs" "^7.0.0" 516 | "@babel/plugin-transform-modules-umd" "^7.1.0" 517 | "@babel/plugin-transform-new-target" "^7.0.0" 518 | "@babel/plugin-transform-object-super" "^7.1.0" 519 | "@babel/plugin-transform-parameters" "^7.1.0" 520 | "@babel/plugin-transform-regenerator" "^7.0.0" 521 | "@babel/plugin-transform-shorthand-properties" "^7.0.0" 522 | "@babel/plugin-transform-spread" "^7.0.0" 523 | "@babel/plugin-transform-sticky-regex" "^7.0.0" 524 | "@babel/plugin-transform-template-literals" "^7.0.0" 525 | "@babel/plugin-transform-typeof-symbol" "^7.0.0" 526 | "@babel/plugin-transform-unicode-regex" "^7.0.0" 527 | browserslist "^4.1.0" 528 | invariant "^2.2.2" 529 | js-levenshtein "^1.1.3" 530 | semver "^5.3.0" 531 | 532 | "@babel/preset-react@^7.0.0": 533 | version "7.0.0" 534 | resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" 535 | dependencies: 536 | "@babel/helper-plugin-utils" "^7.0.0" 537 | "@babel/plugin-transform-react-display-name" "^7.0.0" 538 | "@babel/plugin-transform-react-jsx" "^7.0.0" 539 | "@babel/plugin-transform-react-jsx-self" "^7.0.0" 540 | "@babel/plugin-transform-react-jsx-source" "^7.0.0" 541 | 542 | "@babel/template@^7.1.0", "@babel/template@^7.1.2": 543 | version "7.1.2" 544 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" 545 | dependencies: 546 | "@babel/code-frame" "^7.0.0" 547 | "@babel/parser" "^7.1.2" 548 | "@babel/types" "^7.1.2" 549 | 550 | "@babel/traverse@^7.1.0": 551 | version "7.1.4" 552 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" 553 | dependencies: 554 | "@babel/code-frame" "^7.0.0" 555 | "@babel/generator" "^7.1.3" 556 | "@babel/helper-function-name" "^7.1.0" 557 | "@babel/helper-split-export-declaration" "^7.0.0" 558 | "@babel/parser" "^7.1.3" 559 | "@babel/types" "^7.1.3" 560 | debug "^3.1.0" 561 | globals "^11.1.0" 562 | lodash "^4.17.10" 563 | 564 | "@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": 565 | version "7.1.3" 566 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" 567 | dependencies: 568 | esutils "^2.0.2" 569 | lodash "^4.17.10" 570 | to-fast-properties "^2.0.0" 571 | 572 | "@mrmlnc/readdir-enhanced@^2.2.1": 573 | version "2.2.1" 574 | resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" 575 | dependencies: 576 | call-me-maybe "^1.0.1" 577 | glob-to-regexp "^0.3.0" 578 | 579 | "@nodelib/fs.stat@^1.0.1": 580 | version "1.1.2" 581 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz#54c5a964462be3d4d78af631363c18d6fa91ac26" 582 | 583 | "@skpm/babel-preset@0.2.1": 584 | version "0.2.1" 585 | resolved "https://registry.yarnpkg.com/@skpm/babel-preset/-/babel-preset-0.2.1.tgz#1e0404e058514d72adebe98163b69b0bb1d737e4" 586 | dependencies: 587 | "@babel/plugin-proposal-async-generator-functions" "^7.0.0" 588 | "@babel/plugin-proposal-object-rest-spread" "^7.0.0" 589 | "@babel/preset-env" "^7.0.0" 590 | "@babel/preset-react" "^7.0.0" 591 | 592 | "@skpm/builder@^0.5.2": 593 | version "0.5.10" 594 | resolved "https://registry.yarnpkg.com/@skpm/builder/-/builder-0.5.10.tgz#906d2ee1ed948aeaffbad43927a9a7eb4b55577d" 595 | dependencies: 596 | "@babel/core" "^7.0.1" 597 | "@skpm/babel-preset" "0.2.1" 598 | "@skpm/file-loader" "^2.0.1" 599 | "@skpm/internal-utils" "^0.1.10" 600 | "@skpm/nib-loader" "^0.1.1" 601 | "@skpm/timers" "^0.1.0" 602 | babel-loader "^8.0.2" 603 | chalk "^2.4.1" 604 | globby "^8.0.1" 605 | mkdirp "^0.5.1" 606 | parse-author "2.0.0" 607 | promise-polyfill "^8.1.0" 608 | run-sketch-plugin "^1.0.0" 609 | semver "^5.5.1" 610 | sketch-polyfill-fetch "^0.3.6" 611 | uglifyjs-webpack-plugin "^1.3.0" 612 | webpack "^4.19.0" 613 | webpack-merge "^4.1.4" 614 | webpack-sources "^1.2.0" 615 | yargs "^12.0.2" 616 | yesno "^0.0.1" 617 | 618 | "@skpm/file-loader@^2.0.1": 619 | version "2.0.1" 620 | resolved "https://registry.yarnpkg.com/@skpm/file-loader/-/file-loader-2.0.1.tgz#afd7624a77eb567550d7cb88f5a6e68a12785e3f" 621 | dependencies: 622 | loader-utils "^1.0.2" 623 | schema-utils "^0.4.5" 624 | 625 | "@skpm/internal-utils@^0.1.10": 626 | version "0.1.11" 627 | resolved "https://registry.yarnpkg.com/@skpm/internal-utils/-/internal-utils-0.1.11.tgz#d3c9de9c075961f60fd18f963bb85a199c55ef3f" 628 | dependencies: 629 | chalk "^2.4.1" 630 | js-yaml "^3.10.0" 631 | object-assign "*" 632 | yesno "0.0.1" 633 | 634 | "@skpm/nib-loader@^0.1.1": 635 | version "0.1.1" 636 | resolved "https://registry.yarnpkg.com/@skpm/nib-loader/-/nib-loader-0.1.1.tgz#7cf31a0831d75d2ecf3832aea3c58cee43e41d82" 637 | dependencies: 638 | cocoascript-class "^0.1.2" 639 | loader-utils "^1.0.2" 640 | schema-utils "^0.4.5" 641 | 642 | "@skpm/timers@^0.1.0": 643 | version "0.1.0" 644 | resolved "https://registry.yarnpkg.com/@skpm/timers/-/timers-0.1.0.tgz#c9bc4fd0521e9bdb12efa0aa9a7b9382ee7ddc73" 645 | 646 | "@webassemblyjs/ast@1.7.8": 647 | version "1.7.8" 648 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.8.tgz#f31f480debeef957f01b623f27eabc695fa4fe8f" 649 | dependencies: 650 | "@webassemblyjs/helper-module-context" "1.7.8" 651 | "@webassemblyjs/helper-wasm-bytecode" "1.7.8" 652 | "@webassemblyjs/wast-parser" "1.7.8" 653 | 654 | "@webassemblyjs/floating-point-hex-parser@1.7.8": 655 | version "1.7.8" 656 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.8.tgz#1b3ed0e27e384032254e9322fc646dd3e70ef1b9" 657 | 658 | "@webassemblyjs/helper-api-error@1.7.8": 659 | version "1.7.8" 660 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.8.tgz#a2b49c11f615e736f815ec927f035dcfa690d572" 661 | 662 | "@webassemblyjs/helper-buffer@1.7.8": 663 | version "1.7.8" 664 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.8.tgz#3fc66bfa09c1c60e824cf3d5887826fac062877d" 665 | 666 | "@webassemblyjs/helper-code-frame@1.7.8": 667 | version "1.7.8" 668 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.8.tgz#cc5a7e9522b70e7580df056dfd34020cf29645b0" 669 | dependencies: 670 | "@webassemblyjs/wast-printer" "1.7.8" 671 | 672 | "@webassemblyjs/helper-fsm@1.7.8": 673 | version "1.7.8" 674 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.8.tgz#fe4607430af466912797c21acafd3046080182ea" 675 | 676 | "@webassemblyjs/helper-module-context@1.7.8": 677 | version "1.7.8" 678 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.8.tgz#3c2e7ee93d14ff4768ba66fb1be42fdc9dc7160a" 679 | 680 | "@webassemblyjs/helper-wasm-bytecode@1.7.8": 681 | version "1.7.8" 682 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.8.tgz#89bdb78cd6dd5209ae2ed2925de78d0f0e00b6f0" 683 | 684 | "@webassemblyjs/helper-wasm-section@1.7.8": 685 | version "1.7.8" 686 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.8.tgz#c68ef7d26a6fc12421b2e6e56f9bc810dfb33e87" 687 | dependencies: 688 | "@webassemblyjs/ast" "1.7.8" 689 | "@webassemblyjs/helper-buffer" "1.7.8" 690 | "@webassemblyjs/helper-wasm-bytecode" "1.7.8" 691 | "@webassemblyjs/wasm-gen" "1.7.8" 692 | 693 | "@webassemblyjs/ieee754@1.7.8": 694 | version "1.7.8" 695 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.8.tgz#1f37974b13cb486a9237e73ce04cac7a2f1265ed" 696 | dependencies: 697 | "@xtuc/ieee754" "^1.2.0" 698 | 699 | "@webassemblyjs/leb128@1.7.8": 700 | version "1.7.8" 701 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.8.tgz#1bee83426819192db2ea1a234b84c7ebc6d34c1f" 702 | dependencies: 703 | "@xtuc/long" "4.2.1" 704 | 705 | "@webassemblyjs/utf8@1.7.8": 706 | version "1.7.8" 707 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.8.tgz#2b489d5cf43e0aebb93d8e2d792aff9879c61f05" 708 | 709 | "@webassemblyjs/wasm-edit@1.7.8": 710 | version "1.7.8" 711 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.8.tgz#f8bdbe7088718eca27b1c349bb7c06b8a457950c" 712 | dependencies: 713 | "@webassemblyjs/ast" "1.7.8" 714 | "@webassemblyjs/helper-buffer" "1.7.8" 715 | "@webassemblyjs/helper-wasm-bytecode" "1.7.8" 716 | "@webassemblyjs/helper-wasm-section" "1.7.8" 717 | "@webassemblyjs/wasm-gen" "1.7.8" 718 | "@webassemblyjs/wasm-opt" "1.7.8" 719 | "@webassemblyjs/wasm-parser" "1.7.8" 720 | "@webassemblyjs/wast-printer" "1.7.8" 721 | 722 | "@webassemblyjs/wasm-gen@1.7.8": 723 | version "1.7.8" 724 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.8.tgz#7e8abf1545eae74ac6781d545c034af3cfd0c7d5" 725 | dependencies: 726 | "@webassemblyjs/ast" "1.7.8" 727 | "@webassemblyjs/helper-wasm-bytecode" "1.7.8" 728 | "@webassemblyjs/ieee754" "1.7.8" 729 | "@webassemblyjs/leb128" "1.7.8" 730 | "@webassemblyjs/utf8" "1.7.8" 731 | 732 | "@webassemblyjs/wasm-opt@1.7.8": 733 | version "1.7.8" 734 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.8.tgz#7ada6e211914728fce02ff0ff9c344edc6d41f26" 735 | dependencies: 736 | "@webassemblyjs/ast" "1.7.8" 737 | "@webassemblyjs/helper-buffer" "1.7.8" 738 | "@webassemblyjs/wasm-gen" "1.7.8" 739 | "@webassemblyjs/wasm-parser" "1.7.8" 740 | 741 | "@webassemblyjs/wasm-parser@1.7.8": 742 | version "1.7.8" 743 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.8.tgz#dac47c291fb6a3e63529aecd647592cd34afbf94" 744 | dependencies: 745 | "@webassemblyjs/ast" "1.7.8" 746 | "@webassemblyjs/helper-api-error" "1.7.8" 747 | "@webassemblyjs/helper-wasm-bytecode" "1.7.8" 748 | "@webassemblyjs/ieee754" "1.7.8" 749 | "@webassemblyjs/leb128" "1.7.8" 750 | "@webassemblyjs/utf8" "1.7.8" 751 | 752 | "@webassemblyjs/wast-parser@1.7.8": 753 | version "1.7.8" 754 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.8.tgz#f8aab9a450c048c1f9537695c89faeb92fabfba5" 755 | dependencies: 756 | "@webassemblyjs/ast" "1.7.8" 757 | "@webassemblyjs/floating-point-hex-parser" "1.7.8" 758 | "@webassemblyjs/helper-api-error" "1.7.8" 759 | "@webassemblyjs/helper-code-frame" "1.7.8" 760 | "@webassemblyjs/helper-fsm" "1.7.8" 761 | "@xtuc/long" "4.2.1" 762 | 763 | "@webassemblyjs/wast-printer@1.7.8": 764 | version "1.7.8" 765 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.8.tgz#e7e965782c1912f6a965f14a53ff43d8ad0403a5" 766 | dependencies: 767 | "@webassemblyjs/ast" "1.7.8" 768 | "@webassemblyjs/wast-parser" "1.7.8" 769 | "@xtuc/long" "4.2.1" 770 | 771 | "@xtuc/ieee754@^1.2.0": 772 | version "1.2.0" 773 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 774 | 775 | "@xtuc/long@4.2.1": 776 | version "4.2.1" 777 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" 778 | 779 | abbrev@1: 780 | version "1.1.1" 781 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 782 | 783 | acorn-dynamic-import@^3.0.0: 784 | version "3.0.0" 785 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" 786 | dependencies: 787 | acorn "^5.0.0" 788 | 789 | acorn@^5.0.0, acorn@^5.6.2: 790 | version "5.7.3" 791 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 792 | 793 | ajv-keywords@^3.1.0: 794 | version "3.2.0" 795 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 796 | 797 | ajv@^6.1.0: 798 | version "6.5.4" 799 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" 800 | dependencies: 801 | fast-deep-equal "^2.0.1" 802 | fast-json-stable-stringify "^2.0.0" 803 | json-schema-traverse "^0.4.1" 804 | uri-js "^4.2.2" 805 | 806 | ansi-regex@^2.0.0: 807 | version "2.1.1" 808 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 809 | 810 | ansi-regex@^3.0.0: 811 | version "3.0.0" 812 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 813 | 814 | ansi-styles@^3.2.1: 815 | version "3.2.1" 816 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 817 | dependencies: 818 | color-convert "^1.9.0" 819 | 820 | anymatch@^2.0.0: 821 | version "2.0.0" 822 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 823 | dependencies: 824 | micromatch "^3.1.4" 825 | normalize-path "^2.1.1" 826 | 827 | aproba@^1.0.3, aproba@^1.1.1: 828 | version "1.2.0" 829 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 830 | 831 | are-we-there-yet@~1.1.2: 832 | version "1.1.5" 833 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 834 | dependencies: 835 | delegates "^1.0.0" 836 | readable-stream "^2.0.6" 837 | 838 | argparse@^1.0.7: 839 | version "1.0.10" 840 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 841 | dependencies: 842 | sprintf-js "~1.0.2" 843 | 844 | arr-diff@^4.0.0: 845 | version "4.0.0" 846 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 847 | 848 | arr-flatten@^1.1.0: 849 | version "1.1.0" 850 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 851 | 852 | arr-union@^3.1.0: 853 | version "3.1.0" 854 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 855 | 856 | array-union@^1.0.1: 857 | version "1.0.2" 858 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 859 | dependencies: 860 | array-uniq "^1.0.1" 861 | 862 | array-uniq@^1.0.1: 863 | version "1.0.3" 864 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 865 | 866 | array-unique@^0.3.2: 867 | version "0.3.2" 868 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 869 | 870 | arrify@^1.0.1: 871 | version "1.0.1" 872 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 873 | 874 | asn1.js@^4.0.0: 875 | version "4.10.1" 876 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 877 | dependencies: 878 | bn.js "^4.0.0" 879 | inherits "^2.0.1" 880 | minimalistic-assert "^1.0.0" 881 | 882 | assert@^1.1.1: 883 | version "1.4.1" 884 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 885 | dependencies: 886 | util "0.10.3" 887 | 888 | assign-symbols@^1.0.0: 889 | version "1.0.0" 890 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 891 | 892 | async-each@^1.0.0: 893 | version "1.0.1" 894 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 895 | 896 | atob@^2.1.1: 897 | version "2.1.2" 898 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 899 | 900 | author-regex@^1.0.0: 901 | version "1.0.0" 902 | resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" 903 | 904 | babel-loader@^8.0.2: 905 | version "8.0.4" 906 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" 907 | dependencies: 908 | find-cache-dir "^1.0.0" 909 | loader-utils "^1.0.2" 910 | mkdirp "^0.5.1" 911 | util.promisify "^1.0.0" 912 | 913 | balanced-match@^1.0.0: 914 | version "1.0.0" 915 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 916 | 917 | base64-js@^1.0.2: 918 | version "1.3.0" 919 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 920 | 921 | base@^0.11.1: 922 | version "0.11.2" 923 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 924 | dependencies: 925 | cache-base "^1.0.1" 926 | class-utils "^0.3.5" 927 | component-emitter "^1.2.1" 928 | define-property "^1.0.0" 929 | isobject "^3.0.1" 930 | mixin-deep "^1.2.0" 931 | pascalcase "^0.1.1" 932 | 933 | big.js@^3.1.3: 934 | version "3.2.0" 935 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" 936 | 937 | binary-extensions@^1.0.0: 938 | version "1.12.0" 939 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" 940 | 941 | bluebird@^3.5.1: 942 | version "3.5.2" 943 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" 944 | 945 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 946 | version "4.11.8" 947 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 948 | 949 | brace-expansion@^1.1.7: 950 | version "1.1.11" 951 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 952 | dependencies: 953 | balanced-match "^1.0.0" 954 | concat-map "0.0.1" 955 | 956 | braces@^2.3.0, braces@^2.3.1: 957 | version "2.3.2" 958 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 959 | dependencies: 960 | arr-flatten "^1.1.0" 961 | array-unique "^0.3.2" 962 | extend-shallow "^2.0.1" 963 | fill-range "^4.0.0" 964 | isobject "^3.0.1" 965 | repeat-element "^1.1.2" 966 | snapdragon "^0.8.1" 967 | snapdragon-node "^2.0.1" 968 | split-string "^3.0.2" 969 | to-regex "^3.0.1" 970 | 971 | brorand@^1.0.1: 972 | version "1.1.0" 973 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 974 | 975 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 976 | version "1.2.0" 977 | resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 978 | dependencies: 979 | buffer-xor "^1.0.3" 980 | cipher-base "^1.0.0" 981 | create-hash "^1.1.0" 982 | evp_bytestokey "^1.0.3" 983 | inherits "^2.0.1" 984 | safe-buffer "^5.0.1" 985 | 986 | browserify-cipher@^1.0.0: 987 | version "1.0.1" 988 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 989 | dependencies: 990 | browserify-aes "^1.0.4" 991 | browserify-des "^1.0.0" 992 | evp_bytestokey "^1.0.0" 993 | 994 | browserify-des@^1.0.0: 995 | version "1.0.2" 996 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 997 | dependencies: 998 | cipher-base "^1.0.1" 999 | des.js "^1.0.0" 1000 | inherits "^2.0.1" 1001 | safe-buffer "^5.1.2" 1002 | 1003 | browserify-rsa@^4.0.0: 1004 | version "4.0.1" 1005 | resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 1006 | dependencies: 1007 | bn.js "^4.1.0" 1008 | randombytes "^2.0.1" 1009 | 1010 | browserify-sign@^4.0.0: 1011 | version "4.0.4" 1012 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 1013 | dependencies: 1014 | bn.js "^4.1.1" 1015 | browserify-rsa "^4.0.0" 1016 | create-hash "^1.1.0" 1017 | create-hmac "^1.1.2" 1018 | elliptic "^6.0.0" 1019 | inherits "^2.0.1" 1020 | parse-asn1 "^5.0.0" 1021 | 1022 | browserify-zlib@^0.2.0: 1023 | version "0.2.0" 1024 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 1025 | dependencies: 1026 | pako "~1.0.5" 1027 | 1028 | browserslist@^4.1.0: 1029 | version "4.2.1" 1030 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.2.1.tgz#257a24c879d1cd4016348eee5c25de683260b21d" 1031 | dependencies: 1032 | caniuse-lite "^1.0.30000890" 1033 | electron-to-chromium "^1.3.79" 1034 | node-releases "^1.0.0-alpha.14" 1035 | 1036 | buffer-from@^1.0.0: 1037 | version "1.1.1" 1038 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 1039 | 1040 | buffer-xor@^1.0.3: 1041 | version "1.0.3" 1042 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 1043 | 1044 | buffer@^4.3.0: 1045 | version "4.9.1" 1046 | resolved "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 1047 | dependencies: 1048 | base64-js "^1.0.2" 1049 | ieee754 "^1.1.4" 1050 | isarray "^1.0.0" 1051 | 1052 | builtin-status-codes@^3.0.0: 1053 | version "3.0.0" 1054 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 1055 | 1056 | cacache@^10.0.4: 1057 | version "10.0.4" 1058 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" 1059 | dependencies: 1060 | bluebird "^3.5.1" 1061 | chownr "^1.0.1" 1062 | glob "^7.1.2" 1063 | graceful-fs "^4.1.11" 1064 | lru-cache "^4.1.1" 1065 | mississippi "^2.0.0" 1066 | mkdirp "^0.5.1" 1067 | move-concurrently "^1.0.1" 1068 | promise-inflight "^1.0.1" 1069 | rimraf "^2.6.2" 1070 | ssri "^5.2.4" 1071 | unique-filename "^1.1.0" 1072 | y18n "^4.0.0" 1073 | 1074 | cache-base@^1.0.1: 1075 | version "1.0.1" 1076 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 1077 | dependencies: 1078 | collection-visit "^1.0.0" 1079 | component-emitter "^1.2.1" 1080 | get-value "^2.0.6" 1081 | has-value "^1.0.0" 1082 | isobject "^3.0.1" 1083 | set-value "^2.0.0" 1084 | to-object-path "^0.3.0" 1085 | union-value "^1.0.0" 1086 | unset-value "^1.0.0" 1087 | 1088 | call-me-maybe@^1.0.1: 1089 | version "1.0.1" 1090 | resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" 1091 | 1092 | camelcase@^4.1.0: 1093 | version "4.1.0" 1094 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 1095 | 1096 | caniuse-lite@^1.0.30000890: 1097 | version "1.0.30000892" 1098 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000892.tgz#344d2b51ee3ff5977537da4aa449c90eec40b759" 1099 | 1100 | chalk@^2.0.0, chalk@^2.4.1: 1101 | version "2.4.1" 1102 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 1103 | dependencies: 1104 | ansi-styles "^3.2.1" 1105 | escape-string-regexp "^1.0.5" 1106 | supports-color "^5.3.0" 1107 | 1108 | chokidar@^2.0.2: 1109 | version "2.0.4" 1110 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" 1111 | dependencies: 1112 | anymatch "^2.0.0" 1113 | async-each "^1.0.0" 1114 | braces "^2.3.0" 1115 | glob-parent "^3.1.0" 1116 | inherits "^2.0.1" 1117 | is-binary-path "^1.0.0" 1118 | is-glob "^4.0.0" 1119 | lodash.debounce "^4.0.8" 1120 | normalize-path "^2.1.1" 1121 | path-is-absolute "^1.0.0" 1122 | readdirp "^2.0.0" 1123 | upath "^1.0.5" 1124 | optionalDependencies: 1125 | fsevents "^1.2.2" 1126 | 1127 | chownr@^1.0.1: 1128 | version "1.1.1" 1129 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 1130 | 1131 | chrome-trace-event@^1.0.0: 1132 | version "1.0.0" 1133 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" 1134 | dependencies: 1135 | tslib "^1.9.0" 1136 | 1137 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 1138 | version "1.0.4" 1139 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 1140 | dependencies: 1141 | inherits "^2.0.1" 1142 | safe-buffer "^5.0.1" 1143 | 1144 | class-utils@^0.3.5: 1145 | version "0.3.6" 1146 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 1147 | dependencies: 1148 | arr-union "^3.1.0" 1149 | define-property "^0.2.5" 1150 | isobject "^3.0.0" 1151 | static-extend "^0.1.1" 1152 | 1153 | cliui@^4.0.0: 1154 | version "4.1.0" 1155 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 1156 | dependencies: 1157 | string-width "^2.1.1" 1158 | strip-ansi "^4.0.0" 1159 | wrap-ansi "^2.0.0" 1160 | 1161 | cocoascript-class@^0.1.2: 1162 | version "0.1.2" 1163 | resolved "https://registry.yarnpkg.com/cocoascript-class/-/cocoascript-class-0.1.2.tgz#dab25f20389946d9986c1812b88ac3783eec42d3" 1164 | 1165 | code-point-at@^1.0.0: 1166 | version "1.1.0" 1167 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 1168 | 1169 | collection-visit@^1.0.0: 1170 | version "1.0.0" 1171 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 1172 | dependencies: 1173 | map-visit "^1.0.0" 1174 | object-visit "^1.0.0" 1175 | 1176 | color-convert@^1.9.0: 1177 | version "1.9.3" 1178 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 1179 | dependencies: 1180 | color-name "1.1.3" 1181 | 1182 | color-name@1.1.3: 1183 | version "1.1.3" 1184 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1185 | 1186 | commander@~2.13.0: 1187 | version "2.13.0" 1188 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" 1189 | 1190 | commondir@^1.0.1: 1191 | version "1.0.1" 1192 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1193 | 1194 | component-emitter@^1.2.1: 1195 | version "1.2.1" 1196 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 1197 | 1198 | concat-map@0.0.1: 1199 | version "0.0.1" 1200 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1201 | 1202 | concat-stream@^1.5.0: 1203 | version "1.6.2" 1204 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 1205 | dependencies: 1206 | buffer-from "^1.0.0" 1207 | inherits "^2.0.3" 1208 | readable-stream "^2.2.2" 1209 | typedarray "^0.0.6" 1210 | 1211 | console-browserify@^1.1.0: 1212 | version "1.1.0" 1213 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 1214 | dependencies: 1215 | date-now "^0.1.4" 1216 | 1217 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 1218 | version "1.1.0" 1219 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 1220 | 1221 | constants-browserify@^1.0.0: 1222 | version "1.0.0" 1223 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 1224 | 1225 | convert-source-map@^1.1.0: 1226 | version "1.6.0" 1227 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 1228 | dependencies: 1229 | safe-buffer "~5.1.1" 1230 | 1231 | copy-concurrently@^1.0.0: 1232 | version "1.0.5" 1233 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" 1234 | dependencies: 1235 | aproba "^1.1.1" 1236 | fs-write-stream-atomic "^1.0.8" 1237 | iferr "^0.1.5" 1238 | mkdirp "^0.5.1" 1239 | rimraf "^2.5.4" 1240 | run-queue "^1.0.0" 1241 | 1242 | copy-descriptor@^0.1.0: 1243 | version "0.1.1" 1244 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 1245 | 1246 | core-util-is@~1.0.0: 1247 | version "1.0.2" 1248 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 1249 | 1250 | coscript@^1.0.0: 1251 | version "1.0.0" 1252 | resolved "https://registry.yarnpkg.com/coscript/-/coscript-1.0.0.tgz#1a0ef8d5f8b4a67901b97ae59bd2f51e6cc6b0f1" 1253 | 1254 | create-ecdh@^4.0.0: 1255 | version "4.0.3" 1256 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 1257 | dependencies: 1258 | bn.js "^4.1.0" 1259 | elliptic "^6.0.0" 1260 | 1261 | create-hash@^1.1.0, create-hash@^1.1.2: 1262 | version "1.2.0" 1263 | resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 1264 | dependencies: 1265 | cipher-base "^1.0.1" 1266 | inherits "^2.0.1" 1267 | md5.js "^1.3.4" 1268 | ripemd160 "^2.0.1" 1269 | sha.js "^2.4.0" 1270 | 1271 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 1272 | version "1.1.7" 1273 | resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 1274 | dependencies: 1275 | cipher-base "^1.0.3" 1276 | create-hash "^1.1.0" 1277 | inherits "^2.0.1" 1278 | ripemd160 "^2.0.0" 1279 | safe-buffer "^5.0.1" 1280 | sha.js "^2.4.8" 1281 | 1282 | cross-spawn@^6.0.0: 1283 | version "6.0.5" 1284 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 1285 | dependencies: 1286 | nice-try "^1.0.4" 1287 | path-key "^2.0.1" 1288 | semver "^5.5.0" 1289 | shebang-command "^1.2.0" 1290 | which "^1.2.9" 1291 | 1292 | crypto-browserify@^3.11.0: 1293 | version "3.12.0" 1294 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 1295 | dependencies: 1296 | browserify-cipher "^1.0.0" 1297 | browserify-sign "^4.0.0" 1298 | create-ecdh "^4.0.0" 1299 | create-hash "^1.1.0" 1300 | create-hmac "^1.1.0" 1301 | diffie-hellman "^5.0.0" 1302 | inherits "^2.0.1" 1303 | pbkdf2 "^3.0.3" 1304 | public-encrypt "^4.0.0" 1305 | randombytes "^2.0.0" 1306 | randomfill "^1.0.3" 1307 | 1308 | cyclist@~0.2.2: 1309 | version "0.2.2" 1310 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" 1311 | 1312 | date-now@^0.1.4: 1313 | version "0.1.4" 1314 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 1315 | 1316 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: 1317 | version "2.6.9" 1318 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 1319 | dependencies: 1320 | ms "2.0.0" 1321 | 1322 | debug@^3.1.0: 1323 | version "3.2.6" 1324 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 1325 | dependencies: 1326 | ms "^2.1.1" 1327 | 1328 | decamelize@^2.0.0: 1329 | version "2.0.0" 1330 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" 1331 | dependencies: 1332 | xregexp "4.0.0" 1333 | 1334 | decode-uri-component@^0.2.0: 1335 | version "0.2.0" 1336 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 1337 | 1338 | deep-extend@^0.6.0: 1339 | version "0.6.0" 1340 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 1341 | 1342 | define-properties@^1.1.2: 1343 | version "1.1.3" 1344 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 1345 | dependencies: 1346 | object-keys "^1.0.12" 1347 | 1348 | define-property@^0.2.5: 1349 | version "0.2.5" 1350 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 1351 | dependencies: 1352 | is-descriptor "^0.1.0" 1353 | 1354 | define-property@^1.0.0: 1355 | version "1.0.0" 1356 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 1357 | dependencies: 1358 | is-descriptor "^1.0.0" 1359 | 1360 | define-property@^2.0.2: 1361 | version "2.0.2" 1362 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 1363 | dependencies: 1364 | is-descriptor "^1.0.2" 1365 | isobject "^3.0.1" 1366 | 1367 | delegates@^1.0.0: 1368 | version "1.0.0" 1369 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1370 | 1371 | des.js@^1.0.0: 1372 | version "1.0.0" 1373 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 1374 | dependencies: 1375 | inherits "^2.0.1" 1376 | minimalistic-assert "^1.0.0" 1377 | 1378 | detect-libc@^1.0.2: 1379 | version "1.0.3" 1380 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 1381 | 1382 | diffie-hellman@^5.0.0: 1383 | version "5.0.3" 1384 | resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 1385 | dependencies: 1386 | bn.js "^4.1.0" 1387 | miller-rabin "^4.0.0" 1388 | randombytes "^2.0.0" 1389 | 1390 | dir-glob@^2.0.0: 1391 | version "2.0.0" 1392 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" 1393 | dependencies: 1394 | arrify "^1.0.1" 1395 | path-type "^3.0.0" 1396 | 1397 | domain-browser@^1.1.1: 1398 | version "1.2.0" 1399 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 1400 | 1401 | duplexify@^3.4.2, duplexify@^3.6.0: 1402 | version "3.6.1" 1403 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" 1404 | dependencies: 1405 | end-of-stream "^1.0.0" 1406 | inherits "^2.0.1" 1407 | readable-stream "^2.0.0" 1408 | stream-shift "^1.0.0" 1409 | 1410 | electron-to-chromium@^1.3.79: 1411 | version "1.3.79" 1412 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.79.tgz#774718f06284a4bf8f578ac67e74508fe659f13a" 1413 | 1414 | elliptic@^6.0.0: 1415 | version "6.4.1" 1416 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" 1417 | dependencies: 1418 | bn.js "^4.4.0" 1419 | brorand "^1.0.1" 1420 | hash.js "^1.0.0" 1421 | hmac-drbg "^1.0.0" 1422 | inherits "^2.0.1" 1423 | minimalistic-assert "^1.0.0" 1424 | minimalistic-crypto-utils "^1.0.0" 1425 | 1426 | emojis-list@^2.0.0: 1427 | version "2.1.0" 1428 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1429 | 1430 | end-of-stream@^1.0.0, end-of-stream@^1.1.0: 1431 | version "1.4.1" 1432 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 1433 | dependencies: 1434 | once "^1.4.0" 1435 | 1436 | enhanced-resolve@^4.1.0: 1437 | version "4.1.0" 1438 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" 1439 | dependencies: 1440 | graceful-fs "^4.1.2" 1441 | memory-fs "^0.4.0" 1442 | tapable "^1.0.0" 1443 | 1444 | errno@^0.1.3, errno@~0.1.7: 1445 | version "0.1.7" 1446 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 1447 | dependencies: 1448 | prr "~1.0.1" 1449 | 1450 | es-abstract@^1.5.1: 1451 | version "1.12.0" 1452 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 1453 | dependencies: 1454 | es-to-primitive "^1.1.1" 1455 | function-bind "^1.1.1" 1456 | has "^1.0.1" 1457 | is-callable "^1.1.3" 1458 | is-regex "^1.0.4" 1459 | 1460 | es-to-primitive@^1.1.1: 1461 | version "1.2.0" 1462 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 1463 | dependencies: 1464 | is-callable "^1.1.4" 1465 | is-date-object "^1.0.1" 1466 | is-symbol "^1.0.2" 1467 | 1468 | escape-string-regexp@^1.0.5: 1469 | version "1.0.5" 1470 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1471 | 1472 | eslint-scope@^4.0.0: 1473 | version "4.0.0" 1474 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" 1475 | dependencies: 1476 | esrecurse "^4.1.0" 1477 | estraverse "^4.1.1" 1478 | 1479 | esprima@^4.0.0: 1480 | version "4.0.1" 1481 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1482 | 1483 | esrecurse@^4.1.0: 1484 | version "4.2.1" 1485 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 1486 | dependencies: 1487 | estraverse "^4.1.0" 1488 | 1489 | estraverse@^4.1.0, estraverse@^4.1.1: 1490 | version "4.2.0" 1491 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1492 | 1493 | esutils@^2.0.0, esutils@^2.0.2: 1494 | version "2.0.2" 1495 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1496 | 1497 | events@^1.0.0: 1498 | version "1.1.1" 1499 | resolved "http://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 1500 | 1501 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1502 | version "1.0.3" 1503 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1504 | dependencies: 1505 | md5.js "^1.3.4" 1506 | safe-buffer "^5.1.1" 1507 | 1508 | execa@^0.10.0: 1509 | version "0.10.0" 1510 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" 1511 | dependencies: 1512 | cross-spawn "^6.0.0" 1513 | get-stream "^3.0.0" 1514 | is-stream "^1.1.0" 1515 | npm-run-path "^2.0.0" 1516 | p-finally "^1.0.0" 1517 | signal-exit "^3.0.0" 1518 | strip-eof "^1.0.0" 1519 | 1520 | expand-brackets@^2.1.4: 1521 | version "2.1.4" 1522 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1523 | dependencies: 1524 | debug "^2.3.3" 1525 | define-property "^0.2.5" 1526 | extend-shallow "^2.0.1" 1527 | posix-character-classes "^0.1.0" 1528 | regex-not "^1.0.0" 1529 | snapdragon "^0.8.1" 1530 | to-regex "^3.0.1" 1531 | 1532 | extend-shallow@^2.0.1: 1533 | version "2.0.1" 1534 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1535 | dependencies: 1536 | is-extendable "^0.1.0" 1537 | 1538 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1539 | version "3.0.2" 1540 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1541 | dependencies: 1542 | assign-symbols "^1.0.0" 1543 | is-extendable "^1.0.1" 1544 | 1545 | extglob@^2.0.4: 1546 | version "2.0.4" 1547 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1548 | dependencies: 1549 | array-unique "^0.3.2" 1550 | define-property "^1.0.0" 1551 | expand-brackets "^2.1.4" 1552 | extend-shallow "^2.0.1" 1553 | fragment-cache "^0.2.1" 1554 | regex-not "^1.0.0" 1555 | snapdragon "^0.8.1" 1556 | to-regex "^3.0.1" 1557 | 1558 | fast-deep-equal@^2.0.1: 1559 | version "2.0.1" 1560 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 1561 | 1562 | fast-glob@^2.0.2: 1563 | version "2.2.3" 1564 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" 1565 | dependencies: 1566 | "@mrmlnc/readdir-enhanced" "^2.2.1" 1567 | "@nodelib/fs.stat" "^1.0.1" 1568 | glob-parent "^3.1.0" 1569 | is-glob "^4.0.0" 1570 | merge2 "^1.2.1" 1571 | micromatch "^3.1.10" 1572 | 1573 | fast-json-stable-stringify@^2.0.0: 1574 | version "2.0.0" 1575 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1576 | 1577 | fill-range@^4.0.0: 1578 | version "4.0.0" 1579 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1580 | dependencies: 1581 | extend-shallow "^2.0.1" 1582 | is-number "^3.0.0" 1583 | repeat-string "^1.6.1" 1584 | to-regex-range "^2.1.0" 1585 | 1586 | find-cache-dir@^1.0.0: 1587 | version "1.0.0" 1588 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" 1589 | dependencies: 1590 | commondir "^1.0.1" 1591 | make-dir "^1.0.0" 1592 | pkg-dir "^2.0.0" 1593 | 1594 | find-up@^2.1.0: 1595 | version "2.1.0" 1596 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1597 | dependencies: 1598 | locate-path "^2.0.0" 1599 | 1600 | find-up@^3.0.0: 1601 | version "3.0.0" 1602 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1603 | dependencies: 1604 | locate-path "^3.0.0" 1605 | 1606 | flush-write-stream@^1.0.0: 1607 | version "1.0.3" 1608 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" 1609 | dependencies: 1610 | inherits "^2.0.1" 1611 | readable-stream "^2.0.4" 1612 | 1613 | for-in@^1.0.2: 1614 | version "1.0.2" 1615 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1616 | 1617 | fragment-cache@^0.2.1: 1618 | version "0.2.1" 1619 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1620 | dependencies: 1621 | map-cache "^0.2.2" 1622 | 1623 | from2@^2.1.0: 1624 | version "2.3.0" 1625 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" 1626 | dependencies: 1627 | inherits "^2.0.1" 1628 | readable-stream "^2.0.0" 1629 | 1630 | fs-minipass@^1.2.5: 1631 | version "1.2.5" 1632 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1633 | dependencies: 1634 | minipass "^2.2.1" 1635 | 1636 | fs-write-stream-atomic@^1.0.8: 1637 | version "1.0.10" 1638 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" 1639 | dependencies: 1640 | graceful-fs "^4.1.2" 1641 | iferr "^0.1.5" 1642 | imurmurhash "^0.1.4" 1643 | readable-stream "1 || 2" 1644 | 1645 | fs.realpath@^1.0.0: 1646 | version "1.0.0" 1647 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1648 | 1649 | fsevents@^1.2.2: 1650 | version "1.2.4" 1651 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1652 | dependencies: 1653 | nan "^2.9.2" 1654 | node-pre-gyp "^0.10.0" 1655 | 1656 | function-bind@^1.1.1: 1657 | version "1.1.1" 1658 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1659 | 1660 | gauge@~2.7.3: 1661 | version "2.7.4" 1662 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1663 | dependencies: 1664 | aproba "^1.0.3" 1665 | console-control-strings "^1.0.0" 1666 | has-unicode "^2.0.0" 1667 | object-assign "^4.1.0" 1668 | signal-exit "^3.0.0" 1669 | string-width "^1.0.1" 1670 | strip-ansi "^3.0.1" 1671 | wide-align "^1.1.0" 1672 | 1673 | get-caller-file@^1.0.1: 1674 | version "1.0.3" 1675 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 1676 | 1677 | get-stream@^3.0.0: 1678 | version "3.0.0" 1679 | resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1680 | 1681 | get-value@^2.0.3, get-value@^2.0.6: 1682 | version "2.0.6" 1683 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1684 | 1685 | glob-parent@^3.1.0: 1686 | version "3.1.0" 1687 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1688 | dependencies: 1689 | is-glob "^3.1.0" 1690 | path-dirname "^1.0.0" 1691 | 1692 | glob-to-regexp@^0.3.0: 1693 | version "0.3.0" 1694 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" 1695 | 1696 | glob@^7.0.5, glob@^7.1.2: 1697 | version "7.1.3" 1698 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1699 | dependencies: 1700 | fs.realpath "^1.0.0" 1701 | inflight "^1.0.4" 1702 | inherits "2" 1703 | minimatch "^3.0.4" 1704 | once "^1.3.0" 1705 | path-is-absolute "^1.0.0" 1706 | 1707 | globals@^11.1.0: 1708 | version "11.8.0" 1709 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" 1710 | 1711 | globby@^8.0.1: 1712 | version "8.0.1" 1713 | resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" 1714 | dependencies: 1715 | array-union "^1.0.1" 1716 | dir-glob "^2.0.0" 1717 | fast-glob "^2.0.2" 1718 | glob "^7.1.2" 1719 | ignore "^3.3.5" 1720 | pify "^3.0.0" 1721 | slash "^1.0.0" 1722 | 1723 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1724 | version "4.1.11" 1725 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1726 | 1727 | has-flag@^3.0.0: 1728 | version "3.0.0" 1729 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1730 | 1731 | has-symbols@^1.0.0: 1732 | version "1.0.0" 1733 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 1734 | 1735 | has-unicode@^2.0.0: 1736 | version "2.0.1" 1737 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1738 | 1739 | has-value@^0.3.1: 1740 | version "0.3.1" 1741 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1742 | dependencies: 1743 | get-value "^2.0.3" 1744 | has-values "^0.1.4" 1745 | isobject "^2.0.0" 1746 | 1747 | has-value@^1.0.0: 1748 | version "1.0.0" 1749 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1750 | dependencies: 1751 | get-value "^2.0.6" 1752 | has-values "^1.0.0" 1753 | isobject "^3.0.0" 1754 | 1755 | has-values@^0.1.4: 1756 | version "0.1.4" 1757 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1758 | 1759 | has-values@^1.0.0: 1760 | version "1.0.0" 1761 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1762 | dependencies: 1763 | is-number "^3.0.0" 1764 | kind-of "^4.0.0" 1765 | 1766 | has@^1.0.1: 1767 | version "1.0.3" 1768 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1769 | dependencies: 1770 | function-bind "^1.1.1" 1771 | 1772 | hash-base@^3.0.0: 1773 | version "3.0.4" 1774 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 1775 | dependencies: 1776 | inherits "^2.0.1" 1777 | safe-buffer "^5.0.1" 1778 | 1779 | hash.js@^1.0.0, hash.js@^1.0.3: 1780 | version "1.1.5" 1781 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" 1782 | dependencies: 1783 | inherits "^2.0.3" 1784 | minimalistic-assert "^1.0.1" 1785 | 1786 | hmac-drbg@^1.0.0: 1787 | version "1.0.1" 1788 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1789 | dependencies: 1790 | hash.js "^1.0.3" 1791 | minimalistic-assert "^1.0.0" 1792 | minimalistic-crypto-utils "^1.0.1" 1793 | 1794 | https-browserify@^1.0.0: 1795 | version "1.0.0" 1796 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1797 | 1798 | iconv-lite@^0.4.4: 1799 | version "0.4.24" 1800 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1801 | dependencies: 1802 | safer-buffer ">= 2.1.2 < 3" 1803 | 1804 | ieee754@^1.1.4: 1805 | version "1.1.12" 1806 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" 1807 | 1808 | iferr@^0.1.5: 1809 | version "0.1.5" 1810 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" 1811 | 1812 | ignore-walk@^3.0.1: 1813 | version "3.0.1" 1814 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1815 | dependencies: 1816 | minimatch "^3.0.4" 1817 | 1818 | ignore@^3.3.5: 1819 | version "3.3.10" 1820 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" 1821 | 1822 | imurmurhash@^0.1.4: 1823 | version "0.1.4" 1824 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1825 | 1826 | indexof@0.0.1: 1827 | version "0.0.1" 1828 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1829 | 1830 | inflight@^1.0.4: 1831 | version "1.0.6" 1832 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1833 | dependencies: 1834 | once "^1.3.0" 1835 | wrappy "1" 1836 | 1837 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1838 | version "2.0.3" 1839 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1840 | 1841 | inherits@2.0.1: 1842 | version "2.0.1" 1843 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1844 | 1845 | ini@~1.3.0: 1846 | version "1.3.5" 1847 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1848 | 1849 | invariant@^2.2.2: 1850 | version "2.2.4" 1851 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1852 | dependencies: 1853 | loose-envify "^1.0.0" 1854 | 1855 | invert-kv@^2.0.0: 1856 | version "2.0.0" 1857 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 1858 | 1859 | is-accessor-descriptor@^0.1.6: 1860 | version "0.1.6" 1861 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1862 | dependencies: 1863 | kind-of "^3.0.2" 1864 | 1865 | is-accessor-descriptor@^1.0.0: 1866 | version "1.0.0" 1867 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1868 | dependencies: 1869 | kind-of "^6.0.0" 1870 | 1871 | is-binary-path@^1.0.0: 1872 | version "1.0.1" 1873 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1874 | dependencies: 1875 | binary-extensions "^1.0.0" 1876 | 1877 | is-buffer@^1.1.5: 1878 | version "1.1.6" 1879 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1880 | 1881 | is-callable@^1.1.3, is-callable@^1.1.4: 1882 | version "1.1.4" 1883 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 1884 | 1885 | is-data-descriptor@^0.1.4: 1886 | version "0.1.4" 1887 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1888 | dependencies: 1889 | kind-of "^3.0.2" 1890 | 1891 | is-data-descriptor@^1.0.0: 1892 | version "1.0.0" 1893 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1894 | dependencies: 1895 | kind-of "^6.0.0" 1896 | 1897 | is-date-object@^1.0.1: 1898 | version "1.0.1" 1899 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1900 | 1901 | is-descriptor@^0.1.0: 1902 | version "0.1.6" 1903 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1904 | dependencies: 1905 | is-accessor-descriptor "^0.1.6" 1906 | is-data-descriptor "^0.1.4" 1907 | kind-of "^5.0.0" 1908 | 1909 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1910 | version "1.0.2" 1911 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1912 | dependencies: 1913 | is-accessor-descriptor "^1.0.0" 1914 | is-data-descriptor "^1.0.0" 1915 | kind-of "^6.0.2" 1916 | 1917 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1918 | version "0.1.1" 1919 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1920 | 1921 | is-extendable@^1.0.1: 1922 | version "1.0.1" 1923 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1924 | dependencies: 1925 | is-plain-object "^2.0.4" 1926 | 1927 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1928 | version "2.1.1" 1929 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1930 | 1931 | is-fullwidth-code-point@^1.0.0: 1932 | version "1.0.0" 1933 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1934 | dependencies: 1935 | number-is-nan "^1.0.0" 1936 | 1937 | is-fullwidth-code-point@^2.0.0: 1938 | version "2.0.0" 1939 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1940 | 1941 | is-glob@^3.1.0: 1942 | version "3.1.0" 1943 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1944 | dependencies: 1945 | is-extglob "^2.1.0" 1946 | 1947 | is-glob@^4.0.0: 1948 | version "4.0.0" 1949 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" 1950 | dependencies: 1951 | is-extglob "^2.1.1" 1952 | 1953 | is-number@^3.0.0: 1954 | version "3.0.0" 1955 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1956 | dependencies: 1957 | kind-of "^3.0.2" 1958 | 1959 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1960 | version "2.0.4" 1961 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1962 | dependencies: 1963 | isobject "^3.0.1" 1964 | 1965 | is-regex@^1.0.4: 1966 | version "1.0.4" 1967 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1968 | dependencies: 1969 | has "^1.0.1" 1970 | 1971 | is-stream@^1.1.0: 1972 | version "1.1.0" 1973 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1974 | 1975 | is-symbol@^1.0.2: 1976 | version "1.0.2" 1977 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 1978 | dependencies: 1979 | has-symbols "^1.0.0" 1980 | 1981 | is-windows@^1.0.2: 1982 | version "1.0.2" 1983 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1984 | 1985 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1986 | version "1.0.0" 1987 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1988 | 1989 | isexe@^2.0.0: 1990 | version "2.0.0" 1991 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1992 | 1993 | isobject@^2.0.0: 1994 | version "2.1.0" 1995 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1996 | dependencies: 1997 | isarray "1.0.0" 1998 | 1999 | isobject@^3.0.0, isobject@^3.0.1: 2000 | version "3.0.1" 2001 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 2002 | 2003 | js-levenshtein@^1.1.3: 2004 | version "1.1.4" 2005 | resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" 2006 | 2007 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 2008 | version "4.0.0" 2009 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 2010 | 2011 | js-yaml@^3.10.0: 2012 | version "3.12.0" 2013 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 2014 | dependencies: 2015 | argparse "^1.0.7" 2016 | esprima "^4.0.0" 2017 | 2018 | jsesc@^2.5.1: 2019 | version "2.5.1" 2020 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" 2021 | 2022 | jsesc@~0.5.0: 2023 | version "0.5.0" 2024 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 2025 | 2026 | json-parse-better-errors@^1.0.2: 2027 | version "1.0.2" 2028 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 2029 | 2030 | json-schema-traverse@^0.4.1: 2031 | version "0.4.1" 2032 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 2033 | 2034 | json5@^0.5.0: 2035 | version "0.5.1" 2036 | resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2037 | 2038 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 2039 | version "3.2.2" 2040 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 2041 | dependencies: 2042 | is-buffer "^1.1.5" 2043 | 2044 | kind-of@^4.0.0: 2045 | version "4.0.0" 2046 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 2047 | dependencies: 2048 | is-buffer "^1.1.5" 2049 | 2050 | kind-of@^5.0.0: 2051 | version "5.1.0" 2052 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 2053 | 2054 | kind-of@^6.0.0, kind-of@^6.0.2: 2055 | version "6.0.2" 2056 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 2057 | 2058 | lcid@^2.0.0: 2059 | version "2.0.0" 2060 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 2061 | dependencies: 2062 | invert-kv "^2.0.0" 2063 | 2064 | loader-runner@^2.3.0: 2065 | version "2.3.1" 2066 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" 2067 | 2068 | loader-utils@^1.0.2, loader-utils@^1.1.0: 2069 | version "1.1.0" 2070 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" 2071 | dependencies: 2072 | big.js "^3.1.3" 2073 | emojis-list "^2.0.0" 2074 | json5 "^0.5.0" 2075 | 2076 | locate-path@^2.0.0: 2077 | version "2.0.0" 2078 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2079 | dependencies: 2080 | p-locate "^2.0.0" 2081 | path-exists "^3.0.0" 2082 | 2083 | locate-path@^3.0.0: 2084 | version "3.0.0" 2085 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 2086 | dependencies: 2087 | p-locate "^3.0.0" 2088 | path-exists "^3.0.0" 2089 | 2090 | lodash.debounce@^4.0.8: 2091 | version "4.0.8" 2092 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 2093 | 2094 | lodash@^4.17.10, lodash@^4.17.5: 2095 | version "4.17.11" 2096 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 2097 | 2098 | loose-envify@^1.0.0: 2099 | version "1.4.0" 2100 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 2101 | dependencies: 2102 | js-tokens "^3.0.0 || ^4.0.0" 2103 | 2104 | lru-cache@^4.1.1: 2105 | version "4.1.3" 2106 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 2107 | dependencies: 2108 | pseudomap "^1.0.2" 2109 | yallist "^2.1.2" 2110 | 2111 | make-dir@^1.0.0: 2112 | version "1.3.0" 2113 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 2114 | dependencies: 2115 | pify "^3.0.0" 2116 | 2117 | map-age-cleaner@^0.1.1: 2118 | version "0.1.2" 2119 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" 2120 | dependencies: 2121 | p-defer "^1.0.0" 2122 | 2123 | map-cache@^0.2.2: 2124 | version "0.2.2" 2125 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 2126 | 2127 | map-visit@^1.0.0: 2128 | version "1.0.0" 2129 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 2130 | dependencies: 2131 | object-visit "^1.0.0" 2132 | 2133 | md5.js@^1.3.4: 2134 | version "1.3.5" 2135 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 2136 | dependencies: 2137 | hash-base "^3.0.0" 2138 | inherits "^2.0.1" 2139 | safe-buffer "^5.1.2" 2140 | 2141 | mem@^4.0.0: 2142 | version "4.0.0" 2143 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" 2144 | dependencies: 2145 | map-age-cleaner "^0.1.1" 2146 | mimic-fn "^1.0.0" 2147 | p-is-promise "^1.1.0" 2148 | 2149 | memory-fs@^0.4.0, memory-fs@~0.4.1: 2150 | version "0.4.1" 2151 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 2152 | dependencies: 2153 | errno "^0.1.3" 2154 | readable-stream "^2.0.1" 2155 | 2156 | merge2@^1.2.1: 2157 | version "1.2.3" 2158 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" 2159 | 2160 | micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: 2161 | version "3.1.10" 2162 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2163 | dependencies: 2164 | arr-diff "^4.0.0" 2165 | array-unique "^0.3.2" 2166 | braces "^2.3.1" 2167 | define-property "^2.0.2" 2168 | extend-shallow "^3.0.2" 2169 | extglob "^2.0.4" 2170 | fragment-cache "^0.2.1" 2171 | kind-of "^6.0.2" 2172 | nanomatch "^1.2.9" 2173 | object.pick "^1.3.0" 2174 | regex-not "^1.0.0" 2175 | snapdragon "^0.8.1" 2176 | to-regex "^3.0.2" 2177 | 2178 | miller-rabin@^4.0.0: 2179 | version "4.0.1" 2180 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 2181 | dependencies: 2182 | bn.js "^4.0.0" 2183 | brorand "^1.0.1" 2184 | 2185 | mimic-fn@^1.0.0: 2186 | version "1.2.0" 2187 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 2188 | 2189 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 2190 | version "1.0.1" 2191 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 2192 | 2193 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 2194 | version "1.0.1" 2195 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 2196 | 2197 | minimatch@^3.0.4: 2198 | version "3.0.4" 2199 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2200 | dependencies: 2201 | brace-expansion "^1.1.7" 2202 | 2203 | minimist@0.0.8: 2204 | version "0.0.8" 2205 | resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2206 | 2207 | minimist@^1.2.0: 2208 | version "1.2.0" 2209 | resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2210 | 2211 | minipass@^2.2.1, minipass@^2.3.3: 2212 | version "2.3.4" 2213 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" 2214 | dependencies: 2215 | safe-buffer "^5.1.2" 2216 | yallist "^3.0.0" 2217 | 2218 | minizlib@^1.1.0: 2219 | version "1.1.1" 2220 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" 2221 | dependencies: 2222 | minipass "^2.2.1" 2223 | 2224 | mississippi@^2.0.0: 2225 | version "2.0.0" 2226 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" 2227 | dependencies: 2228 | concat-stream "^1.5.0" 2229 | duplexify "^3.4.2" 2230 | end-of-stream "^1.1.0" 2231 | flush-write-stream "^1.0.0" 2232 | from2 "^2.1.0" 2233 | parallel-transform "^1.1.0" 2234 | pump "^2.0.1" 2235 | pumpify "^1.3.3" 2236 | stream-each "^1.1.0" 2237 | through2 "^2.0.0" 2238 | 2239 | mixin-deep@^1.2.0: 2240 | version "1.3.1" 2241 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 2242 | dependencies: 2243 | for-in "^1.0.2" 2244 | is-extendable "^1.0.1" 2245 | 2246 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 2247 | version "0.5.1" 2248 | resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2249 | dependencies: 2250 | minimist "0.0.8" 2251 | 2252 | move-concurrently@^1.0.1: 2253 | version "1.0.1" 2254 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" 2255 | dependencies: 2256 | aproba "^1.1.1" 2257 | copy-concurrently "^1.0.0" 2258 | fs-write-stream-atomic "^1.0.8" 2259 | mkdirp "^0.5.1" 2260 | rimraf "^2.5.4" 2261 | run-queue "^1.0.3" 2262 | 2263 | ms@2.0.0: 2264 | version "2.0.0" 2265 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2266 | 2267 | ms@^2.1.1: 2268 | version "2.1.1" 2269 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 2270 | 2271 | nan@^2.9.2: 2272 | version "2.11.1" 2273 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" 2274 | 2275 | nanomatch@^1.2.9: 2276 | version "1.2.13" 2277 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 2278 | dependencies: 2279 | arr-diff "^4.0.0" 2280 | array-unique "^0.3.2" 2281 | define-property "^2.0.2" 2282 | extend-shallow "^3.0.2" 2283 | fragment-cache "^0.2.1" 2284 | is-windows "^1.0.2" 2285 | kind-of "^6.0.2" 2286 | object.pick "^1.3.0" 2287 | regex-not "^1.0.0" 2288 | snapdragon "^0.8.1" 2289 | to-regex "^3.0.1" 2290 | 2291 | needle@^2.2.1: 2292 | version "2.2.4" 2293 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" 2294 | dependencies: 2295 | debug "^2.1.2" 2296 | iconv-lite "^0.4.4" 2297 | sax "^1.2.4" 2298 | 2299 | neo-async@^2.5.0: 2300 | version "2.6.0" 2301 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" 2302 | 2303 | nice-try@^1.0.4: 2304 | version "1.0.5" 2305 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 2306 | 2307 | node-libs-browser@^2.0.0: 2308 | version "2.1.0" 2309 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" 2310 | dependencies: 2311 | assert "^1.1.1" 2312 | browserify-zlib "^0.2.0" 2313 | buffer "^4.3.0" 2314 | console-browserify "^1.1.0" 2315 | constants-browserify "^1.0.0" 2316 | crypto-browserify "^3.11.0" 2317 | domain-browser "^1.1.1" 2318 | events "^1.0.0" 2319 | https-browserify "^1.0.0" 2320 | os-browserify "^0.3.0" 2321 | path-browserify "0.0.0" 2322 | process "^0.11.10" 2323 | punycode "^1.2.4" 2324 | querystring-es3 "^0.2.0" 2325 | readable-stream "^2.3.3" 2326 | stream-browserify "^2.0.1" 2327 | stream-http "^2.7.2" 2328 | string_decoder "^1.0.0" 2329 | timers-browserify "^2.0.4" 2330 | tty-browserify "0.0.0" 2331 | url "^0.11.0" 2332 | util "^0.10.3" 2333 | vm-browserify "0.0.4" 2334 | 2335 | node-pre-gyp@^0.10.0: 2336 | version "0.10.3" 2337 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" 2338 | dependencies: 2339 | detect-libc "^1.0.2" 2340 | mkdirp "^0.5.1" 2341 | needle "^2.2.1" 2342 | nopt "^4.0.1" 2343 | npm-packlist "^1.1.6" 2344 | npmlog "^4.0.2" 2345 | rc "^1.2.7" 2346 | rimraf "^2.6.1" 2347 | semver "^5.3.0" 2348 | tar "^4" 2349 | 2350 | node-releases@^1.0.0-alpha.14: 2351 | version "1.0.0-alpha.14" 2352 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.14.tgz#da9e2780add4bbb59ad890af9e2018a1d9c0034b" 2353 | dependencies: 2354 | semver "^5.3.0" 2355 | 2356 | nopt@^4.0.1: 2357 | version "4.0.1" 2358 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2359 | dependencies: 2360 | abbrev "1" 2361 | osenv "^0.1.4" 2362 | 2363 | normalize-path@^2.1.1: 2364 | version "2.1.1" 2365 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2366 | dependencies: 2367 | remove-trailing-separator "^1.0.1" 2368 | 2369 | npm-bundled@^1.0.1: 2370 | version "1.0.5" 2371 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" 2372 | 2373 | npm-packlist@^1.1.6: 2374 | version "1.1.12" 2375 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" 2376 | dependencies: 2377 | ignore-walk "^3.0.1" 2378 | npm-bundled "^1.0.1" 2379 | 2380 | npm-run-path@^2.0.0: 2381 | version "2.0.2" 2382 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2383 | dependencies: 2384 | path-key "^2.0.0" 2385 | 2386 | npmlog@^4.0.2: 2387 | version "4.1.2" 2388 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2389 | dependencies: 2390 | are-we-there-yet "~1.1.2" 2391 | console-control-strings "~1.1.0" 2392 | gauge "~2.7.3" 2393 | set-blocking "~2.0.0" 2394 | 2395 | number-is-nan@^1.0.0: 2396 | version "1.0.1" 2397 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2398 | 2399 | object-assign@*, object-assign@^4.1.0: 2400 | version "4.1.1" 2401 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2402 | 2403 | object-copy@^0.1.0: 2404 | version "0.1.0" 2405 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2406 | dependencies: 2407 | copy-descriptor "^0.1.0" 2408 | define-property "^0.2.5" 2409 | kind-of "^3.0.3" 2410 | 2411 | object-keys@^1.0.12: 2412 | version "1.0.12" 2413 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 2414 | 2415 | object-visit@^1.0.0: 2416 | version "1.0.1" 2417 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2418 | dependencies: 2419 | isobject "^3.0.0" 2420 | 2421 | object.getownpropertydescriptors@^2.0.3: 2422 | version "2.0.3" 2423 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 2424 | dependencies: 2425 | define-properties "^1.1.2" 2426 | es-abstract "^1.5.1" 2427 | 2428 | object.pick@^1.3.0: 2429 | version "1.3.0" 2430 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2431 | dependencies: 2432 | isobject "^3.0.1" 2433 | 2434 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2435 | version "1.4.0" 2436 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2437 | dependencies: 2438 | wrappy "1" 2439 | 2440 | os-browserify@^0.3.0: 2441 | version "0.3.0" 2442 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 2443 | 2444 | os-homedir@^1.0.0: 2445 | version "1.0.2" 2446 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2447 | 2448 | os-locale@^3.0.0: 2449 | version "3.0.1" 2450 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" 2451 | dependencies: 2452 | execa "^0.10.0" 2453 | lcid "^2.0.0" 2454 | mem "^4.0.0" 2455 | 2456 | os-tmpdir@^1.0.0: 2457 | version "1.0.2" 2458 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2459 | 2460 | osenv@^0.1.4: 2461 | version "0.1.5" 2462 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2463 | dependencies: 2464 | os-homedir "^1.0.0" 2465 | os-tmpdir "^1.0.0" 2466 | 2467 | p-defer@^1.0.0: 2468 | version "1.0.0" 2469 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 2470 | 2471 | p-finally@^1.0.0: 2472 | version "1.0.0" 2473 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2474 | 2475 | p-is-promise@^1.1.0: 2476 | version "1.1.0" 2477 | resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" 2478 | 2479 | p-limit@^1.1.0: 2480 | version "1.3.0" 2481 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2482 | dependencies: 2483 | p-try "^1.0.0" 2484 | 2485 | p-limit@^2.0.0: 2486 | version "2.0.0" 2487 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" 2488 | dependencies: 2489 | p-try "^2.0.0" 2490 | 2491 | p-locate@^2.0.0: 2492 | version "2.0.0" 2493 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2494 | dependencies: 2495 | p-limit "^1.1.0" 2496 | 2497 | p-locate@^3.0.0: 2498 | version "3.0.0" 2499 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2500 | dependencies: 2501 | p-limit "^2.0.0" 2502 | 2503 | p-try@^1.0.0: 2504 | version "1.0.0" 2505 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2506 | 2507 | p-try@^2.0.0: 2508 | version "2.0.0" 2509 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" 2510 | 2511 | pako@~1.0.5: 2512 | version "1.0.6" 2513 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" 2514 | 2515 | parallel-transform@^1.1.0: 2516 | version "1.1.0" 2517 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" 2518 | dependencies: 2519 | cyclist "~0.2.2" 2520 | inherits "^2.0.3" 2521 | readable-stream "^2.1.5" 2522 | 2523 | parse-asn1@^5.0.0: 2524 | version "5.1.1" 2525 | resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" 2526 | dependencies: 2527 | asn1.js "^4.0.0" 2528 | browserify-aes "^1.0.0" 2529 | create-hash "^1.1.0" 2530 | evp_bytestokey "^1.0.0" 2531 | pbkdf2 "^3.0.3" 2532 | 2533 | parse-author@2.0.0: 2534 | version "2.0.0" 2535 | resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" 2536 | dependencies: 2537 | author-regex "^1.0.0" 2538 | 2539 | pascalcase@^0.1.1: 2540 | version "0.1.1" 2541 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2542 | 2543 | path-browserify@0.0.0: 2544 | version "0.0.0" 2545 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 2546 | 2547 | path-dirname@^1.0.0: 2548 | version "1.0.2" 2549 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2550 | 2551 | path-exists@^3.0.0: 2552 | version "3.0.0" 2553 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2554 | 2555 | path-is-absolute@^1.0.0: 2556 | version "1.0.1" 2557 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2558 | 2559 | path-key@^2.0.0, path-key@^2.0.1: 2560 | version "2.0.1" 2561 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2562 | 2563 | path-parse@^1.0.5: 2564 | version "1.0.6" 2565 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2566 | 2567 | path-type@^3.0.0: 2568 | version "3.0.0" 2569 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 2570 | dependencies: 2571 | pify "^3.0.0" 2572 | 2573 | pbkdf2@^3.0.3: 2574 | version "3.0.17" 2575 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 2576 | dependencies: 2577 | create-hash "^1.1.2" 2578 | create-hmac "^1.1.4" 2579 | ripemd160 "^2.0.1" 2580 | safe-buffer "^5.0.1" 2581 | sha.js "^2.4.8" 2582 | 2583 | pify@^3.0.0: 2584 | version "3.0.0" 2585 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2586 | 2587 | pkg-dir@^2.0.0: 2588 | version "2.0.0" 2589 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2590 | dependencies: 2591 | find-up "^2.1.0" 2592 | 2593 | posix-character-classes@^0.1.0: 2594 | version "0.1.1" 2595 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2596 | 2597 | private@^0.1.6: 2598 | version "0.1.8" 2599 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 2600 | 2601 | process-nextick-args@~2.0.0: 2602 | version "2.0.0" 2603 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2604 | 2605 | process@^0.11.10: 2606 | version "0.11.10" 2607 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2608 | 2609 | promise-inflight@^1.0.1: 2610 | version "1.0.1" 2611 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 2612 | 2613 | promise-polyfill@^8.1.0: 2614 | version "8.1.0" 2615 | resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.0.tgz#30059da54d1358ce905ac581f287e184aedf995d" 2616 | 2617 | prr@~1.0.1: 2618 | version "1.0.1" 2619 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 2620 | 2621 | pseudomap@^1.0.2: 2622 | version "1.0.2" 2623 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2624 | 2625 | public-encrypt@^4.0.0: 2626 | version "4.0.3" 2627 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 2628 | dependencies: 2629 | bn.js "^4.1.0" 2630 | browserify-rsa "^4.0.0" 2631 | create-hash "^1.1.0" 2632 | parse-asn1 "^5.0.0" 2633 | randombytes "^2.0.1" 2634 | safe-buffer "^5.1.2" 2635 | 2636 | pump@^2.0.0, pump@^2.0.1: 2637 | version "2.0.1" 2638 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 2639 | dependencies: 2640 | end-of-stream "^1.1.0" 2641 | once "^1.3.1" 2642 | 2643 | pumpify@^1.3.3: 2644 | version "1.5.1" 2645 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" 2646 | dependencies: 2647 | duplexify "^3.6.0" 2648 | inherits "^2.0.3" 2649 | pump "^2.0.0" 2650 | 2651 | punycode@1.3.2: 2652 | version "1.3.2" 2653 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2654 | 2655 | punycode@^1.2.4: 2656 | version "1.4.1" 2657 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2658 | 2659 | punycode@^2.1.0: 2660 | version "2.1.1" 2661 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2662 | 2663 | querystring-es3@^0.2.0: 2664 | version "0.2.1" 2665 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2666 | 2667 | querystring@0.2.0: 2668 | version "0.2.0" 2669 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2670 | 2671 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2672 | version "2.0.6" 2673 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" 2674 | dependencies: 2675 | safe-buffer "^5.1.0" 2676 | 2677 | randomfill@^1.0.3: 2678 | version "1.0.4" 2679 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2680 | dependencies: 2681 | randombytes "^2.0.5" 2682 | safe-buffer "^5.1.0" 2683 | 2684 | rc@^1.2.7: 2685 | version "1.2.8" 2686 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2687 | dependencies: 2688 | deep-extend "^0.6.0" 2689 | ini "~1.3.0" 2690 | minimist "^1.2.0" 2691 | strip-json-comments "~2.0.1" 2692 | 2693 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: 2694 | version "2.3.6" 2695 | resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2696 | dependencies: 2697 | core-util-is "~1.0.0" 2698 | inherits "~2.0.3" 2699 | isarray "~1.0.0" 2700 | process-nextick-args "~2.0.0" 2701 | safe-buffer "~5.1.1" 2702 | string_decoder "~1.1.1" 2703 | util-deprecate "~1.0.1" 2704 | 2705 | readdirp@^2.0.0: 2706 | version "2.2.1" 2707 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2708 | dependencies: 2709 | graceful-fs "^4.1.11" 2710 | micromatch "^3.1.10" 2711 | readable-stream "^2.0.2" 2712 | 2713 | regenerate-unicode-properties@^7.0.0: 2714 | version "7.0.0" 2715 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" 2716 | dependencies: 2717 | regenerate "^1.4.0" 2718 | 2719 | regenerate@^1.4.0: 2720 | version "1.4.0" 2721 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 2722 | 2723 | regenerator-transform@^0.13.3: 2724 | version "0.13.3" 2725 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" 2726 | dependencies: 2727 | private "^0.1.6" 2728 | 2729 | regex-not@^1.0.0, regex-not@^1.0.2: 2730 | version "1.0.2" 2731 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2732 | dependencies: 2733 | extend-shallow "^3.0.2" 2734 | safe-regex "^1.1.0" 2735 | 2736 | regexpu-core@^4.1.3, regexpu-core@^4.2.0: 2737 | version "4.2.0" 2738 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" 2739 | dependencies: 2740 | regenerate "^1.4.0" 2741 | regenerate-unicode-properties "^7.0.0" 2742 | regjsgen "^0.4.0" 2743 | regjsparser "^0.3.0" 2744 | unicode-match-property-ecmascript "^1.0.4" 2745 | unicode-match-property-value-ecmascript "^1.0.2" 2746 | 2747 | regjsgen@^0.4.0: 2748 | version "0.4.0" 2749 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" 2750 | 2751 | regjsparser@^0.3.0: 2752 | version "0.3.0" 2753 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" 2754 | dependencies: 2755 | jsesc "~0.5.0" 2756 | 2757 | remove-trailing-separator@^1.0.1: 2758 | version "1.1.0" 2759 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2760 | 2761 | repeat-element@^1.1.2: 2762 | version "1.1.3" 2763 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2764 | 2765 | repeat-string@^1.6.1: 2766 | version "1.6.1" 2767 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2768 | 2769 | require-directory@^2.1.1: 2770 | version "2.1.1" 2771 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2772 | 2773 | require-main-filename@^1.0.1: 2774 | version "1.0.1" 2775 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2776 | 2777 | resolve-url@^0.2.1: 2778 | version "0.2.1" 2779 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2780 | 2781 | resolve@^1.3.2: 2782 | version "1.8.1" 2783 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 2784 | dependencies: 2785 | path-parse "^1.0.5" 2786 | 2787 | ret@~0.1.10: 2788 | version "0.1.15" 2789 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2790 | 2791 | rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: 2792 | version "2.6.2" 2793 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 2794 | dependencies: 2795 | glob "^7.0.5" 2796 | 2797 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2798 | version "2.0.2" 2799 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2800 | dependencies: 2801 | hash-base "^3.0.0" 2802 | inherits "^2.0.1" 2803 | 2804 | run-queue@^1.0.0, run-queue@^1.0.3: 2805 | version "1.0.3" 2806 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" 2807 | dependencies: 2808 | aproba "^1.1.1" 2809 | 2810 | run-sketch-plugin@^1.0.0: 2811 | version "1.0.3" 2812 | resolved "https://registry.yarnpkg.com/run-sketch-plugin/-/run-sketch-plugin-1.0.3.tgz#2eb6112d2b0870adfb03fce8310ade76d7fd8f52" 2813 | dependencies: 2814 | coscript "^1.0.0" 2815 | 2816 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2817 | version "5.1.2" 2818 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2819 | 2820 | safe-regex@^1.1.0: 2821 | version "1.1.0" 2822 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2823 | dependencies: 2824 | ret "~0.1.10" 2825 | 2826 | "safer-buffer@>= 2.1.2 < 3": 2827 | version "2.1.2" 2828 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2829 | 2830 | sax@^1.2.4: 2831 | version "1.2.4" 2832 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2833 | 2834 | schema-utils@^0.4.4, schema-utils@^0.4.5: 2835 | version "0.4.7" 2836 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" 2837 | dependencies: 2838 | ajv "^6.1.0" 2839 | ajv-keywords "^3.1.0" 2840 | 2841 | semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: 2842 | version "5.6.0" 2843 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 2844 | 2845 | serialize-javascript@^1.4.0: 2846 | version "1.5.0" 2847 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" 2848 | 2849 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2850 | version "2.0.0" 2851 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2852 | 2853 | set-value@^0.4.3: 2854 | version "0.4.3" 2855 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2856 | dependencies: 2857 | extend-shallow "^2.0.1" 2858 | is-extendable "^0.1.1" 2859 | is-plain-object "^2.0.1" 2860 | to-object-path "^0.3.0" 2861 | 2862 | set-value@^2.0.0: 2863 | version "2.0.0" 2864 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2865 | dependencies: 2866 | extend-shallow "^2.0.1" 2867 | is-extendable "^0.1.1" 2868 | is-plain-object "^2.0.3" 2869 | split-string "^3.0.1" 2870 | 2871 | setimmediate@^1.0.4: 2872 | version "1.0.5" 2873 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2874 | 2875 | sha.js@^2.4.0, sha.js@^2.4.8: 2876 | version "2.4.11" 2877 | resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2878 | dependencies: 2879 | inherits "^2.0.1" 2880 | safe-buffer "^5.0.1" 2881 | 2882 | shebang-command@^1.2.0: 2883 | version "1.2.0" 2884 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2885 | dependencies: 2886 | shebang-regex "^1.0.0" 2887 | 2888 | shebang-regex@^1.0.0: 2889 | version "1.0.0" 2890 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2891 | 2892 | signal-exit@^3.0.0: 2893 | version "3.0.2" 2894 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2895 | 2896 | sketch-polyfill-fetch@^0.3.6: 2897 | version "0.3.7" 2898 | resolved "https://registry.yarnpkg.com/sketch-polyfill-fetch/-/sketch-polyfill-fetch-0.3.7.tgz#3433ff740cccb5efb60447244213e108ab266cb7" 2899 | dependencies: 2900 | cocoascript-class "^0.1.2" 2901 | 2902 | slash@^1.0.0: 2903 | version "1.0.0" 2904 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 2905 | 2906 | snapdragon-node@^2.0.1: 2907 | version "2.1.1" 2908 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2909 | dependencies: 2910 | define-property "^1.0.0" 2911 | isobject "^3.0.0" 2912 | snapdragon-util "^3.0.1" 2913 | 2914 | snapdragon-util@^3.0.1: 2915 | version "3.0.1" 2916 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2917 | dependencies: 2918 | kind-of "^3.2.0" 2919 | 2920 | snapdragon@^0.8.1: 2921 | version "0.8.2" 2922 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2923 | dependencies: 2924 | base "^0.11.1" 2925 | debug "^2.2.0" 2926 | define-property "^0.2.5" 2927 | extend-shallow "^2.0.1" 2928 | map-cache "^0.2.2" 2929 | source-map "^0.5.6" 2930 | source-map-resolve "^0.5.0" 2931 | use "^3.1.0" 2932 | 2933 | source-list-map@^2.0.0: 2934 | version "2.0.1" 2935 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 2936 | 2937 | source-map-resolve@^0.5.0: 2938 | version "0.5.2" 2939 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2940 | dependencies: 2941 | atob "^2.1.1" 2942 | decode-uri-component "^0.2.0" 2943 | resolve-url "^0.2.1" 2944 | source-map-url "^0.4.0" 2945 | urix "^0.1.0" 2946 | 2947 | source-map-url@^0.4.0: 2948 | version "0.4.0" 2949 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2950 | 2951 | source-map@^0.5.0, source-map@^0.5.6: 2952 | version "0.5.7" 2953 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2954 | 2955 | source-map@^0.6.1, source-map@~0.6.1: 2956 | version "0.6.1" 2957 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2958 | 2959 | split-string@^3.0.1, split-string@^3.0.2: 2960 | version "3.1.0" 2961 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2962 | dependencies: 2963 | extend-shallow "^3.0.0" 2964 | 2965 | sprintf-js@~1.0.2: 2966 | version "1.0.3" 2967 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2968 | 2969 | ssri@^5.2.4: 2970 | version "5.3.0" 2971 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" 2972 | dependencies: 2973 | safe-buffer "^5.1.1" 2974 | 2975 | static-extend@^0.1.1: 2976 | version "0.1.2" 2977 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2978 | dependencies: 2979 | define-property "^0.2.5" 2980 | object-copy "^0.1.0" 2981 | 2982 | stream-browserify@^2.0.1: 2983 | version "2.0.1" 2984 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 2985 | dependencies: 2986 | inherits "~2.0.1" 2987 | readable-stream "^2.0.2" 2988 | 2989 | stream-each@^1.1.0: 2990 | version "1.2.3" 2991 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" 2992 | dependencies: 2993 | end-of-stream "^1.1.0" 2994 | stream-shift "^1.0.0" 2995 | 2996 | stream-http@^2.7.2: 2997 | version "2.8.3" 2998 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 2999 | dependencies: 3000 | builtin-status-codes "^3.0.0" 3001 | inherits "^2.0.1" 3002 | readable-stream "^2.3.6" 3003 | to-arraybuffer "^1.0.0" 3004 | xtend "^4.0.0" 3005 | 3006 | stream-shift@^1.0.0: 3007 | version "1.0.0" 3008 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 3009 | 3010 | string-width@^1.0.1: 3011 | version "1.0.2" 3012 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3013 | dependencies: 3014 | code-point-at "^1.0.0" 3015 | is-fullwidth-code-point "^1.0.0" 3016 | strip-ansi "^3.0.0" 3017 | 3018 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 3019 | version "2.1.1" 3020 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3021 | dependencies: 3022 | is-fullwidth-code-point "^2.0.0" 3023 | strip-ansi "^4.0.0" 3024 | 3025 | string_decoder@^1.0.0, string_decoder@~1.1.1: 3026 | version "1.1.1" 3027 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3028 | dependencies: 3029 | safe-buffer "~5.1.0" 3030 | 3031 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3032 | version "3.0.1" 3033 | resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3034 | dependencies: 3035 | ansi-regex "^2.0.0" 3036 | 3037 | strip-ansi@^4.0.0: 3038 | version "4.0.0" 3039 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3040 | dependencies: 3041 | ansi-regex "^3.0.0" 3042 | 3043 | strip-eof@^1.0.0: 3044 | version "1.0.0" 3045 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3046 | 3047 | strip-json-comments@~2.0.1: 3048 | version "2.0.1" 3049 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3050 | 3051 | supports-color@^5.3.0: 3052 | version "5.5.0" 3053 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 3054 | dependencies: 3055 | has-flag "^3.0.0" 3056 | 3057 | tapable@^1.0.0, tapable@^1.1.0: 3058 | version "1.1.0" 3059 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" 3060 | 3061 | tar@^4: 3062 | version "4.4.6" 3063 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" 3064 | dependencies: 3065 | chownr "^1.0.1" 3066 | fs-minipass "^1.2.5" 3067 | minipass "^2.3.3" 3068 | minizlib "^1.1.0" 3069 | mkdirp "^0.5.0" 3070 | safe-buffer "^5.1.2" 3071 | yallist "^3.0.2" 3072 | 3073 | through2@^2.0.0: 3074 | version "2.0.3" 3075 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 3076 | dependencies: 3077 | readable-stream "^2.1.5" 3078 | xtend "~4.0.1" 3079 | 3080 | timers-browserify@^2.0.4: 3081 | version "2.0.10" 3082 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" 3083 | dependencies: 3084 | setimmediate "^1.0.4" 3085 | 3086 | to-arraybuffer@^1.0.0: 3087 | version "1.0.1" 3088 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 3089 | 3090 | to-fast-properties@^2.0.0: 3091 | version "2.0.0" 3092 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 3093 | 3094 | to-object-path@^0.3.0: 3095 | version "0.3.0" 3096 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3097 | dependencies: 3098 | kind-of "^3.0.2" 3099 | 3100 | to-regex-range@^2.1.0: 3101 | version "2.1.1" 3102 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3103 | dependencies: 3104 | is-number "^3.0.0" 3105 | repeat-string "^1.6.1" 3106 | 3107 | to-regex@^3.0.1, to-regex@^3.0.2: 3108 | version "3.0.2" 3109 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3110 | dependencies: 3111 | define-property "^2.0.2" 3112 | extend-shallow "^3.0.2" 3113 | regex-not "^1.0.2" 3114 | safe-regex "^1.1.0" 3115 | 3116 | trim-right@^1.0.1: 3117 | version "1.0.1" 3118 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3119 | 3120 | tslib@^1.9.0: 3121 | version "1.9.3" 3122 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 3123 | 3124 | tty-browserify@0.0.0: 3125 | version "0.0.0" 3126 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 3127 | 3128 | typedarray@^0.0.6: 3129 | version "0.0.6" 3130 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3131 | 3132 | uglify-es@^3.3.4: 3133 | version "3.3.9" 3134 | resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" 3135 | dependencies: 3136 | commander "~2.13.0" 3137 | source-map "~0.6.1" 3138 | 3139 | uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.3.0: 3140 | version "1.3.0" 3141 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" 3142 | dependencies: 3143 | cacache "^10.0.4" 3144 | find-cache-dir "^1.0.0" 3145 | schema-utils "^0.4.5" 3146 | serialize-javascript "^1.4.0" 3147 | source-map "^0.6.1" 3148 | uglify-es "^3.3.4" 3149 | webpack-sources "^1.1.0" 3150 | worker-farm "^1.5.2" 3151 | 3152 | unicode-canonical-property-names-ecmascript@^1.0.4: 3153 | version "1.0.4" 3154 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" 3155 | 3156 | unicode-match-property-ecmascript@^1.0.4: 3157 | version "1.0.4" 3158 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" 3159 | dependencies: 3160 | unicode-canonical-property-names-ecmascript "^1.0.4" 3161 | unicode-property-aliases-ecmascript "^1.0.4" 3162 | 3163 | unicode-match-property-value-ecmascript@^1.0.2: 3164 | version "1.0.2" 3165 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" 3166 | 3167 | unicode-property-aliases-ecmascript@^1.0.4: 3168 | version "1.0.4" 3169 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" 3170 | 3171 | union-value@^1.0.0: 3172 | version "1.0.0" 3173 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 3174 | dependencies: 3175 | arr-union "^3.1.0" 3176 | get-value "^2.0.6" 3177 | is-extendable "^0.1.1" 3178 | set-value "^0.4.3" 3179 | 3180 | unique-filename@^1.1.0: 3181 | version "1.1.1" 3182 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" 3183 | dependencies: 3184 | unique-slug "^2.0.0" 3185 | 3186 | unique-slug@^2.0.0: 3187 | version "2.0.1" 3188 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" 3189 | dependencies: 3190 | imurmurhash "^0.1.4" 3191 | 3192 | unset-value@^1.0.0: 3193 | version "1.0.0" 3194 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3195 | dependencies: 3196 | has-value "^0.3.1" 3197 | isobject "^3.0.0" 3198 | 3199 | upath@^1.0.5: 3200 | version "1.1.0" 3201 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" 3202 | 3203 | uri-js@^4.2.2: 3204 | version "4.2.2" 3205 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 3206 | dependencies: 3207 | punycode "^2.1.0" 3208 | 3209 | urix@^0.1.0: 3210 | version "0.1.0" 3211 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3212 | 3213 | url@^0.11.0: 3214 | version "0.11.0" 3215 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 3216 | dependencies: 3217 | punycode "1.3.2" 3218 | querystring "0.2.0" 3219 | 3220 | use@^3.1.0: 3221 | version "3.1.1" 3222 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 3223 | 3224 | util-deprecate@~1.0.1: 3225 | version "1.0.2" 3226 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3227 | 3228 | util.promisify@^1.0.0: 3229 | version "1.0.0" 3230 | resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" 3231 | dependencies: 3232 | define-properties "^1.1.2" 3233 | object.getownpropertydescriptors "^2.0.3" 3234 | 3235 | util@0.10.3: 3236 | version "0.10.3" 3237 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 3238 | dependencies: 3239 | inherits "2.0.1" 3240 | 3241 | util@^0.10.3: 3242 | version "0.10.4" 3243 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" 3244 | dependencies: 3245 | inherits "2.0.3" 3246 | 3247 | vm-browserify@0.0.4: 3248 | version "0.0.4" 3249 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 3250 | dependencies: 3251 | indexof "0.0.1" 3252 | 3253 | watchpack@^1.5.0: 3254 | version "1.6.0" 3255 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 3256 | dependencies: 3257 | chokidar "^2.0.2" 3258 | graceful-fs "^4.1.2" 3259 | neo-async "^2.5.0" 3260 | 3261 | webpack-merge@^4.1.4: 3262 | version "4.1.4" 3263 | resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b" 3264 | dependencies: 3265 | lodash "^4.17.5" 3266 | 3267 | webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0: 3268 | version "1.3.0" 3269 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" 3270 | dependencies: 3271 | source-list-map "^2.0.0" 3272 | source-map "~0.6.1" 3273 | 3274 | webpack@^4.19.0: 3275 | version "4.20.2" 3276 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.20.2.tgz#89f6486b6bb276a91b0823453d377501fc625b5a" 3277 | dependencies: 3278 | "@webassemblyjs/ast" "1.7.8" 3279 | "@webassemblyjs/helper-module-context" "1.7.8" 3280 | "@webassemblyjs/wasm-edit" "1.7.8" 3281 | "@webassemblyjs/wasm-parser" "1.7.8" 3282 | acorn "^5.6.2" 3283 | acorn-dynamic-import "^3.0.0" 3284 | ajv "^6.1.0" 3285 | ajv-keywords "^3.1.0" 3286 | chrome-trace-event "^1.0.0" 3287 | enhanced-resolve "^4.1.0" 3288 | eslint-scope "^4.0.0" 3289 | json-parse-better-errors "^1.0.2" 3290 | loader-runner "^2.3.0" 3291 | loader-utils "^1.1.0" 3292 | memory-fs "~0.4.1" 3293 | micromatch "^3.1.8" 3294 | mkdirp "~0.5.0" 3295 | neo-async "^2.5.0" 3296 | node-libs-browser "^2.0.0" 3297 | schema-utils "^0.4.4" 3298 | tapable "^1.1.0" 3299 | uglifyjs-webpack-plugin "^1.2.4" 3300 | watchpack "^1.5.0" 3301 | webpack-sources "^1.3.0" 3302 | 3303 | which-module@^2.0.0: 3304 | version "2.0.0" 3305 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3306 | 3307 | which@^1.2.9: 3308 | version "1.3.1" 3309 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3310 | dependencies: 3311 | isexe "^2.0.0" 3312 | 3313 | wide-align@^1.1.0: 3314 | version "1.1.3" 3315 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3316 | dependencies: 3317 | string-width "^1.0.2 || 2" 3318 | 3319 | worker-farm@^1.5.2: 3320 | version "1.6.0" 3321 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" 3322 | dependencies: 3323 | errno "~0.1.7" 3324 | 3325 | wrap-ansi@^2.0.0: 3326 | version "2.1.0" 3327 | resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3328 | dependencies: 3329 | string-width "^1.0.1" 3330 | strip-ansi "^3.0.1" 3331 | 3332 | wrappy@1: 3333 | version "1.0.2" 3334 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3335 | 3336 | xregexp@4.0.0: 3337 | version "4.0.0" 3338 | resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" 3339 | 3340 | xtend@^4.0.0, xtend@~4.0.1: 3341 | version "4.0.1" 3342 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3343 | 3344 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 3345 | version "4.0.0" 3346 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3347 | 3348 | yallist@^2.1.2: 3349 | version "2.1.2" 3350 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3351 | 3352 | yallist@^3.0.0, yallist@^3.0.2: 3353 | version "3.0.2" 3354 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 3355 | 3356 | yargs-parser@^10.1.0: 3357 | version "10.1.0" 3358 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 3359 | dependencies: 3360 | camelcase "^4.1.0" 3361 | 3362 | yargs@^12.0.2: 3363 | version "12.0.2" 3364 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" 3365 | dependencies: 3366 | cliui "^4.0.0" 3367 | decamelize "^2.0.0" 3368 | find-up "^3.0.0" 3369 | get-caller-file "^1.0.1" 3370 | os-locale "^3.0.0" 3371 | require-directory "^2.1.1" 3372 | require-main-filename "^1.0.1" 3373 | set-blocking "^2.0.0" 3374 | string-width "^2.0.0" 3375 | which-module "^2.0.0" 3376 | y18n "^3.2.1 || ^4.0.0" 3377 | yargs-parser "^10.1.0" 3378 | 3379 | yesno@0.0.1, yesno@^0.0.1: 3380 | version "0.0.1" 3381 | resolved "https://registry.yarnpkg.com/yesno/-/yesno-0.0.1.tgz#ffbc04ff3d6f99dad24f7463134e9b92ae41bef6" 3382 | --------------------------------------------------------------------------------