active_storage_drag_and_drop 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,7 @@
1
- import { dispatchEvent } from "./helpers"
2
- import { DragAndDropUploadController } from "./direct_upload_controller"
1
+ import { dispatchEvent, defaultErrorEventUI, defaultEndEventUI, fileUploadUIPainter } from './helpers'
2
+ import { DragAndDropUploadController } from './direct_upload_controller'
3
3
  export const uploaders = []
4
4
 
5
- const eventFamily = 'dnd-upload'
6
-
7
5
  class ValidationError extends Error {
8
6
  constructor (...args) {
9
7
  super(...args)
@@ -12,57 +10,85 @@ class ValidationError extends Error {
12
10
  }
13
11
 
14
12
  export class UploadQueueProcessor {
15
- constructor(form) {
13
+ constructor (form) {
16
14
  this.form = form
17
15
  this.current_uploaders = []
18
16
  uploaders.forEach(uploader => {
19
- if( form == uploader.form ) {
17
+ if (form === uploader.form) {
20
18
  this.current_uploaders.push(uploader)
21
19
  }
22
20
  })
23
21
  }
24
22
 
25
- start(callback) {
23
+ start (callback) {
26
24
  const startNextUploader = () => {
27
25
  const nextUploader = this.current_uploaders.shift()
28
26
  if (nextUploader) {
29
27
  nextUploader.start(error => {
30
28
  if (error) {
29
+ this.dispatchError(error)
31
30
  callback(error)
32
- this.dispatch("end")
33
31
  } else {
34
32
  startNextUploader()
35
33
  }
36
34
  })
37
35
  } else {
38
36
  callback()
39
- this.dispatch("end")
37
+ let event = this.dispatch('end')
38
+ defaultEndEventUI(event)
40
39
  }
41
40
  }
42
41
 
43
- this.dispatch("start")
42
+ this.dispatch('start')
44
43
  startNextUploader()
45
44
  }
46
45
 
47
- dispatch(name, detail = {}) {
48
- return dispatchEvent(this.form, `${eventFamily}:${name}`, { detail })
46
+ dispatch (name, detail = {}) {
47
+ return dispatchEvent(this.form, `dnd-uploads:${name}`, { detail })
48
+ }
49
+
50
+ dispatchError (error) {
51
+ const event = this.dispatch('error', { error })
52
+ defaultErrorEventUI(event)
49
53
  }
50
54
  }
51
55
 
52
- export function createUploader(input, file) {
56
+ export function createUploader (input, file) {
53
57
  // your form needs the file_field direct_upload: true, which
54
58
  // provides data-direct-upload-url
55
59
  const error = validateUploader(input, file)
56
60
  if (error) {
57
- const event = dispatchEvent(input, `${eventFamily}:error`, { error })
58
- if (!event.defaultPrevented) {
59
- alert(error)
61
+ let detail = {
62
+ id: null,
63
+ file: file,
64
+ iconContainer: input.dataset.iconContainerId,
65
+ error: error
60
66
  }
61
- return event
67
+ return dispatchErrorWithoutAttachment(input, detail)
62
68
  }
69
+ if (!input.multiple) { removeAttachedFiles(input) }
63
70
  uploaders.push(new DragAndDropUploadController(input, file))
64
71
  }
65
72
 
73
+ function removeAttachedFiles (input) {
74
+ input.closest('label.asdndzone').querySelectorAll('[data-direct-upload-id]').forEach(element => {
75
+ element.remove()
76
+ })
77
+ uploaders.splice(0, uploaders.length)
78
+ }
79
+
80
+ function dispatchErrorWithoutAttachment (input, detail) {
81
+ let event = dispatchEvent(input, 'dnd-upload:error', { detail })
82
+ if (!event.defaultPrevented) {
83
+ const { error, iconContainer, file } = event.detail
84
+ fileUploadUIPainter(iconContainer, 'error', file.name, true)
85
+ const element = document.getElementById(`direct-upload-error`)
86
+ element.classList.add('direct-upload--error')
87
+ element.setAttribute('title', error)
88
+ }
89
+ return event
90
+ }
91
+
66
92
  function validateUploader (input, file) {
67
93
  const sizeLimit = input.getAttribute('size_limit')
68
94
  if (input.accept !== '' && !input.accept.split(', ').includes(file.type)) {
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'active_storage_drag_and_drop'
@@ -1,5 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_storage_drag_and_drop/version'
2
- require 'active_storage_drag_and_drop/rails' if defined?(Rails)
4
+ require 'active_storage_drag_and_drop/form_builder'
3
5
 
6
+ # Gem namespace
7
+ # @since 0.1.0
4
8
  module ActiveStorageDragAndDrop
9
+ # Inherits from Rails::Engine to allow us to mount the packaged javascript/css files and add a
10
+ # custom initializer to execute custom FormBuilder code in the context of
11
+ # ActionView::Helpers::FormBuilder
12
+ #
13
+ # @author Ian Grant
14
+ # @since 0.1.0
15
+ class Engine < Rails::Engine
16
+ initializer 'active_storage_drag_and_drop.form_builder' do |_app|
17
+ ActiveSupport.on_load(:action_view) do
18
+ ActionView::Helpers::FormBuilder.instance_eval do
19
+ include FormBuilder
20
+ end
21
+ end
22
+ end
23
+ end
5
24
  end
@@ -0,0 +1,145 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveStorageDragAndDrop
4
+ # Custom FormBuilder module. All code in this module is executed within the context of
5
+ # ActionView::Helpers::FormBuilder when ActionView is first loaded via the
6
+ # {Engine Engine}
7
+ # @since 0.1.0
8
+ module FormBuilder
9
+ delegate :capture, :content_tag, :tag, :safe_join, to: :@template
10
+
11
+ # Returns a file upload input tag wrapped in markup that allows dragging and dropping of files
12
+ # onto the element.
13
+ #
14
+ # @author Ian Grant
15
+ # @see file:README.md#Usage Usage section of the README
16
+ #
17
+ # @param [Symbol] method The attribute on the target model to attach the files to.
18
+ # @param [String] content The content to render inside of the drag and drop file field.
19
+ # @param [Hash] options A hash of options to customise the file field.
20
+ #
21
+ # @option options [Boolean] :disabled If set to true, the user will not be able to use this
22
+ # input.
23
+ # @option options [Boolean] :mutiple If set to true, *in most updated browsers* the user will
24
+ # be allowed to select multiple files.
25
+ # @option options [String] :accept If set to one or multiple mime-types, the user will be
26
+ # suggested a filter when choosing a file. You still need to set up model validations.
27
+ # @option options [Integer] :size_limit The upper limit on filesize to accept in bytes.
28
+ # Client-side validation only. You still need to set up model validations.
29
+ #
30
+ # @return [String] The generated file field markup.
31
+ #
32
+ # @example
33
+ # # Accept only PNGs or JPEGs up to 5MB in size:
34
+ # form.drag_and_drop_file_field :images, nil, accept: 'image/png, image/jpeg',
35
+ # size_limit: 5_000_000
36
+ # @example
37
+ # # Pass custom content string:
38
+ # form.drag_and_drop_file_field :images, '<div>Drag and Drop!</div>', accept: 'image/png'
39
+ # @example
40
+ # # Pass a block of content instead of passing a string
41
+ # <%= form.drag_and_drop_file_field(:images, accept: 'image/png') do %>
42
+ # <strong>Drag and Drop</strong> PNG files here or <strong>click to browse</strong>
43
+ # <% end %>
44
+ def drag_and_drop_file_field(method, content_or_options = nil, options = {}, &block)
45
+ if block_given?
46
+ options = content_or_options if content_or_options.is_a? Hash
47
+ drag_and_drop_file_field_string(method, capture(&block), options)
48
+ else
49
+ drag_and_drop_file_field_string(method, content_or_options, options)
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ # After {#drag_and_drop_file_field} has parsed whether the content was passed as a block or a
56
+ # parameter the result is passed to this method which actually generates the markup.
57
+ #
58
+ # @author Ian Grant
59
+ # @see #drag_and_drop_file_field
60
+ #
61
+ # @param (see #drag_and_drop_file_field)
62
+ # @option (see #drag_and_drop_file_field)
63
+ # @return (see #drag_and_drop_file_field)
64
+ def drag_and_drop_file_field_string(method, content = nil, param_options = {})
65
+ ref = "#{object_name}_#{method}"
66
+ content = [content]
67
+ options = file_field_options(method, param_options)
68
+
69
+ content << tag.div(id: "asdndz-#{ref}__icon-container")
70
+ content << file_field(method, options)
71
+ content += unpersisted_attachment_fields(method, options[:multiple])
72
+ content_tag :label, safe_join(content), class: 'asdndzone', id: "asdndz-#{ref}",
73
+ 'data-dnd-input-id': ref
74
+ end
75
+
76
+ # returns an array of tags used to pre-populate the the dropzone with tags queueing unpersisted
77
+ # file attachments for attachment at the next form submission.
78
+ #
79
+ # @author Ian Grant
80
+ # @param [Symbol] method The attribute on the target model to attach the files to.
81
+ # @param [Boolean] multiple Whether the dropzone should accept multiple attachments or not.
82
+ # @return [Array] An array of hidden field tags for each unpersisted file attachment.
83
+ def unpersisted_attachment_fields(method, multiple)
84
+ unpersisted_attachments(method).map.with_index do |blob, idx|
85
+ hidden_field method,
86
+ mutiple: multiple ? :multiple : false,
87
+ value: blob.signed_id,
88
+ name: "#{object_name}[#{method}]#{'[]' if multiple}",
89
+ data: {
90
+ direct_upload_id: idx, uploaded_file_name: blob.filename,
91
+ icon_container_id: "asdndz-#{object_name}_#{method}__icon-container"
92
+ }
93
+ end
94
+ end
95
+
96
+ # Returns an array of all unpersisted file attachments (e.g. left over after a failed
97
+ # validation)
98
+ #
99
+ # @author Ian Grant
100
+ # @param [Symbol] method The attribute on the target model to attach the files to.
101
+ # @return [Array] An array of unpersisted file attachments.
102
+ def unpersisted_attachments(method)
103
+ as_relation = @object.send(method)
104
+ if as_relation.is_a?(ActiveStorage::Attached::One) && as_relation.attachment.present? &&
105
+ !@object.persisted?
106
+ [as_relation.attachment]
107
+ elsif as_relation.is_a?(ActiveStorage::Attached::Many)
108
+ as_relation.reject(&:persisted?)
109
+ else
110
+ []
111
+ end
112
+ end
113
+
114
+ # Generates a hash of default options for the embedded file input field.
115
+ #
116
+ # @author Ian Grant
117
+ # @param [Symbol] method The attribute on the target model to attach the files to.
118
+ # @return [Hash] The default options for the file field
119
+ def default_file_field_options(method)
120
+ {
121
+ multiple: @object.send(method).is_a?(ActiveStorage::Attached::Many),
122
+ direct_upload: true,
123
+ style: 'display:none;',
124
+ data: {
125
+ dnd: true,
126
+ dnd_zone_id: "asdndz-#{object_name}_#{method}",
127
+ icon_container_id: "asdndz-#{object_name}_#{method}__icon-container"
128
+ }
129
+ }
130
+ end
131
+
132
+ # Merges the user provided options with the default options overwriting the defaults to
133
+ # generate the final options passed to the embedded file input field.
134
+ #
135
+ # @author Ian Grant
136
+ # @param [Symbol] method The attribute on the target model to attach the files to.
137
+ # @param [Hash] custom_options The user provided custom options hash.
138
+ # @return [Hash] The user provided options and default options merged.
139
+ def file_field_options(method, custom_options)
140
+ default_file_field_options(method).merge(custom_options) do |_key, default, custom|
141
+ default.is_a?(Hash) && custom.is_a?(Hash) ? default.merge(custom) : custom
142
+ end
143
+ end
144
+ end
145
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveStorageDragAndDrop
2
- VERSION = '0.3.5'
2
+ VERSION = '0.4.0'
3
3
  end
data/package.json CHANGED
@@ -11,6 +11,12 @@
11
11
  "babel-core": "^6.25.0",
12
12
  "babel-loader": "^7.1.1",
13
13
  "babel-preset-env": "^1.6.0",
14
+ "eslint": "^5.12.1",
15
+ "eslint-config-standard": "^12.0.0",
16
+ "eslint-plugin-import": "^2.15.0",
17
+ "eslint-plugin-node": "^8.0.1",
18
+ "eslint-plugin-promise": "^4.0.1",
19
+ "eslint-plugin-standard": "^4.0.0",
14
20
  "spark-md5": "^3.0.0",
15
21
  "webpack": "^4.12.1",
16
22
  "webpack-command": "^0.2.1"
data/webpack.config.js CHANGED
@@ -1,16 +1,15 @@
1
- const webpack = require("webpack")
2
- const path = require("path")
1
+ const path = require('path')
3
2
 
4
3
  module.exports = {
5
4
  entry: {
6
- "active_storage_drag_and_drop": path.resolve(__dirname, "app/javascript/active_storage_drag_and_drop/index.js"),
5
+ 'active_storage_drag_and_drop': path.resolve(__dirname, 'app/javascript/active_storage_drag_and_drop/index.js')
7
6
  },
8
7
 
9
8
  output: {
10
- filename: "[name].js",
11
- path: path.resolve(__dirname, "app/assets/javascripts"),
12
- library: "ActiveStorage",
13
- libraryTarget: "umd"
9
+ filename: '[name].js',
10
+ path: path.resolve(__dirname, 'app/assets/javascripts'),
11
+ library: 'ActiveStorage',
12
+ libraryTarget: 'umd'
14
13
  },
15
14
 
16
15
  module: {
@@ -19,7 +18,7 @@ module.exports = {
19
18
  test: /\.js$/,
20
19
  exclude: /node_modules/,
21
20
  use: {
22
- loader: "babel-loader"
21
+ loader: 'babel-loader'
23
22
  }
24
23
  }
25
24
  ]
data/yarn.lock CHANGED
@@ -2,6 +2,22 @@
2
2
  # yarn lockfile v1
3
3
 
4
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
+ integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
9
+ dependencies:
10
+ "@babel/highlight" "^7.0.0"
11
+
12
+ "@babel/highlight@^7.0.0":
13
+ version "7.0.0"
14
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
15
+ integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
16
+ dependencies:
17
+ chalk "^2.0.0"
18
+ esutils "^2.0.2"
19
+ js-tokens "^4.0.0"
20
+
5
21
  "@webassemblyjs/ast@1.5.12":
6
22
  version "1.5.12"
7
23
  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.12.tgz#a9acbcb3f25333c4edfa1fdf3186b1ccf64e6664"
@@ -173,10 +189,20 @@ acorn-dynamic-import@^3.0.0:
173
189
  dependencies:
174
190
  acorn "^5.0.0"
175
191
 
192
+ acorn-jsx@^5.0.0:
193
+ version "5.0.1"
194
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
195
+ integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
196
+
176
197
  acorn@^5.0.0, acorn@^5.6.2:
177
198
  version "5.7.1"
178
199
  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
179
200
 
201
+ acorn@^6.0.2:
202
+ version "6.0.5"
203
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a"
204
+ integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==
205
+
180
206
  activestorage@5.2.0:
181
207
  version "5.2.0"
182
208
  resolved "https://registry.yarnpkg.com/activestorage/-/activestorage-5.2.0.tgz#91e526ea56db7157d7a9ee69f1e26b53327d6a6d"
@@ -196,12 +222,27 @@ ajv@^6.1.0:
196
222
  json-schema-traverse "^0.4.1"
197
223
  uri-js "^4.2.2"
198
224
 
225
+ ajv@^6.5.3, ajv@^6.6.1:
226
+ version "6.7.0"
227
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.7.0.tgz#e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96"
228
+ integrity sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==
229
+ dependencies:
230
+ fast-deep-equal "^2.0.1"
231
+ fast-json-stable-stringify "^2.0.0"
232
+ json-schema-traverse "^0.4.1"
233
+ uri-js "^4.2.2"
234
+
199
235
  ansi-align@^2.0.0:
200
236
  version "2.0.0"
201
237
  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
202
238
  dependencies:
203
239
  string-width "^2.0.0"
204
240
 
241
+ ansi-escapes@^3.0.0:
242
+ version "3.1.0"
243
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
244
+ integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
245
+
205
246
  ansi-regex@^2.0.0:
206
247
  version "2.1.1"
207
248
  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -210,11 +251,16 @@ ansi-regex@^3.0.0:
210
251
  version "3.0.0"
211
252
  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
212
253
 
254
+ ansi-regex@^4.0.0:
255
+ version "4.0.0"
256
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
257
+ integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
258
+
213
259
  ansi-styles@^2.2.1:
214
260
  version "2.2.1"
215
261
  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
216
262
 
217
- ansi-styles@^3.2.1:
263
+ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
218
264
  version "3.2.1"
219
265
  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
220
266
  dependencies:
@@ -286,6 +332,11 @@ assign-symbols@^1.0.0:
286
332
  version "1.0.0"
287
333
  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
288
334
 
335
+ astral-regex@^1.0.0:
336
+ version "1.0.0"
337
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
338
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
339
+
289
340
  async-each@^1.0.0:
290
341
  version "1.0.1"
291
342
  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
@@ -965,6 +1016,11 @@ callsites@^2.0.0:
965
1016
  version "2.0.0"
966
1017
  resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
967
1018
 
1019
+ callsites@^3.0.0:
1020
+ version "3.0.0"
1021
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
1022
+ integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
1023
+
968
1024
  camelcase-keys@^4.0.0:
969
1025
  version "4.2.0"
970
1026
  resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
@@ -999,6 +1055,15 @@ chalk@^1.1.3:
999
1055
  strip-ansi "^3.0.0"
1000
1056
  supports-color "^2.0.0"
1001
1057
 
1058
+ chalk@^2.0.0:
1059
+ version "2.4.2"
1060
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1061
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1062
+ dependencies:
1063
+ ansi-styles "^3.2.1"
1064
+ escape-string-regexp "^1.0.5"
1065
+ supports-color "^5.3.0"
1066
+
1002
1067
  chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2:
1003
1068
  version "2.4.1"
1004
1069
  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
@@ -1007,6 +1072,11 @@ chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2:
1007
1072
  escape-string-regexp "^1.0.5"
1008
1073
  supports-color "^5.3.0"
1009
1074
 
1075
+ chardet@^0.7.0:
1076
+ version "0.7.0"
1077
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
1078
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
1079
+
1010
1080
  chokidar@^2.0.2:
1011
1081
  version "2.0.4"
1012
1082
  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
@@ -1047,6 +1117,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
1047
1117
  inherits "^2.0.1"
1048
1118
  safe-buffer "^5.0.1"
1049
1119
 
1120
+ circular-json@^0.3.1:
1121
+ version "0.3.3"
1122
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
1123
+ integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
1124
+
1050
1125
  class-utils@^0.3.5:
1051
1126
  version "0.3.6"
1052
1127
  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -1070,6 +1145,11 @@ cli-spinners@^1.1.0:
1070
1145
  version "1.3.1"
1071
1146
  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a"
1072
1147
 
1148
+ cli-width@^2.0.0:
1149
+ version "2.2.0"
1150
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
1151
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
1152
+
1073
1153
  clone@^1.0.2:
1074
1154
  version "1.0.4"
1075
1155
  resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -1145,6 +1225,11 @@ constants-browserify@^1.0.0:
1145
1225
  version "1.0.0"
1146
1226
  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
1147
1227
 
1228
+ contains-path@^0.1.0:
1229
+ version "0.1.0"
1230
+ resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
1231
+ integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=
1232
+
1148
1233
  convert-source-map@^1.5.1:
1149
1234
  version "1.5.1"
1150
1235
  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
@@ -1223,6 +1308,17 @@ cross-spawn@^5.0.1:
1223
1308
  shebang-command "^1.2.0"
1224
1309
  which "^1.2.9"
1225
1310
 
1311
+ cross-spawn@^6.0.5:
1312
+ version "6.0.5"
1313
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
1314
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
1315
+ dependencies:
1316
+ nice-try "^1.0.4"
1317
+ path-key "^2.0.1"
1318
+ semver "^5.5.0"
1319
+ shebang-command "^1.2.0"
1320
+ which "^1.2.9"
1321
+
1226
1322
  crypto-browserify@^3.11.0:
1227
1323
  version "3.12.0"
1228
1324
  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -1275,6 +1371,13 @@ debug@^3.1.0:
1275
1371
  dependencies:
1276
1372
  ms "^2.1.1"
1277
1373
 
1374
+ debug@^4.0.1:
1375
+ version "4.1.1"
1376
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
1377
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
1378
+ dependencies:
1379
+ ms "^2.1.1"
1380
+
1278
1381
  decamelize-keys@^1.0.0:
1279
1382
  version "1.1.0"
1280
1383
  resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
@@ -1300,6 +1403,11 @@ deep-extend@^0.6.0:
1300
1403
  version "0.6.0"
1301
1404
  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
1302
1405
 
1406
+ deep-is@~0.1.3:
1407
+ version "0.1.3"
1408
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1409
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
1410
+
1303
1411
  defaults@^1.0.3:
1304
1412
  version "1.0.3"
1305
1413
  resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@@ -1360,6 +1468,21 @@ diffie-hellman@^5.0.0:
1360
1468
  miller-rabin "^4.0.0"
1361
1469
  randombytes "^2.0.0"
1362
1470
 
1471
+ doctrine@1.5.0:
1472
+ version "1.5.0"
1473
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
1474
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
1475
+ dependencies:
1476
+ esutils "^2.0.2"
1477
+ isarray "^1.0.0"
1478
+
1479
+ doctrine@^2.1.0:
1480
+ version "2.1.0"
1481
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
1482
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
1483
+ dependencies:
1484
+ esutils "^2.0.2"
1485
+
1363
1486
  domain-browser@^1.1.1:
1364
1487
  version "1.2.0"
1365
1488
  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -1423,7 +1546,7 @@ errno@^0.1.3, errno@~0.1.7:
1423
1546
  dependencies:
1424
1547
  prr "~1.0.1"
1425
1548
 
1426
- error-ex@^1.3.1:
1549
+ error-ex@^1.2.0, error-ex@^1.3.1:
1427
1550
  version "1.3.2"
1428
1551
  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1429
1552
  dependencies:
@@ -1474,6 +1597,73 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
1474
1597
  version "1.0.5"
1475
1598
  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1476
1599
 
1600
+ eslint-config-standard@^12.0.0:
1601
+ version "12.0.0"
1602
+ resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9"
1603
+ integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==
1604
+
1605
+ eslint-import-resolver-node@^0.3.2:
1606
+ version "0.3.2"
1607
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
1608
+ integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
1609
+ dependencies:
1610
+ debug "^2.6.9"
1611
+ resolve "^1.5.0"
1612
+
1613
+ eslint-module-utils@^2.3.0:
1614
+ version "2.3.0"
1615
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49"
1616
+ integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==
1617
+ dependencies:
1618
+ debug "^2.6.8"
1619
+ pkg-dir "^2.0.0"
1620
+
1621
+ eslint-plugin-es@^1.3.1:
1622
+ version "1.4.0"
1623
+ resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
1624
+ integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
1625
+ dependencies:
1626
+ eslint-utils "^1.3.0"
1627
+ regexpp "^2.0.1"
1628
+
1629
+ eslint-plugin-import@^2.15.0:
1630
+ version "2.15.0"
1631
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.15.0.tgz#d8f3c28b8988ccde5df964706faa7c1e52f0602a"
1632
+ integrity sha512-LEHqgR+RcnpGqYW7h9WMkPb/tP+ekKxWdQDztfTtZeV43IHF+X8lXU+1HOCcR4oXD24qRgEwNSxIweD5uNKGVg==
1633
+ dependencies:
1634
+ contains-path "^0.1.0"
1635
+ debug "^2.6.9"
1636
+ doctrine "1.5.0"
1637
+ eslint-import-resolver-node "^0.3.2"
1638
+ eslint-module-utils "^2.3.0"
1639
+ has "^1.0.3"
1640
+ lodash "^4.17.11"
1641
+ minimatch "^3.0.4"
1642
+ read-pkg-up "^2.0.0"
1643
+ resolve "^1.9.0"
1644
+
1645
+ eslint-plugin-node@^8.0.1:
1646
+ version "8.0.1"
1647
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964"
1648
+ integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==
1649
+ dependencies:
1650
+ eslint-plugin-es "^1.3.1"
1651
+ eslint-utils "^1.3.1"
1652
+ ignore "^5.0.2"
1653
+ minimatch "^3.0.4"
1654
+ resolve "^1.8.1"
1655
+ semver "^5.5.0"
1656
+
1657
+ eslint-plugin-promise@^4.0.1:
1658
+ version "4.0.1"
1659
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
1660
+ integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==
1661
+
1662
+ eslint-plugin-standard@^4.0.0:
1663
+ version "4.0.0"
1664
+ resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c"
1665
+ integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==
1666
+
1477
1667
  eslint-scope@^3.7.1:
1478
1668
  version "3.7.1"
1479
1669
  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
@@ -1481,17 +1671,94 @@ eslint-scope@^3.7.1:
1481
1671
  esrecurse "^4.1.0"
1482
1672
  estraverse "^4.1.1"
1483
1673
 
1674
+ eslint-scope@^4.0.0:
1675
+ version "4.0.0"
1676
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
1677
+ integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
1678
+ dependencies:
1679
+ esrecurse "^4.1.0"
1680
+ estraverse "^4.1.1"
1681
+
1682
+ eslint-utils@^1.3.0, eslint-utils@^1.3.1:
1683
+ version "1.3.1"
1684
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
1685
+ integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
1686
+
1687
+ eslint-visitor-keys@^1.0.0:
1688
+ version "1.0.0"
1689
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
1690
+ integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
1691
+
1692
+ eslint@^5.12.1:
1693
+ version "5.12.1"
1694
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.1.tgz#5ca9931fb9029d04e7be92b03ce3b58edfac7e3b"
1695
+ integrity sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==
1696
+ dependencies:
1697
+ "@babel/code-frame" "^7.0.0"
1698
+ ajv "^6.5.3"
1699
+ chalk "^2.1.0"
1700
+ cross-spawn "^6.0.5"
1701
+ debug "^4.0.1"
1702
+ doctrine "^2.1.0"
1703
+ eslint-scope "^4.0.0"
1704
+ eslint-utils "^1.3.1"
1705
+ eslint-visitor-keys "^1.0.0"
1706
+ espree "^5.0.0"
1707
+ esquery "^1.0.1"
1708
+ esutils "^2.0.2"
1709
+ file-entry-cache "^2.0.0"
1710
+ functional-red-black-tree "^1.0.1"
1711
+ glob "^7.1.2"
1712
+ globals "^11.7.0"
1713
+ ignore "^4.0.6"
1714
+ import-fresh "^3.0.0"
1715
+ imurmurhash "^0.1.4"
1716
+ inquirer "^6.1.0"
1717
+ js-yaml "^3.12.0"
1718
+ json-stable-stringify-without-jsonify "^1.0.1"
1719
+ levn "^0.3.0"
1720
+ lodash "^4.17.5"
1721
+ minimatch "^3.0.4"
1722
+ mkdirp "^0.5.1"
1723
+ natural-compare "^1.4.0"
1724
+ optionator "^0.8.2"
1725
+ path-is-inside "^1.0.2"
1726
+ pluralize "^7.0.0"
1727
+ progress "^2.0.0"
1728
+ regexpp "^2.0.1"
1729
+ semver "^5.5.1"
1730
+ strip-ansi "^4.0.0"
1731
+ strip-json-comments "^2.0.1"
1732
+ table "^5.0.2"
1733
+ text-table "^0.2.0"
1734
+
1735
+ espree@^5.0.0:
1736
+ version "5.0.0"
1737
+ resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
1738
+ integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
1739
+ dependencies:
1740
+ acorn "^6.0.2"
1741
+ acorn-jsx "^5.0.0"
1742
+ eslint-visitor-keys "^1.0.0"
1743
+
1484
1744
  esprima@^4.0.0:
1485
1745
  version "4.0.1"
1486
1746
  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1487
1747
 
1748
+ esquery@^1.0.1:
1749
+ version "1.0.1"
1750
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
1751
+ integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
1752
+ dependencies:
1753
+ estraverse "^4.0.0"
1754
+
1488
1755
  esrecurse@^4.1.0:
1489
1756
  version "4.2.1"
1490
1757
  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
1491
1758
  dependencies:
1492
1759
  estraverse "^4.1.0"
1493
1760
 
1494
- estraverse@^4.1.0, estraverse@^4.1.1:
1761
+ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
1495
1762
  version "4.2.0"
1496
1763
  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
1497
1764
 
@@ -1547,6 +1814,15 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
1547
1814
  assign-symbols "^1.0.0"
1548
1815
  is-extendable "^1.0.1"
1549
1816
 
1817
+ external-editor@^3.0.0:
1818
+ version "3.0.3"
1819
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
1820
+ integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
1821
+ dependencies:
1822
+ chardet "^0.7.0"
1823
+ iconv-lite "^0.4.24"
1824
+ tmp "^0.0.33"
1825
+
1550
1826
  extglob@^2.0.4:
1551
1827
  version "2.0.4"
1552
1828
  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -1568,6 +1844,26 @@ fast-json-stable-stringify@^2.0.0:
1568
1844
  version "2.0.0"
1569
1845
  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
1570
1846
 
1847
+ fast-levenshtein@~2.0.4:
1848
+ version "2.0.6"
1849
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1850
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
1851
+
1852
+ figures@^2.0.0:
1853
+ version "2.0.0"
1854
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
1855
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
1856
+ dependencies:
1857
+ escape-string-regexp "^1.0.5"
1858
+
1859
+ file-entry-cache@^2.0.0:
1860
+ version "2.0.0"
1861
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
1862
+ integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=
1863
+ dependencies:
1864
+ flat-cache "^1.2.1"
1865
+ object-assign "^4.0.1"
1866
+
1571
1867
  fill-range@^4.0.0:
1572
1868
  version "4.0.0"
1573
1869
  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -1591,6 +1887,16 @@ find-up@^2.0.0, find-up@^2.1.0:
1591
1887
  dependencies:
1592
1888
  locate-path "^2.0.0"
1593
1889
 
1890
+ flat-cache@^1.2.1:
1891
+ version "1.3.4"
1892
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
1893
+ integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
1894
+ dependencies:
1895
+ circular-json "^0.3.1"
1896
+ graceful-fs "^4.1.2"
1897
+ rimraf "~2.6.2"
1898
+ write "^0.2.1"
1899
+
1594
1900
  flush-write-stream@^1.0.0:
1595
1901
  version "1.0.3"
1596
1902
  resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
@@ -1645,6 +1951,11 @@ function-bind@^1.1.0, function-bind@^1.1.1:
1645
1951
  version "1.1.1"
1646
1952
  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1647
1953
 
1954
+ functional-red-black-tree@^1.0.1:
1955
+ version "1.0.1"
1956
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
1957
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
1958
+
1648
1959
  gauge@~2.7.3:
1649
1960
  version "2.7.4"
1650
1961
  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@@ -1684,12 +1995,29 @@ glob@^7.0.5, glob@^7.1.2:
1684
1995
  once "^1.3.0"
1685
1996
  path-is-absolute "^1.0.0"
1686
1997
 
1998
+ glob@^7.1.3:
1999
+ version "7.1.3"
2000
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
2001
+ integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
2002
+ dependencies:
2003
+ fs.realpath "^1.0.0"
2004
+ inflight "^1.0.4"
2005
+ inherits "2"
2006
+ minimatch "^3.0.4"
2007
+ once "^1.3.0"
2008
+ path-is-absolute "^1.0.0"
2009
+
1687
2010
  global-dirs@^0.1.0:
1688
2011
  version "0.1.1"
1689
2012
  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
1690
2013
  dependencies:
1691
2014
  ini "^1.3.4"
1692
2015
 
2016
+ globals@^11.7.0:
2017
+ version "11.10.0"
2018
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50"
2019
+ integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==
2020
+
1693
2021
  globals@^9.18.0:
1694
2022
  version "9.18.0"
1695
2023
  resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -1759,7 +2087,7 @@ has-values@^1.0.0:
1759
2087
  is-number "^3.0.0"
1760
2088
  kind-of "^4.0.0"
1761
2089
 
1762
- has@^1.0.1:
2090
+ has@^1.0.1, has@^1.0.3:
1763
2091
  version "1.0.3"
1764
2092
  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1765
2093
  dependencies:
@@ -1802,6 +2130,13 @@ https-browserify@^1.0.0:
1802
2130
  version "1.0.0"
1803
2131
  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
1804
2132
 
2133
+ iconv-lite@^0.4.24:
2134
+ version "0.4.24"
2135
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
2136
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
2137
+ dependencies:
2138
+ safer-buffer ">= 2.1.2 < 3"
2139
+
1805
2140
  iconv-lite@^0.4.4:
1806
2141
  version "0.4.23"
1807
2142
  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
@@ -1822,6 +2157,16 @@ ignore-walk@^3.0.1:
1822
2157
  dependencies:
1823
2158
  minimatch "^3.0.4"
1824
2159
 
2160
+ ignore@^4.0.6:
2161
+ version "4.0.6"
2162
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
2163
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
2164
+
2165
+ ignore@^5.0.2:
2166
+ version "5.0.4"
2167
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45"
2168
+ integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g==
2169
+
1825
2170
  import-fresh@^2.0.0:
1826
2171
  version "2.0.0"
1827
2172
  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
@@ -1829,6 +2174,14 @@ import-fresh@^2.0.0:
1829
2174
  caller-path "^2.0.0"
1830
2175
  resolve-from "^3.0.0"
1831
2176
 
2177
+ import-fresh@^3.0.0:
2178
+ version "3.0.0"
2179
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
2180
+ integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
2181
+ dependencies:
2182
+ parent-module "^1.0.0"
2183
+ resolve-from "^4.0.0"
2184
+
1832
2185
  import-lazy@^2.1.0:
1833
2186
  version "2.1.0"
1834
2187
  resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@@ -1871,6 +2224,25 @@ ini@^1.3.4, ini@~1.3.0:
1871
2224
  version "1.3.5"
1872
2225
  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
1873
2226
 
2227
+ inquirer@^6.1.0:
2228
+ version "6.2.1"
2229
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
2230
+ integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
2231
+ dependencies:
2232
+ ansi-escapes "^3.0.0"
2233
+ chalk "^2.0.0"
2234
+ cli-cursor "^2.1.0"
2235
+ cli-width "^2.0.0"
2236
+ external-editor "^3.0.0"
2237
+ figures "^2.0.0"
2238
+ lodash "^4.17.10"
2239
+ mute-stream "0.0.7"
2240
+ run-async "^2.2.0"
2241
+ rxjs "^6.1.0"
2242
+ string-width "^2.1.0"
2243
+ strip-ansi "^5.0.0"
2244
+ through "^2.3.6"
2245
+
1874
2246
  invariant@^2.2.2:
1875
2247
  version "2.2.4"
1876
2248
  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -2048,6 +2420,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
2048
2420
  dependencies:
2049
2421
  isobject "^3.0.1"
2050
2422
 
2423
+ is-promise@^2.1.0:
2424
+ version "2.1.0"
2425
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
2426
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
2427
+
2051
2428
  is-redirect@^1.0.0:
2052
2429
  version "1.0.0"
2053
2430
  resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
@@ -2102,6 +2479,19 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
2102
2479
  version "3.0.2"
2103
2480
  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
2104
2481
 
2482
+ js-tokens@^4.0.0:
2483
+ version "4.0.0"
2484
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
2485
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
2486
+
2487
+ js-yaml@^3.12.0:
2488
+ version "3.12.1"
2489
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
2490
+ integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
2491
+ dependencies:
2492
+ argparse "^1.0.7"
2493
+ esprima "^4.0.0"
2494
+
2105
2495
  js-yaml@^3.9.0:
2106
2496
  version "3.12.0"
2107
2497
  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
@@ -2125,6 +2515,11 @@ json-schema-traverse@^0.4.1:
2125
2515
  version "0.4.1"
2126
2516
  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
2127
2517
 
2518
+ json-stable-stringify-without-jsonify@^1.0.1:
2519
+ version "1.0.1"
2520
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
2521
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
2522
+
2128
2523
  json5@^0.5.0, json5@^0.5.1:
2129
2524
  version "0.5.1"
2130
2525
  resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@@ -2159,6 +2554,24 @@ leb@^0.3.0:
2159
2554
  version "0.3.0"
2160
2555
  resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3"
2161
2556
 
2557
+ levn@^0.3.0, levn@~0.3.0:
2558
+ version "0.3.0"
2559
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
2560
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
2561
+ dependencies:
2562
+ prelude-ls "~1.1.2"
2563
+ type-check "~0.3.2"
2564
+
2565
+ load-json-file@^2.0.0:
2566
+ version "2.0.0"
2567
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
2568
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
2569
+ dependencies:
2570
+ graceful-fs "^4.1.2"
2571
+ parse-json "^2.2.0"
2572
+ pify "^2.0.0"
2573
+ strip-bom "^3.0.0"
2574
+
2162
2575
  load-json-file@^4.0.0:
2163
2576
  version "4.0.0"
2164
2577
  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -2191,6 +2604,11 @@ lodash.debounce@^4.0.8:
2191
2604
  version "4.0.8"
2192
2605
  resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
2193
2606
 
2607
+ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5:
2608
+ version "4.17.11"
2609
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
2610
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
2611
+
2194
2612
  lodash@^4.17.4:
2195
2613
  version "4.17.10"
2196
2614
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
@@ -2420,6 +2838,11 @@ ms@^2.1.1:
2420
2838
  version "2.1.1"
2421
2839
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
2422
2840
 
2841
+ mute-stream@0.0.7:
2842
+ version "0.0.7"
2843
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
2844
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
2845
+
2423
2846
  nan@^2.9.2:
2424
2847
  version "2.10.0"
2425
2848
  resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
@@ -2441,6 +2864,11 @@ nanomatch@^1.2.9:
2441
2864
  snapdragon "^0.8.1"
2442
2865
  to-regex "^3.0.1"
2443
2866
 
2867
+ natural-compare@^1.4.0:
2868
+ version "1.4.0"
2869
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
2870
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
2871
+
2444
2872
  needle@^2.2.0:
2445
2873
  version "2.2.1"
2446
2874
  resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d"
@@ -2457,6 +2885,11 @@ next-tick@1:
2457
2885
  version "1.0.0"
2458
2886
  resolved "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
2459
2887
 
2888
+ nice-try@^1.0.4:
2889
+ version "1.0.5"
2890
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
2891
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
2892
+
2460
2893
  node-libs-browser@^2.0.0:
2461
2894
  version "2.1.0"
2462
2895
  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
@@ -2552,7 +2985,7 @@ number-is-nan@^1.0.0:
2552
2985
  version "1.0.1"
2553
2986
  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
2554
2987
 
2555
- object-assign@^4.1.0:
2988
+ object-assign@^4.0.1, object-assign@^4.1.0:
2556
2989
  version "4.1.1"
2557
2990
  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2558
2991
 
@@ -2616,6 +3049,18 @@ opn@^5.3.0:
2616
3049
  dependencies:
2617
3050
  is-wsl "^1.1.0"
2618
3051
 
3052
+ optionator@^0.8.2:
3053
+ version "0.8.2"
3054
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
3055
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
3056
+ dependencies:
3057
+ deep-is "~0.1.3"
3058
+ fast-levenshtein "~2.0.4"
3059
+ levn "~0.3.0"
3060
+ prelude-ls "~1.1.2"
3061
+ type-check "~0.3.2"
3062
+ wordwrap "~1.0.0"
3063
+
2619
3064
  ora@^2.1.0:
2620
3065
  version "2.1.0"
2621
3066
  resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b"
@@ -2635,7 +3080,7 @@ os-homedir@^1.0.0:
2635
3080
  version "1.0.2"
2636
3081
  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
2637
3082
 
2638
- os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
3083
+ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
2639
3084
  version "1.0.2"
2640
3085
  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
2641
3086
 
@@ -2687,6 +3132,13 @@ parallel-transform@^1.1.0:
2687
3132
  inherits "^2.0.3"
2688
3133
  readable-stream "^2.1.5"
2689
3134
 
3135
+ parent-module@^1.0.0:
3136
+ version "1.0.0"
3137
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
3138
+ integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==
3139
+ dependencies:
3140
+ callsites "^3.0.0"
3141
+
2690
3142
  parse-asn1@^5.0.0:
2691
3143
  version "5.1.1"
2692
3144
  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
@@ -2697,6 +3149,13 @@ parse-asn1@^5.0.0:
2697
3149
  evp_bytestokey "^1.0.0"
2698
3150
  pbkdf2 "^3.0.3"
2699
3151
 
3152
+ parse-json@^2.2.0:
3153
+ version "2.2.0"
3154
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
3155
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
3156
+ dependencies:
3157
+ error-ex "^1.2.0"
3158
+
2700
3159
  parse-json@^4.0.0:
2701
3160
  version "4.0.0"
2702
3161
  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -2724,18 +3183,25 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
2724
3183
  version "1.0.1"
2725
3184
  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2726
3185
 
2727
- path-is-inside@^1.0.1:
3186
+ path-is-inside@^1.0.1, path-is-inside@^1.0.2:
2728
3187
  version "1.0.2"
2729
3188
  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
2730
3189
 
2731
- path-key@^2.0.0:
3190
+ path-key@^2.0.0, path-key@^2.0.1:
2732
3191
  version "2.0.1"
2733
3192
  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
2734
3193
 
2735
- path-parse@^1.0.5:
3194
+ path-parse@^1.0.5, path-parse@^1.0.6:
2736
3195
  version "1.0.6"
2737
3196
  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
2738
3197
 
3198
+ path-type@^2.0.0:
3199
+ version "2.0.0"
3200
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
3201
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
3202
+ dependencies:
3203
+ pify "^2.0.0"
3204
+
2739
3205
  path-type@^3.0.0:
2740
3206
  version "3.0.0"
2741
3207
  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -2752,6 +3218,11 @@ pbkdf2@^3.0.3:
2752
3218
  safe-buffer "^5.0.1"
2753
3219
  sha.js "^2.4.8"
2754
3220
 
3221
+ pify@^2.0.0:
3222
+ version "2.3.0"
3223
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
3224
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
3225
+
2755
3226
  pify@^3.0.0:
2756
3227
  version "3.0.0"
2757
3228
  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
@@ -2768,10 +3239,20 @@ plur@^3.0.0:
2768
3239
  dependencies:
2769
3240
  irregular-plurals "^2.0.0"
2770
3241
 
3242
+ pluralize@^7.0.0:
3243
+ version "7.0.0"
3244
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
3245
+ integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
3246
+
2771
3247
  posix-character-classes@^0.1.0:
2772
3248
  version "0.1.1"
2773
3249
  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
2774
3250
 
3251
+ prelude-ls@~1.1.2:
3252
+ version "1.1.2"
3253
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
3254
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
3255
+
2775
3256
  prepend-http@^1.0.1:
2776
3257
  version "1.0.4"
2777
3258
  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
@@ -2792,6 +3273,11 @@ process@^0.11.10:
2792
3273
  version "0.11.10"
2793
3274
  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
2794
3275
 
3276
+ progress@^2.0.0:
3277
+ version "2.0.3"
3278
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
3279
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
3280
+
2795
3281
  promise-inflight@^1.0.1:
2796
3282
  version "1.0.1"
2797
3283
  resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@@ -2875,6 +3361,14 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
2875
3361
  minimist "^1.2.0"
2876
3362
  strip-json-comments "~2.0.1"
2877
3363
 
3364
+ read-pkg-up@^2.0.0:
3365
+ version "2.0.0"
3366
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
3367
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
3368
+ dependencies:
3369
+ find-up "^2.0.0"
3370
+ read-pkg "^2.0.0"
3371
+
2878
3372
  read-pkg-up@^3.0.0:
2879
3373
  version "3.0.0"
2880
3374
  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -2882,6 +3376,15 @@ read-pkg-up@^3.0.0:
2882
3376
  find-up "^2.0.0"
2883
3377
  read-pkg "^3.0.0"
2884
3378
 
3379
+ read-pkg@^2.0.0:
3380
+ version "2.0.0"
3381
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
3382
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
3383
+ dependencies:
3384
+ load-json-file "^2.0.0"
3385
+ normalize-package-data "^2.3.2"
3386
+ path-type "^2.0.0"
3387
+
2885
3388
  read-pkg@^3.0.0:
2886
3389
  version "3.0.0"
2887
3390
  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -2941,6 +3444,11 @@ regex-not@^1.0.0, regex-not@^1.0.2:
2941
3444
  extend-shallow "^3.0.2"
2942
3445
  safe-regex "^1.1.0"
2943
3446
 
3447
+ regexpp@^2.0.1:
3448
+ version "2.0.1"
3449
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
3450
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
3451
+
2944
3452
  regexpu-core@^2.0.0:
2945
3453
  version "2.0.0"
2946
3454
  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
@@ -3000,10 +3508,22 @@ resolve-from@^3.0.0:
3000
3508
  version "3.0.0"
3001
3509
  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
3002
3510
 
3511
+ resolve-from@^4.0.0:
3512
+ version "4.0.0"
3513
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
3514
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
3515
+
3003
3516
  resolve-url@^0.2.1:
3004
3517
  version "0.2.1"
3005
3518
  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
3006
3519
 
3520
+ resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
3521
+ version "1.10.0"
3522
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
3523
+ integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
3524
+ dependencies:
3525
+ path-parse "^1.0.6"
3526
+
3007
3527
  resolve@^1.6.0:
3008
3528
  version "1.8.1"
3009
3529
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
@@ -3027,6 +3547,13 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
3027
3547
  dependencies:
3028
3548
  glob "^7.0.5"
3029
3549
 
3550
+ rimraf@~2.6.2:
3551
+ version "2.6.3"
3552
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
3553
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
3554
+ dependencies:
3555
+ glob "^7.1.3"
3556
+
3030
3557
  ripemd160@^2.0.0, ripemd160@^2.0.1:
3031
3558
  version "2.0.2"
3032
3559
  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
@@ -3034,12 +3561,26 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
3034
3561
  hash-base "^3.0.0"
3035
3562
  inherits "^2.0.1"
3036
3563
 
3564
+ run-async@^2.2.0:
3565
+ version "2.3.0"
3566
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
3567
+ integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
3568
+ dependencies:
3569
+ is-promise "^2.1.0"
3570
+
3037
3571
  run-queue@^1.0.0, run-queue@^1.0.3:
3038
3572
  version "1.0.3"
3039
3573
  resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
3040
3574
  dependencies:
3041
3575
  aproba "^1.1.1"
3042
3576
 
3577
+ rxjs@^6.1.0:
3578
+ version "6.3.3"
3579
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55"
3580
+ integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==
3581
+ dependencies:
3582
+ tslib "^1.9.0"
3583
+
3043
3584
  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:
3044
3585
  version "5.1.2"
3045
3586
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -3071,7 +3612,7 @@ semver-diff@^2.0.0:
3071
3612
  dependencies:
3072
3613
  semver "^5.0.3"
3073
3614
 
3074
- "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0:
3615
+ "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.5.1:
3075
3616
  version "5.6.0"
3076
3617
  resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
3077
3618
 
@@ -3138,6 +3679,15 @@ slash@^1.0.0:
3138
3679
  version "1.0.0"
3139
3680
  resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
3140
3681
 
3682
+ slice-ansi@2.0.0:
3683
+ version "2.0.0"
3684
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7"
3685
+ integrity sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==
3686
+ dependencies:
3687
+ ansi-styles "^3.2.0"
3688
+ astral-regex "^1.0.0"
3689
+ is-fullwidth-code-point "^2.0.0"
3690
+
3141
3691
  snapdragon-node@^2.0.1:
3142
3692
  version "2.1.1"
3143
3693
  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -3282,7 +3832,7 @@ string-width@^1.0.1:
3282
3832
  is-fullwidth-code-point "^1.0.0"
3283
3833
  strip-ansi "^3.0.0"
3284
3834
 
3285
- "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
3835
+ "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
3286
3836
  version "2.1.1"
3287
3837
  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
3288
3838
  dependencies:
@@ -3307,6 +3857,13 @@ strip-ansi@^4.0.0:
3307
3857
  dependencies:
3308
3858
  ansi-regex "^3.0.0"
3309
3859
 
3860
+ strip-ansi@^5.0.0:
3861
+ version "5.0.0"
3862
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
3863
+ integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
3864
+ dependencies:
3865
+ ansi-regex "^4.0.0"
3866
+
3310
3867
  strip-bom@^3.0.0:
3311
3868
  version "3.0.0"
3312
3869
  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -3319,7 +3876,7 @@ strip-indent@^2.0.0:
3319
3876
  version "2.0.0"
3320
3877
  resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
3321
3878
 
3322
- strip-json-comments@~2.0.1:
3879
+ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
3323
3880
  version "2.0.1"
3324
3881
  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
3325
3882
 
@@ -3333,6 +3890,16 @@ supports-color@^5.3.0:
3333
3890
  dependencies:
3334
3891
  has-flag "^3.0.0"
3335
3892
 
3893
+ table@^5.0.2:
3894
+ version "5.2.1"
3895
+ resolved "https://registry.yarnpkg.com/table/-/table-5.2.1.tgz#e78463702b1be9f7131c39860bcfb1b81114c2a1"
3896
+ integrity sha512-qmhNs2GEHNqY5fd2Mo+8N1r2sw/rvTAAvBZTaTx+Y7PHLypqyrxr1MdIu0pLw6Xvl/Gi4ONu/sdceP8vvUjkyA==
3897
+ dependencies:
3898
+ ajv "^6.6.1"
3899
+ lodash "^4.17.11"
3900
+ slice-ansi "2.0.0"
3901
+ string-width "^2.1.1"
3902
+
3336
3903
  tapable@^1.0.0:
3337
3904
  version "1.1.0"
3338
3905
  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c"
@@ -3366,6 +3933,11 @@ through2@^2.0.0:
3366
3933
  readable-stream "^2.1.5"
3367
3934
  xtend "~4.0.1"
3368
3935
 
3936
+ through@^2.3.6:
3937
+ version "2.3.8"
3938
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
3939
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
3940
+
3369
3941
  timed-out@^4.0.0:
3370
3942
  version "4.0.1"
3371
3943
  resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
@@ -3380,6 +3952,13 @@ titleize@^1.0.1:
3380
3952
  version "1.0.1"
3381
3953
  resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.1.tgz#21bc24fcca658eadc6d3bd3c38f2bd173769b4c5"
3382
3954
 
3955
+ tmp@^0.0.33:
3956
+ version "0.0.33"
3957
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
3958
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
3959
+ dependencies:
3960
+ os-tmpdir "~1.0.2"
3961
+
3383
3962
  to-arraybuffer@^1.0.0:
3384
3963
  version "1.0.1"
3385
3964
  resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@@ -3426,6 +4005,13 @@ tty-browserify@0.0.0:
3426
4005
  version "0.0.0"
3427
4006
  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
3428
4007
 
4008
+ type-check@~0.3.2:
4009
+ version "0.3.2"
4010
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
4011
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
4012
+ dependencies:
4013
+ prelude-ls "~1.1.2"
4014
+
3429
4015
  typedarray@^0.0.6:
3430
4016
  version "0.0.6"
3431
4017
  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -3683,7 +4269,7 @@ widest-line@^2.0.0:
3683
4269
  dependencies:
3684
4270
  string-width "^2.1.1"
3685
4271
 
3686
- wordwrap@^1.0.0:
4272
+ wordwrap@^1.0.0, wordwrap@~1.0.0:
3687
4273
  version "1.0.0"
3688
4274
  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
3689
4275
 
@@ -3705,6 +4291,13 @@ write-file-atomic@^2.0.0:
3705
4291
  imurmurhash "^0.1.4"
3706
4292
  signal-exit "^3.0.2"
3707
4293
 
4294
+ write@^0.2.1:
4295
+ version "0.2.1"
4296
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
4297
+ integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
4298
+ dependencies:
4299
+ mkdirp "^0.5.1"
4300
+
3708
4301
  xdg-basedir@^3.0.0:
3709
4302
  version "3.0.0"
3710
4303
  resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"