active_storage_drag_and_drop 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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"