ar_sync 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +53 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +128 -0
  8. data/Rakefile +10 -0
  9. data/ar_sync.gemspec +28 -0
  10. data/bin/console +12 -0
  11. data/bin/setup +8 -0
  12. data/core/ActioncableAdapter.d.ts +10 -0
  13. data/core/ActioncableAdapter.js +29 -0
  14. data/core/ArSyncApi.d.ts +5 -0
  15. data/core/ArSyncApi.js +74 -0
  16. data/core/ArSyncModelBase.d.ts +71 -0
  17. data/core/ArSyncModelBase.js +110 -0
  18. data/core/ConnectionAdapter.d.ts +7 -0
  19. data/core/ConnectionAdapter.js +2 -0
  20. data/core/ConnectionManager.d.ts +19 -0
  21. data/core/ConnectionManager.js +75 -0
  22. data/core/DataType.d.ts +60 -0
  23. data/core/DataType.js +2 -0
  24. data/core/hooksBase.d.ts +29 -0
  25. data/core/hooksBase.js +80 -0
  26. data/graph/ArSyncModel.d.ts +10 -0
  27. data/graph/ArSyncModel.js +22 -0
  28. data/graph/ArSyncStore.d.ts +28 -0
  29. data/graph/ArSyncStore.js +593 -0
  30. data/graph/hooks.d.ts +3 -0
  31. data/graph/hooks.js +10 -0
  32. data/graph/index.d.ts +2 -0
  33. data/graph/index.js +4 -0
  34. data/lib/ar_sync.rb +25 -0
  35. data/lib/ar_sync/class_methods.rb +215 -0
  36. data/lib/ar_sync/collection.rb +83 -0
  37. data/lib/ar_sync/config.rb +18 -0
  38. data/lib/ar_sync/core.rb +138 -0
  39. data/lib/ar_sync/field.rb +96 -0
  40. data/lib/ar_sync/instance_methods.rb +130 -0
  41. data/lib/ar_sync/rails.rb +155 -0
  42. data/lib/ar_sync/type_script.rb +80 -0
  43. data/lib/ar_sync/version.rb +3 -0
  44. data/lib/generators/ar_sync/install/install_generator.rb +87 -0
  45. data/lib/generators/ar_sync/types/types_generator.rb +11 -0
  46. data/package-lock.json +1115 -0
  47. data/package.json +19 -0
  48. data/src/core/ActioncableAdapter.ts +30 -0
  49. data/src/core/ArSyncApi.ts +75 -0
  50. data/src/core/ArSyncModelBase.ts +126 -0
  51. data/src/core/ConnectionAdapter.ts +5 -0
  52. data/src/core/ConnectionManager.ts +69 -0
  53. data/src/core/DataType.ts +73 -0
  54. data/src/core/hooksBase.ts +86 -0
  55. data/src/graph/ArSyncModel.ts +21 -0
  56. data/src/graph/ArSyncStore.ts +567 -0
  57. data/src/graph/hooks.ts +7 -0
  58. data/src/graph/index.ts +2 -0
  59. data/src/tree/ArSyncModel.ts +145 -0
  60. data/src/tree/ArSyncStore.ts +323 -0
  61. data/src/tree/hooks.ts +7 -0
  62. data/src/tree/index.ts +2 -0
  63. data/tree/ArSyncModel.d.ts +39 -0
  64. data/tree/ArSyncModel.js +143 -0
  65. data/tree/ArSyncStore.d.ts +21 -0
  66. data/tree/ArSyncStore.js +365 -0
  67. data/tree/hooks.d.ts +3 -0
  68. data/tree/hooks.js +10 -0
  69. data/tree/index.d.ts +2 -0
  70. data/tree/index.js +4 -0
  71. data/tsconfig.json +15 -0
  72. data/vendor/assets/javascripts/ar_sync_actioncable_adapter.js.erb +7 -0
  73. data/vendor/assets/javascripts/ar_sync_graph.js.erb +17 -0
  74. data/vendor/assets/javascripts/ar_sync_tree.js.erb +17 -0
  75. metadata +187 -0
@@ -0,0 +1,3 @@
1
+ module ArSync
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,87 @@
1
+ module ArSync
2
+ class InstallGenerator < ::Rails::Generators::Base
3
+ class_option :mode, enum: %w[tree graph], desc: 'sync mode', default: 'graph'
4
+
5
+ def create_api_controller
6
+ base_code = <<~CODE
7
+ include ArSync::ApiControllerConcern
8
+
9
+ # serializer_field :profile, type: User do |_user|
10
+ # current_user
11
+ # end
12
+
13
+ # serializer_field :post, type: Post do |_user, id:|
14
+ # Post.where(current_user_can_access).find id
15
+ # end
16
+ CODE
17
+ graph_additional_code = <<~CODE
18
+ # Reload API for all types should be defined here.
19
+
20
+ # serializer_field :User do |_user, ids:|
21
+ # User.where(current_user_can_access).where id: ids
22
+ # end
23
+
24
+ # serializer_field :Post do |_user, ids:|
25
+ # Post.where(current_user_can_access).where id: ids
26
+ # end
27
+
28
+ # serializer_field :Comment do |_user, ids:|
29
+ # Comment.where(current_user_can_access).where id: ids
30
+ # end
31
+ CODE
32
+ controller_body = options['mode'] == 'tree' ? base_code : base_code + "\n" + graph_additional_code
33
+ code = [
34
+ "class SyncApiController < ApplicationController\n",
35
+ controller_body.lines.map { |l| l.blank? ? l : ' ' + l },
36
+ "end\n"
37
+ ].join
38
+ create_file 'app/controllers/sync_api_controller.rb', code
39
+ end
40
+
41
+ def create_config
42
+ create_file 'config/initializers/ar_sync.rb', <<~CODE
43
+ ArSync.use :#{options['mode']}
44
+ ArSync.configure do |config|
45
+ config.current_user_method = :current_user
46
+ config.key_prefix = 'ar_sync_'
47
+ config.key_secret = '#{SecureRandom.hex}'
48
+ config.key_expires_in = 30.seconds
49
+ end
50
+ CODE
51
+ end
52
+
53
+ def create_sync_channel
54
+ create_file 'app/channels/sync_channel.rb', <<~CODE
55
+ class SyncChannel < ApplicationCable::Channel
56
+ def subscribed
57
+ key = ArSync.validate_expiration params[:key]
58
+ stream_from key if key
59
+ end
60
+ end
61
+ CODE
62
+ end
63
+
64
+ def setup_routes
65
+ inject_into_file(
66
+ 'config/routes.rb',
67
+ "\n post '/sync_api', to: 'sync_api#sync_call'" +
68
+ "\n post '/static_api', to: 'sync_api#static_call'" +
69
+ "\n post '/graphql', to: 'sync_api#graphql_call'",
70
+ after: 'Rails.application.routes.draw do'
71
+ )
72
+ end
73
+
74
+ def setup_js
75
+ inject_into_file(
76
+ 'app/assets/javascripts/application.js',
77
+ [
78
+ "//= require ar_sync_#{options['mode']}",
79
+ '//= require action_cable',
80
+ '//= require ar_sync_actioncable_adapter',
81
+ 'ArSyncModel.setConnectionAdapter(new ArSyncActionCableAdapter())'
82
+ ].join("\n") + "\n",
83
+ before: '//= require_tree .'
84
+ )
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,11 @@
1
+ require 'shellwords'
2
+ module ArSync
3
+ class TypesGenerator < ::Rails::Generators::Base
4
+ argument :output_dir, type: :string, desc: "output directory"
5
+ def generate_typescript_files
6
+ dir = ::Rails.root.join output_dir
7
+ comment = "// generated by: rails generate ar_sync:types #{Shellwords.escape output_dir}\n\n"
8
+ ArSync::TypeScript.generate_typed_files SyncApiController, dir: dir, comment: comment
9
+ end
10
+ end
11
+ end
data/package-lock.json ADDED
@@ -0,0 +1,1115 @@
1
+ {
2
+ "name": "ar_sync",
3
+ "version": "0.0.1",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "@babel/code-frame": {
8
+ "version": "7.0.0",
9
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
10
+ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
11
+ "dev": true,
12
+ "requires": {
13
+ "@babel/highlight": "^7.0.0"
14
+ }
15
+ },
16
+ "@babel/highlight": {
17
+ "version": "7.0.0",
18
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
19
+ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
20
+ "dev": true,
21
+ "requires": {
22
+ "chalk": "^2.0.0",
23
+ "esutils": "^2.0.2",
24
+ "js-tokens": "^4.0.0"
25
+ }
26
+ },
27
+ "@types/actioncable": {
28
+ "version": "5.2.0",
29
+ "resolved": "https://registry.npmjs.org/@types/actioncable/-/actioncable-5.2.0.tgz",
30
+ "integrity": "sha512-fsXlob3/mPO7z8iaTo0Li6QF9q4XY57kUsuL7ijxvLG/9v57K5vsAjULPyCUzWesVgwzmWqiTI+ATJC0+o7x2w==",
31
+ "dev": true
32
+ },
33
+ "@types/prop-types": {
34
+ "version": "15.7.1",
35
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz",
36
+ "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==",
37
+ "dev": true
38
+ },
39
+ "@types/react": {
40
+ "version": "16.8.14",
41
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.14.tgz",
42
+ "integrity": "sha512-26tFVJ1omGmzIdFTFmnC5zhz1GTaqCjxgUxV4KzWvsybF42P7/j4RBn6UeO3KbHPXqKWZszMXMoI65xIWm954A==",
43
+ "dev": true,
44
+ "requires": {
45
+ "@types/prop-types": "*",
46
+ "csstype": "^2.2.0"
47
+ }
48
+ },
49
+ "@typescript-eslint/eslint-plugin": {
50
+ "version": "1.6.0",
51
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.6.0.tgz",
52
+ "integrity": "sha512-U224c29E2lo861TQZs6GSmyC0OYeRNg6bE9UVIiFBxN2MlA0nq2dCrgIVyyRbC05UOcrgf2Wk/CF2gGOPQKUSQ==",
53
+ "dev": true,
54
+ "requires": {
55
+ "@typescript-eslint/parser": "1.6.0",
56
+ "@typescript-eslint/typescript-estree": "1.6.0",
57
+ "requireindex": "^1.2.0",
58
+ "tsutils": "^3.7.0"
59
+ }
60
+ },
61
+ "@typescript-eslint/parser": {
62
+ "version": "1.6.0",
63
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.6.0.tgz",
64
+ "integrity": "sha512-VB9xmSbfafI+/kI4gUK3PfrkGmrJQfh0N4EScT1gZXSZyUxpsBirPL99EWZg9MmPG0pzq/gMtgkk7/rAHj4aQw==",
65
+ "dev": true,
66
+ "requires": {
67
+ "@typescript-eslint/typescript-estree": "1.6.0",
68
+ "eslint-scope": "^4.0.0",
69
+ "eslint-visitor-keys": "^1.0.0"
70
+ }
71
+ },
72
+ "@typescript-eslint/typescript-estree": {
73
+ "version": "1.6.0",
74
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.6.0.tgz",
75
+ "integrity": "sha512-A4CanUwfaG4oXobD5y7EXbsOHjCwn8tj1RDd820etpPAjH+Icjc2K9e/DQM1Hac5zH2BSy+u6bjvvF2wwREvYA==",
76
+ "dev": true,
77
+ "requires": {
78
+ "lodash.unescape": "4.0.1",
79
+ "semver": "5.5.0"
80
+ }
81
+ },
82
+ "acorn": {
83
+ "version": "6.1.1",
84
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
85
+ "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==",
86
+ "dev": true
87
+ },
88
+ "acorn-jsx": {
89
+ "version": "5.0.1",
90
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
91
+ "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
92
+ "dev": true
93
+ },
94
+ "actioncable": {
95
+ "version": "5.2.3",
96
+ "resolved": "https://registry.npmjs.org/actioncable/-/actioncable-5.2.3.tgz",
97
+ "integrity": "sha512-KNdZHRDu92VDSO7SOEJS8Bf5G//LZZLz5e6m7mv8Wjafe9Svdp/DPJ/DpO7rJmPAlKcLAYwi/R7pNJ/VCHV1FQ==",
98
+ "dev": true
99
+ },
100
+ "ajv": {
101
+ "version": "6.10.0",
102
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
103
+ "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
104
+ "dev": true,
105
+ "requires": {
106
+ "fast-deep-equal": "^2.0.1",
107
+ "fast-json-stable-stringify": "^2.0.0",
108
+ "json-schema-traverse": "^0.4.1",
109
+ "uri-js": "^4.2.2"
110
+ }
111
+ },
112
+ "ansi-escapes": {
113
+ "version": "3.2.0",
114
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
115
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
116
+ "dev": true
117
+ },
118
+ "ansi-regex": {
119
+ "version": "3.0.0",
120
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
121
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
122
+ "dev": true
123
+ },
124
+ "ansi-styles": {
125
+ "version": "3.2.1",
126
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
127
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
128
+ "dev": true,
129
+ "requires": {
130
+ "color-convert": "^1.9.0"
131
+ }
132
+ },
133
+ "argparse": {
134
+ "version": "1.0.10",
135
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
136
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
137
+ "dev": true,
138
+ "requires": {
139
+ "sprintf-js": "~1.0.2"
140
+ }
141
+ },
142
+ "astral-regex": {
143
+ "version": "1.0.0",
144
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
145
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
146
+ "dev": true
147
+ },
148
+ "balanced-match": {
149
+ "version": "1.0.0",
150
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
151
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
152
+ "dev": true
153
+ },
154
+ "brace-expansion": {
155
+ "version": "1.1.11",
156
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
157
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
158
+ "dev": true,
159
+ "requires": {
160
+ "balanced-match": "^1.0.0",
161
+ "concat-map": "0.0.1"
162
+ }
163
+ },
164
+ "callsites": {
165
+ "version": "3.1.0",
166
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
167
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
168
+ "dev": true
169
+ },
170
+ "chalk": {
171
+ "version": "2.4.2",
172
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
173
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
174
+ "dev": true,
175
+ "requires": {
176
+ "ansi-styles": "^3.2.1",
177
+ "escape-string-regexp": "^1.0.5",
178
+ "supports-color": "^5.3.0"
179
+ }
180
+ },
181
+ "chardet": {
182
+ "version": "0.7.0",
183
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
184
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
185
+ "dev": true
186
+ },
187
+ "cli-cursor": {
188
+ "version": "2.1.0",
189
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
190
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
191
+ "dev": true,
192
+ "requires": {
193
+ "restore-cursor": "^2.0.0"
194
+ }
195
+ },
196
+ "cli-width": {
197
+ "version": "2.2.0",
198
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
199
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
200
+ "dev": true
201
+ },
202
+ "color-convert": {
203
+ "version": "1.9.3",
204
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
205
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
206
+ "dev": true,
207
+ "requires": {
208
+ "color-name": "1.1.3"
209
+ }
210
+ },
211
+ "color-name": {
212
+ "version": "1.1.3",
213
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
214
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
215
+ "dev": true
216
+ },
217
+ "concat-map": {
218
+ "version": "0.0.1",
219
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
220
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
221
+ "dev": true
222
+ },
223
+ "cross-spawn": {
224
+ "version": "6.0.5",
225
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
226
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
227
+ "dev": true,
228
+ "requires": {
229
+ "nice-try": "^1.0.4",
230
+ "path-key": "^2.0.1",
231
+ "semver": "^5.5.0",
232
+ "shebang-command": "^1.2.0",
233
+ "which": "^1.2.9"
234
+ }
235
+ },
236
+ "csstype": {
237
+ "version": "2.6.4",
238
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz",
239
+ "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==",
240
+ "dev": true
241
+ },
242
+ "debug": {
243
+ "version": "4.1.1",
244
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
245
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
246
+ "dev": true,
247
+ "requires": {
248
+ "ms": "^2.1.1"
249
+ }
250
+ },
251
+ "deep-is": {
252
+ "version": "0.1.3",
253
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
254
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
255
+ "dev": true
256
+ },
257
+ "doctrine": {
258
+ "version": "3.0.0",
259
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
260
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
261
+ "dev": true,
262
+ "requires": {
263
+ "esutils": "^2.0.2"
264
+ }
265
+ },
266
+ "emoji-regex": {
267
+ "version": "7.0.3",
268
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
269
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
270
+ "dev": true
271
+ },
272
+ "escape-string-regexp": {
273
+ "version": "1.0.5",
274
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
275
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
276
+ "dev": true
277
+ },
278
+ "eslint": {
279
+ "version": "5.16.0",
280
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
281
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
282
+ "dev": true,
283
+ "requires": {
284
+ "@babel/code-frame": "^7.0.0",
285
+ "ajv": "^6.9.1",
286
+ "chalk": "^2.1.0",
287
+ "cross-spawn": "^6.0.5",
288
+ "debug": "^4.0.1",
289
+ "doctrine": "^3.0.0",
290
+ "eslint-scope": "^4.0.3",
291
+ "eslint-utils": "^1.3.1",
292
+ "eslint-visitor-keys": "^1.0.0",
293
+ "espree": "^5.0.1",
294
+ "esquery": "^1.0.1",
295
+ "esutils": "^2.0.2",
296
+ "file-entry-cache": "^5.0.1",
297
+ "functional-red-black-tree": "^1.0.1",
298
+ "glob": "^7.1.2",
299
+ "globals": "^11.7.0",
300
+ "ignore": "^4.0.6",
301
+ "import-fresh": "^3.0.0",
302
+ "imurmurhash": "^0.1.4",
303
+ "inquirer": "^6.2.2",
304
+ "js-yaml": "^3.13.0",
305
+ "json-stable-stringify-without-jsonify": "^1.0.1",
306
+ "levn": "^0.3.0",
307
+ "lodash": "^4.17.11",
308
+ "minimatch": "^3.0.4",
309
+ "mkdirp": "^0.5.1",
310
+ "natural-compare": "^1.4.0",
311
+ "optionator": "^0.8.2",
312
+ "path-is-inside": "^1.0.2",
313
+ "progress": "^2.0.0",
314
+ "regexpp": "^2.0.1",
315
+ "semver": "^5.5.1",
316
+ "strip-ansi": "^4.0.0",
317
+ "strip-json-comments": "^2.0.1",
318
+ "table": "^5.2.3",
319
+ "text-table": "^0.2.0"
320
+ },
321
+ "dependencies": {
322
+ "semver": {
323
+ "version": "5.7.0",
324
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
325
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
326
+ "dev": true
327
+ }
328
+ }
329
+ },
330
+ "eslint-scope": {
331
+ "version": "4.0.3",
332
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
333
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
334
+ "dev": true,
335
+ "requires": {
336
+ "esrecurse": "^4.1.0",
337
+ "estraverse": "^4.1.1"
338
+ }
339
+ },
340
+ "eslint-utils": {
341
+ "version": "1.3.1",
342
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
343
+ "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
344
+ "dev": true
345
+ },
346
+ "eslint-visitor-keys": {
347
+ "version": "1.0.0",
348
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
349
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
350
+ "dev": true
351
+ },
352
+ "espree": {
353
+ "version": "5.0.1",
354
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
355
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
356
+ "dev": true,
357
+ "requires": {
358
+ "acorn": "^6.0.7",
359
+ "acorn-jsx": "^5.0.0",
360
+ "eslint-visitor-keys": "^1.0.0"
361
+ }
362
+ },
363
+ "esprima": {
364
+ "version": "4.0.1",
365
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
366
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
367
+ "dev": true
368
+ },
369
+ "esquery": {
370
+ "version": "1.0.1",
371
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
372
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
373
+ "dev": true,
374
+ "requires": {
375
+ "estraverse": "^4.0.0"
376
+ }
377
+ },
378
+ "esrecurse": {
379
+ "version": "4.2.1",
380
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
381
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
382
+ "dev": true,
383
+ "requires": {
384
+ "estraverse": "^4.1.0"
385
+ }
386
+ },
387
+ "estraverse": {
388
+ "version": "4.2.0",
389
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
390
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
391
+ "dev": true
392
+ },
393
+ "esutils": {
394
+ "version": "2.0.2",
395
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
396
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
397
+ "dev": true
398
+ },
399
+ "external-editor": {
400
+ "version": "3.0.3",
401
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
402
+ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
403
+ "dev": true,
404
+ "requires": {
405
+ "chardet": "^0.7.0",
406
+ "iconv-lite": "^0.4.24",
407
+ "tmp": "^0.0.33"
408
+ }
409
+ },
410
+ "fast-deep-equal": {
411
+ "version": "2.0.1",
412
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
413
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
414
+ "dev": true
415
+ },
416
+ "fast-json-stable-stringify": {
417
+ "version": "2.0.0",
418
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
419
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
420
+ "dev": true
421
+ },
422
+ "fast-levenshtein": {
423
+ "version": "2.0.6",
424
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
425
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
426
+ "dev": true
427
+ },
428
+ "figures": {
429
+ "version": "2.0.0",
430
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
431
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
432
+ "dev": true,
433
+ "requires": {
434
+ "escape-string-regexp": "^1.0.5"
435
+ }
436
+ },
437
+ "file-entry-cache": {
438
+ "version": "5.0.1",
439
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
440
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
441
+ "dev": true,
442
+ "requires": {
443
+ "flat-cache": "^2.0.1"
444
+ }
445
+ },
446
+ "flat-cache": {
447
+ "version": "2.0.1",
448
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
449
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
450
+ "dev": true,
451
+ "requires": {
452
+ "flatted": "^2.0.0",
453
+ "rimraf": "2.6.3",
454
+ "write": "1.0.3"
455
+ }
456
+ },
457
+ "flatted": {
458
+ "version": "2.0.0",
459
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
460
+ "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
461
+ "dev": true
462
+ },
463
+ "fs.realpath": {
464
+ "version": "1.0.0",
465
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
466
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
467
+ "dev": true
468
+ },
469
+ "functional-red-black-tree": {
470
+ "version": "1.0.1",
471
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
472
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
473
+ "dev": true
474
+ },
475
+ "glob": {
476
+ "version": "7.1.3",
477
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
478
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
479
+ "dev": true,
480
+ "requires": {
481
+ "fs.realpath": "^1.0.0",
482
+ "inflight": "^1.0.4",
483
+ "inherits": "2",
484
+ "minimatch": "^3.0.4",
485
+ "once": "^1.3.0",
486
+ "path-is-absolute": "^1.0.0"
487
+ }
488
+ },
489
+ "globals": {
490
+ "version": "11.11.0",
491
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
492
+ "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
493
+ "dev": true
494
+ },
495
+ "has-flag": {
496
+ "version": "3.0.0",
497
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
498
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
499
+ "dev": true
500
+ },
501
+ "iconv-lite": {
502
+ "version": "0.4.24",
503
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
504
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
505
+ "dev": true,
506
+ "requires": {
507
+ "safer-buffer": ">= 2.1.2 < 3"
508
+ }
509
+ },
510
+ "ignore": {
511
+ "version": "4.0.6",
512
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
513
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
514
+ "dev": true
515
+ },
516
+ "import-fresh": {
517
+ "version": "3.0.0",
518
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz",
519
+ "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==",
520
+ "dev": true,
521
+ "requires": {
522
+ "parent-module": "^1.0.0",
523
+ "resolve-from": "^4.0.0"
524
+ }
525
+ },
526
+ "imurmurhash": {
527
+ "version": "0.1.4",
528
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
529
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
530
+ "dev": true
531
+ },
532
+ "inflight": {
533
+ "version": "1.0.6",
534
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
535
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
536
+ "dev": true,
537
+ "requires": {
538
+ "once": "^1.3.0",
539
+ "wrappy": "1"
540
+ }
541
+ },
542
+ "inherits": {
543
+ "version": "2.0.3",
544
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
545
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
546
+ "dev": true
547
+ },
548
+ "inquirer": {
549
+ "version": "6.2.2",
550
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz",
551
+ "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==",
552
+ "dev": true,
553
+ "requires": {
554
+ "ansi-escapes": "^3.2.0",
555
+ "chalk": "^2.4.2",
556
+ "cli-cursor": "^2.1.0",
557
+ "cli-width": "^2.0.0",
558
+ "external-editor": "^3.0.3",
559
+ "figures": "^2.0.0",
560
+ "lodash": "^4.17.11",
561
+ "mute-stream": "0.0.7",
562
+ "run-async": "^2.2.0",
563
+ "rxjs": "^6.4.0",
564
+ "string-width": "^2.1.0",
565
+ "strip-ansi": "^5.0.0",
566
+ "through": "^2.3.6"
567
+ },
568
+ "dependencies": {
569
+ "ansi-regex": {
570
+ "version": "4.1.0",
571
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
572
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
573
+ "dev": true
574
+ },
575
+ "strip-ansi": {
576
+ "version": "5.2.0",
577
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
578
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
579
+ "dev": true,
580
+ "requires": {
581
+ "ansi-regex": "^4.1.0"
582
+ }
583
+ }
584
+ }
585
+ },
586
+ "is-fullwidth-code-point": {
587
+ "version": "2.0.0",
588
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
589
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
590
+ "dev": true
591
+ },
592
+ "is-promise": {
593
+ "version": "2.1.0",
594
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
595
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
596
+ "dev": true
597
+ },
598
+ "isexe": {
599
+ "version": "2.0.0",
600
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
601
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
602
+ "dev": true
603
+ },
604
+ "js-tokens": {
605
+ "version": "4.0.0",
606
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
607
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
608
+ "dev": true
609
+ },
610
+ "js-yaml": {
611
+ "version": "3.13.1",
612
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
613
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
614
+ "dev": true,
615
+ "requires": {
616
+ "argparse": "^1.0.7",
617
+ "esprima": "^4.0.0"
618
+ }
619
+ },
620
+ "json-schema-traverse": {
621
+ "version": "0.4.1",
622
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
623
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
624
+ "dev": true
625
+ },
626
+ "json-stable-stringify-without-jsonify": {
627
+ "version": "1.0.1",
628
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
629
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
630
+ "dev": true
631
+ },
632
+ "levn": {
633
+ "version": "0.3.0",
634
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
635
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
636
+ "dev": true,
637
+ "requires": {
638
+ "prelude-ls": "~1.1.2",
639
+ "type-check": "~0.3.2"
640
+ }
641
+ },
642
+ "lodash": {
643
+ "version": "4.17.11",
644
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
645
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
646
+ "dev": true
647
+ },
648
+ "lodash.unescape": {
649
+ "version": "4.0.1",
650
+ "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
651
+ "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
652
+ "dev": true
653
+ },
654
+ "loose-envify": {
655
+ "version": "1.4.0",
656
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
657
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
658
+ "dev": true,
659
+ "requires": {
660
+ "js-tokens": "^3.0.0 || ^4.0.0"
661
+ }
662
+ },
663
+ "mimic-fn": {
664
+ "version": "1.2.0",
665
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
666
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
667
+ "dev": true
668
+ },
669
+ "minimatch": {
670
+ "version": "3.0.4",
671
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
672
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
673
+ "dev": true,
674
+ "requires": {
675
+ "brace-expansion": "^1.1.7"
676
+ }
677
+ },
678
+ "minimist": {
679
+ "version": "0.0.8",
680
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
681
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
682
+ "dev": true
683
+ },
684
+ "mkdirp": {
685
+ "version": "0.5.1",
686
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
687
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
688
+ "dev": true,
689
+ "requires": {
690
+ "minimist": "0.0.8"
691
+ }
692
+ },
693
+ "ms": {
694
+ "version": "2.1.1",
695
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
696
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
697
+ "dev": true
698
+ },
699
+ "mute-stream": {
700
+ "version": "0.0.7",
701
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
702
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
703
+ "dev": true
704
+ },
705
+ "natural-compare": {
706
+ "version": "1.4.0",
707
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
708
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
709
+ "dev": true
710
+ },
711
+ "nice-try": {
712
+ "version": "1.0.5",
713
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
714
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
715
+ "dev": true
716
+ },
717
+ "object-assign": {
718
+ "version": "4.1.1",
719
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
720
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
721
+ "dev": true
722
+ },
723
+ "once": {
724
+ "version": "1.4.0",
725
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
726
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
727
+ "dev": true,
728
+ "requires": {
729
+ "wrappy": "1"
730
+ }
731
+ },
732
+ "onetime": {
733
+ "version": "2.0.1",
734
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
735
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
736
+ "dev": true,
737
+ "requires": {
738
+ "mimic-fn": "^1.0.0"
739
+ }
740
+ },
741
+ "optionator": {
742
+ "version": "0.8.2",
743
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
744
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
745
+ "dev": true,
746
+ "requires": {
747
+ "deep-is": "~0.1.3",
748
+ "fast-levenshtein": "~2.0.4",
749
+ "levn": "~0.3.0",
750
+ "prelude-ls": "~1.1.2",
751
+ "type-check": "~0.3.2",
752
+ "wordwrap": "~1.0.0"
753
+ }
754
+ },
755
+ "os-tmpdir": {
756
+ "version": "1.0.2",
757
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
758
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
759
+ "dev": true
760
+ },
761
+ "parent-module": {
762
+ "version": "1.0.1",
763
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
764
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
765
+ "dev": true,
766
+ "requires": {
767
+ "callsites": "^3.0.0"
768
+ }
769
+ },
770
+ "path-is-absolute": {
771
+ "version": "1.0.1",
772
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
773
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
774
+ "dev": true
775
+ },
776
+ "path-is-inside": {
777
+ "version": "1.0.2",
778
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
779
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
780
+ "dev": true
781
+ },
782
+ "path-key": {
783
+ "version": "2.0.1",
784
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
785
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
786
+ "dev": true
787
+ },
788
+ "prelude-ls": {
789
+ "version": "1.1.2",
790
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
791
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
792
+ "dev": true
793
+ },
794
+ "progress": {
795
+ "version": "2.0.3",
796
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
797
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
798
+ "dev": true
799
+ },
800
+ "prop-types": {
801
+ "version": "15.7.2",
802
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
803
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
804
+ "dev": true,
805
+ "requires": {
806
+ "loose-envify": "^1.4.0",
807
+ "object-assign": "^4.1.1",
808
+ "react-is": "^16.8.1"
809
+ }
810
+ },
811
+ "punycode": {
812
+ "version": "2.1.1",
813
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
814
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
815
+ "dev": true
816
+ },
817
+ "react": {
818
+ "version": "16.8.6",
819
+ "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz",
820
+ "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==",
821
+ "dev": true,
822
+ "requires": {
823
+ "loose-envify": "^1.1.0",
824
+ "object-assign": "^4.1.1",
825
+ "prop-types": "^15.6.2",
826
+ "scheduler": "^0.13.6"
827
+ }
828
+ },
829
+ "react-is": {
830
+ "version": "16.8.6",
831
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
832
+ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==",
833
+ "dev": true
834
+ },
835
+ "regexpp": {
836
+ "version": "2.0.1",
837
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
838
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
839
+ "dev": true
840
+ },
841
+ "requireindex": {
842
+ "version": "1.2.0",
843
+ "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
844
+ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
845
+ "dev": true
846
+ },
847
+ "resolve-from": {
848
+ "version": "4.0.0",
849
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
850
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
851
+ "dev": true
852
+ },
853
+ "restore-cursor": {
854
+ "version": "2.0.0",
855
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
856
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
857
+ "dev": true,
858
+ "requires": {
859
+ "onetime": "^2.0.0",
860
+ "signal-exit": "^3.0.2"
861
+ }
862
+ },
863
+ "rimraf": {
864
+ "version": "2.6.3",
865
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
866
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
867
+ "dev": true,
868
+ "requires": {
869
+ "glob": "^7.1.3"
870
+ }
871
+ },
872
+ "run-async": {
873
+ "version": "2.3.0",
874
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
875
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
876
+ "dev": true,
877
+ "requires": {
878
+ "is-promise": "^2.1.0"
879
+ }
880
+ },
881
+ "rxjs": {
882
+ "version": "6.4.0",
883
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
884
+ "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
885
+ "dev": true,
886
+ "requires": {
887
+ "tslib": "^1.9.0"
888
+ }
889
+ },
890
+ "safer-buffer": {
891
+ "version": "2.1.2",
892
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
893
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
894
+ "dev": true
895
+ },
896
+ "scheduler": {
897
+ "version": "0.13.6",
898
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz",
899
+ "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==",
900
+ "dev": true,
901
+ "requires": {
902
+ "loose-envify": "^1.1.0",
903
+ "object-assign": "^4.1.1"
904
+ }
905
+ },
906
+ "semver": {
907
+ "version": "5.5.0",
908
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
909
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
910
+ "dev": true
911
+ },
912
+ "shebang-command": {
913
+ "version": "1.2.0",
914
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
915
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
916
+ "dev": true,
917
+ "requires": {
918
+ "shebang-regex": "^1.0.0"
919
+ }
920
+ },
921
+ "shebang-regex": {
922
+ "version": "1.0.0",
923
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
924
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
925
+ "dev": true
926
+ },
927
+ "signal-exit": {
928
+ "version": "3.0.2",
929
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
930
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
931
+ "dev": true
932
+ },
933
+ "slice-ansi": {
934
+ "version": "2.1.0",
935
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
936
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
937
+ "dev": true,
938
+ "requires": {
939
+ "ansi-styles": "^3.2.0",
940
+ "astral-regex": "^1.0.0",
941
+ "is-fullwidth-code-point": "^2.0.0"
942
+ }
943
+ },
944
+ "sprintf-js": {
945
+ "version": "1.0.3",
946
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
947
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
948
+ "dev": true
949
+ },
950
+ "string-width": {
951
+ "version": "2.1.1",
952
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
953
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
954
+ "dev": true,
955
+ "requires": {
956
+ "is-fullwidth-code-point": "^2.0.0",
957
+ "strip-ansi": "^4.0.0"
958
+ }
959
+ },
960
+ "strip-ansi": {
961
+ "version": "4.0.0",
962
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
963
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
964
+ "dev": true,
965
+ "requires": {
966
+ "ansi-regex": "^3.0.0"
967
+ }
968
+ },
969
+ "strip-json-comments": {
970
+ "version": "2.0.1",
971
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
972
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
973
+ "dev": true
974
+ },
975
+ "supports-color": {
976
+ "version": "5.5.0",
977
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
978
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
979
+ "dev": true,
980
+ "requires": {
981
+ "has-flag": "^3.0.0"
982
+ }
983
+ },
984
+ "table": {
985
+ "version": "5.2.3",
986
+ "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz",
987
+ "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==",
988
+ "dev": true,
989
+ "requires": {
990
+ "ajv": "^6.9.1",
991
+ "lodash": "^4.17.11",
992
+ "slice-ansi": "^2.1.0",
993
+ "string-width": "^3.0.0"
994
+ },
995
+ "dependencies": {
996
+ "ansi-regex": {
997
+ "version": "4.1.0",
998
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
999
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1000
+ "dev": true
1001
+ },
1002
+ "string-width": {
1003
+ "version": "3.1.0",
1004
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1005
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1006
+ "dev": true,
1007
+ "requires": {
1008
+ "emoji-regex": "^7.0.1",
1009
+ "is-fullwidth-code-point": "^2.0.0",
1010
+ "strip-ansi": "^5.1.0"
1011
+ }
1012
+ },
1013
+ "strip-ansi": {
1014
+ "version": "5.2.0",
1015
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1016
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1017
+ "dev": true,
1018
+ "requires": {
1019
+ "ansi-regex": "^4.1.0"
1020
+ }
1021
+ }
1022
+ }
1023
+ },
1024
+ "text-table": {
1025
+ "version": "0.2.0",
1026
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1027
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1028
+ "dev": true
1029
+ },
1030
+ "through": {
1031
+ "version": "2.3.8",
1032
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1033
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1034
+ "dev": true
1035
+ },
1036
+ "tmp": {
1037
+ "version": "0.0.33",
1038
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1039
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1040
+ "dev": true,
1041
+ "requires": {
1042
+ "os-tmpdir": "~1.0.2"
1043
+ }
1044
+ },
1045
+ "tslib": {
1046
+ "version": "1.9.3",
1047
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
1048
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
1049
+ "dev": true
1050
+ },
1051
+ "tsutils": {
1052
+ "version": "3.10.0",
1053
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.10.0.tgz",
1054
+ "integrity": "sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q==",
1055
+ "dev": true,
1056
+ "requires": {
1057
+ "tslib": "^1.8.1"
1058
+ }
1059
+ },
1060
+ "type-check": {
1061
+ "version": "0.3.2",
1062
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1063
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1064
+ "dev": true,
1065
+ "requires": {
1066
+ "prelude-ls": "~1.1.2"
1067
+ }
1068
+ },
1069
+ "typescript": {
1070
+ "version": "3.4.5",
1071
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
1072
+ "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==",
1073
+ "dev": true
1074
+ },
1075
+ "uri-js": {
1076
+ "version": "4.2.2",
1077
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1078
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1079
+ "dev": true,
1080
+ "requires": {
1081
+ "punycode": "^2.1.0"
1082
+ }
1083
+ },
1084
+ "which": {
1085
+ "version": "1.3.1",
1086
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1087
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1088
+ "dev": true,
1089
+ "requires": {
1090
+ "isexe": "^2.0.0"
1091
+ }
1092
+ },
1093
+ "wordwrap": {
1094
+ "version": "1.0.0",
1095
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1096
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
1097
+ "dev": true
1098
+ },
1099
+ "wrappy": {
1100
+ "version": "1.0.2",
1101
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1102
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1103
+ "dev": true
1104
+ },
1105
+ "write": {
1106
+ "version": "1.0.3",
1107
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1108
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1109
+ "dev": true,
1110
+ "requires": {
1111
+ "mkdirp": "^0.5.1"
1112
+ }
1113
+ }
1114
+ }
1115
+ }