fluentd-ui 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.js +2 -1
  3. data/ChangeLog.md +8 -0
  4. data/Gemfile.lock +28 -28
  5. data/app/assets/stylesheets/application.css +1 -0
  6. data/app/controllers/misc_controller.rb +8 -0
  7. data/app/controllers/plugins_controller.rb +20 -3
  8. data/app/decorators/plugin_decorator.rb +18 -0
  9. data/app/helpers/application_helper.rb +0 -10
  10. data/app/javascript/packs/application.js +7 -5
  11. data/app/javascript/packs/codemirror.js +2 -1
  12. data/app/javascript/packs/{aws_credential.js → components/aws_credential.js} +0 -0
  13. data/app/javascript/packs/components/config_field.js +110 -0
  14. data/app/javascript/packs/{grep_container.js → components/grep_container.js} +1 -1
  15. data/app/javascript/packs/{grep_pattern.js → components/grep_pattern.js} +4 -2
  16. data/app/javascript/packs/components/owned_plugin_form.js +88 -0
  17. data/app/javascript/packs/{parser_multiline_form.js → components/parser_multiline_form.js} +0 -0
  18. data/app/javascript/packs/{owned_plugin_form.js → components/parser_plugin_form.js} +12 -20
  19. data/app/javascript/packs/{transport_config.js → components/transport_config.js} +0 -0
  20. data/app/javascript/packs/filter_grep_setting.js +2 -2
  21. data/app/javascript/packs/fluent_log.js +1 -1
  22. data/app/javascript/packs/in_tail_parse.js +20 -16
  23. data/app/javascript/packs/{notification.js → navigation.js} +8 -6
  24. data/app/javascript/packs/nested_settings.js +1 -1
  25. data/app/javascript/packs/out_forward_setting.js +3 -3
  26. data/app/javascript/packs/out_s3_setting.js +3 -3
  27. data/app/javascript/packs/plugin_setting.js +4 -2
  28. data/app/javascript/packs/settings.js +2 -2
  29. data/app/javascript/packs/store/index.js +21 -0
  30. data/app/javascript/packs/store/modules/parser_params.js +83 -0
  31. data/app/javascript/packs/transport_section.js +2 -2
  32. data/app/javascript/packs/treeview.js +1 -1
  33. data/app/models/concerns/fluentd/setting/configurable.rb +1 -1
  34. data/app/models/concerns/fluentd/setting/formatter_advanced_options.rb +22 -0
  35. data/app/models/concerns/fluentd/setting/label.rb +1 -1
  36. data/app/models/concerns/fluentd/setting/parser_advanced_options.rb +27 -0
  37. data/app/models/concerns/fluentd/setting/plugin.rb +12 -1
  38. data/app/models/fluentd/setting/buffer_file.rb +4 -0
  39. data/app/models/fluentd/setting/buffer_memory.rb +4 -0
  40. data/app/models/fluentd/setting/parser_ltsv.rb +1 -1
  41. data/app/models/fluentd/setting/parser_regexp.rb +2 -2
  42. data/app/models/fluentd/setting/parser_syslog.rb +2 -8
  43. data/app/models/plugin.rb +4 -4
  44. data/app/views/fluentd/settings/in_tail/_form.html.haml +3 -3
  45. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +1 -1
  46. data/app/views/fluentd/settings/source_and_output.html.haml +10 -10
  47. data/app/views/layouts/application.html.erb +2 -28
  48. data/app/views/misc/information.html.haml +48 -44
  49. data/app/views/plugins/installed.html.haml +49 -60
  50. data/app/views/plugins/recommended.html.haml +54 -54
  51. data/app/views/sessions/new.html.haml +10 -4
  52. data/app/views/shared/settings/_form.html.haml +16 -13
  53. data/app/views/shared/vue/_aws_credential.html.haml +2 -4
  54. data/app/views/shared/vue/_config_field.html.haml +16 -30
  55. data/app/views/shared/vue/_grep_container.html.haml +13 -14
  56. data/app/views/shared/vue/_grep_pattern.html.haml +10 -6
  57. data/app/views/shared/vue/_in_tail_parse.html.haml +13 -13
  58. data/app/views/shared/vue/_navigation.html.haml +38 -0
  59. data/app/views/shared/vue/_owned_plugin_form.html.haml +18 -13
  60. data/app/views/shared/vue/_parser_multiline_form.html.haml +5 -3
  61. data/app/views/shared/vue/_parser_plugin_form.html.haml +40 -0
  62. data/app/views/shared/vue/_setting.html.haml +20 -0
  63. data/app/views/shared/vue/_sidemenu.html.haml +40 -0
  64. data/app/views/shared/vue/_transport_section.html.haml +10 -8
  65. data/app/views/shared/vue/_treeview.html.haml +30 -0
  66. data/config/locales/translation_en.yml +1 -0
  67. data/config/locales/translation_ja.yml +1 -0
  68. data/lib/fluentd-ui/version.rb +1 -1
  69. data/lib/regexp_preview/multi_line.rb +4 -3
  70. data/lib/regexp_preview/single_line.rb +4 -3
  71. data/package.json +3 -1
  72. data/test/test_helper.rb +5 -0
  73. data/yarn.lock +111 -5
  74. metadata +62 -78
  75. data/app/javascript/packs/config_field.js +0 -93
  76. data/app/views/shared/_global_nav.html.erb +0 -80
  77. data/app/views/shared/_modal.html.erb +0 -25
  78. data/app/views/shared/vue/_notification.html.erb +0 -27
  79. data/app/views/shared/vue/_setting.html.erb +0 -25
  80. data/app/views/shared/vue/_treeview.html.erb +0 -33
@@ -1,8 +1,10 @@
1
1
  %script{type: "text/x-template", id: "vue-parser-multiline-form"}
2
2
  .form-group
3
- %label{"for" => "setting_parse_0__format_firstline",
4
- "data-toggle" => "tooltip",
5
- "data-placement" => "right",
3
+ %b-tooltip{"target" => "label_setting_parse_0__format_firstline",
4
+ "placement" => "right",
5
+ "v-bind:title" => "formatFirstlineDesc"}
6
+ %label{"id" => "label_setting_parse_0__format_firstline",
7
+ "for" => "setting_parse_0__format_firstline",
6
8
  "v-bind:title" => "formatFirstlineDesc"}
7
9
  Format first line
8
10
  %input.form-control{"type" => "text",
@@ -0,0 +1,40 @@
1
+ = render "shared/vue/parser_multiline_form"
2
+ = render "shared/vue/config_field"
3
+
4
+ %script{type: "text/x-template", id: "vue-parser-plugin-form"}
5
+ .form-group.mb-3{"v-bind:id" => "id"}
6
+ %b-card{"bg-variant" => "light"}
7
+ %label{"v-bind:for" => "selectId(pluginType)"}
8
+ {{ pluginLabel }}
9
+ %select{"v-bind:id" => "selectId(pluginType)",
10
+ "v-bind:class" => "selectClass(pluginType)",
11
+ "v-bind:name" => "selectName(pluginType)",
12
+ "v-model" => "pluginName",
13
+ "v-on:change" => "onChange"}
14
+ %option{"v-for" => "option in options",
15
+ "v-bind:value" => "option",
16
+ "v-bind:selected" => "pluginName===option"}
17
+ {{ option }}
18
+ %parser-multiline-form{"v-if" => 'pluginName==="multiline"',
19
+ "v-bind:plugin-type" => "pluginType",
20
+ "v-bind:common-options" => "commonOptions",
21
+ "v-on:change-formats" => "onChangeFormats"}
22
+ %template(v-else)
23
+ %template{"v-for" => "option in commonOptions"}
24
+ %config-field{"v-bind:key" => "option.name",
25
+ "v-bind:plugin-type" => "pluginType",
26
+ "v-bind:option" => "option",
27
+ "v-bind:initial-text-value" => "initialParams[option.name]",
28
+ "v-on:change-parse-config" => "onChangeParseConfig"}
29
+ %template{"v-if" => '!_.isEmpty(advancedOptions)'}
30
+ %b-card(no-body){"bg-variant" => "light"}
31
+ %template{"slot" => "header"}
32
+ %h4{"v-b-toggle" => '"parser-section-advanced-setting"'}
33
+ = icon('fa-caret-down')
34
+ = t('terms.advanced_setting')
35
+ %b-collapse{"id" => "parser-section-advanced-setting"}
36
+ %b-card-body
37
+ %config-field{"v-for" => "option in advancedOptions",
38
+ "v-bind:key" => "option.name",
39
+ "v-bind:plugin-type" => "pluginType",
40
+ "v-bind:option" => "option"}
@@ -0,0 +1,20 @@
1
+ - add_javascript_pack_tag('codemirror')
2
+
3
+ %script{"type" => "text/x-template", "id" => "vue-setting-section"}
4
+ %b-card.mb-3(no-body){"variant" => "primary"}
5
+ %template{"slot" => "header"}
6
+ %div{"data-toggle" => "collapse", "v-bind:href" => "`#${id}`", "v-bind:title" => "content"}
7
+ = icon("fa-caret-down")
8
+ {{ type }}
9
+ %span{"v-if" => '!_.isEmpty(arg) && (name == "match" || name == "filter")'}
10
+ ({{ arg }})
11
+ %b-card-body.collapse{"v-bind:id" => "id"}
12
+ %pre{"v-if" => 'mode !== "edit"'}
13
+ {{ content }}
14
+ %p{"v-if" => 'mode === "edit"'}
15
+ %textarea.form-control(v-config-editor){"v-model.lazy" => "content", "v-bind:disabled" => "processing"}
16
+ %p.float-right
17
+ %b-button{"v-if" => 'mode !== "edit"', "variant" => "secondary", "v-on:click" => "onEdit"}=t("terms.edit")
18
+ %b-button{"v-if" => 'mode !== "edit"', "variant" => "danger", "v-on:click" => "onDelete"}=t("terms.destroy")
19
+ %b-button{"v-if" => 'mode === "edit"', "variant" => "secondary", "v-on:click" => "onCancel"}=t("terms.cancel")
20
+ %b-button{"v-if" => 'mode === "edit"', "variant" => "primary", "v-on:click" => "onSubmit"}=t("terms.save")
@@ -0,0 +1,40 @@
1
+ %ul#side-menu.navbar-nav.navbar-sidenav
2
+ %li.nav-item
3
+ %b-tooltip{"target" => "side-menu-fluentd", "placement" => "right", "title" => "Fluentd"}
4
+ %a#side-menu-fluentd.section
5
+ = icon("fa-puzzle-piece fa-fw") + "fluentd"
6
+ %ul.sidenav-second-level
7
+ - if fluentd_exists?
8
+ %li= link_to_other(t('fluentd.show.page_title'), daemon_path)
9
+ %li= link_to_other(t('fluentd.settings.source_and_output.page_title'), source_and_output_daemon_setting_path)
10
+ %li= link_to_other(t('fluentd.settings.show.page_title'), daemon_setting_path)
11
+ %li= link_to_other(t('fluentd.common.log'), log_daemon_path)
12
+ %li= link_to_other(t('fluentd.errors.page_title'), errors_daemon_path)
13
+ - else
14
+ %li= link_to_other(t('terms.initial_setup'), daemon_path)
15
+
16
+ - if fluentd_exists?
17
+ %li.nav-item
18
+ %b-tooltip{"target" => "side-menu-plugins", "placement" => "right", "title" => "Plugins"}
19
+ %a#side-menu-plugins.section
20
+ = icon("fa-cogs fa-fw") + t("terms.plugins")
21
+ %ul.sidenav-second-level
22
+ %li= link_to_other(t("plugins.installed.page_title"), installed_plugins_path)
23
+ %li= link_to_other(t("plugins.recommended.page_title"), recommended_plugins_path)
24
+ %li= link_to_other(t("plugins.updated.page_title"), updated_plugins_path)
25
+
26
+ %li.nav-item
27
+ %b-tooltip{"target" => "side-menu-misc", "placement" => "right", "title" => "Misc"}
28
+ %a#side-menu-misc.section
29
+ = icon("fa-coffee fa-fw") + t("terms.misc")
30
+ %ul.sidenav-second-level
31
+ %li= link_to_other(t("misc.information.page_title"), misc_information_path)
32
+ %li= link_to_other t('users.show.page_title'), user_path
33
+
34
+ %li.nav-item
35
+ %b-tooltip{"target" => "side-menu-language", "placement" => "right", "title" => "Language"}
36
+ %a#side-menu-language.section
37
+ = icon("fa-font") + t("terms.languages")
38
+ %ul.sidenav-second-level
39
+ - I18n.available_locales.each do |locale|
40
+ %li= link_to((locale == current_locale ? icon("fa-check") : "") + language_name(locale), "?lang=#{locale}")
@@ -20,11 +20,13 @@
20
20
  %template{"v-for" => "option in commonOptions"}
21
21
  %config-field{"v-bind:plugin-type" => "pluginType",
22
22
  "v-bind:option" => "option"}
23
- .card.card-body.bg-light
24
- %h4{"data-toggle" => "collapse", "href" => "#transport-advanced-setting"}
25
- = icon('fa-caret-down')
26
- = t('terms.advanced_setting') + '(TLS)'
27
- #transport-advanced-setting.collapse
28
- %template{"v-for" => "option in advancedOptions"}
29
- %config-field{"v-bind:plugin-type" => "pluginType",
30
- "v-bind:option" => "option"}
23
+ %b-card(no-body){"bg-variant" => "light"}
24
+ %template{"slot" => "header"}
25
+ %h4{"v-b-toggle" => "'transport-advanced-setting'"}
26
+ = icon('fa-caret-down')
27
+ = t('terms.advanced_setting') + '(TLS)'
28
+ %b-collapse{"id" => "transport-advanced-setting"}
29
+ %b-card-body
30
+ %template{"v-for" => "option in advancedOptions"}
31
+ %config-field{"v-bind:plugin-type" => "pluginType",
32
+ "v-bind:option" => "option"}
@@ -0,0 +1,30 @@
1
+ :ruby
2
+ add_javascript_pack_tag("treeview")
3
+ name ||= ""
4
+ action ||= ""
5
+ submit_button ||= ""
6
+
7
+ = form_tag(action, method: :post) do
8
+ #treeview
9
+ %b-card{"variant" => "light"}
10
+ %pre.pb-0.mb-0
11
+ {{ path }}
12
+ %input{"type" => "hidden", "name" => name, "v-model" => "path"}
13
+ .dirs
14
+ %span{"v-for" => "(dir, index) in currentDirs"}
15
+ %span{"v-if" => "index > 0"}= icon("fa-caret-right")
16
+ %span.dir{"v-on:click" => "selectPath(dir)"}
17
+ {{ basename(dir) }}
18
+ .tree
19
+ %span{"v-on:click" => "selectPath(value.path)",
20
+ "v-bind:class" => "{ selected: isSelected(value.path) }",
21
+ "v-for" => "value in paths"}
22
+ %span{"v-if" => "value.is_dir"}= icon("fa-folder")
23
+ %span{"v-if" => "!value.is_dir"}= icon("fa-file-o")
24
+ {{ basename(value.path) }}
25
+ %br
26
+
27
+ %pre.preview{"v-if" => "preview"}
28
+ {{ preview }}
29
+ %p.mt-3
30
+ = submit_tag(submit_button, class: "btn btn-lg btn-primary float-right", "v-bind:disabled" => "selectedIsDir")
@@ -50,6 +50,7 @@ en:
50
50
  installing: "Installing: %{target}"
51
51
  uninstalling: "Uninstalling: %{target}"
52
52
  search: Search
53
+ clear: Clear
53
54
  changeme_password: '<a href="/user">Change the password</a> from default for your security'
54
55
  destroy_confirm_title: "%{target} Deletion"
55
56
  confirm_body: |
@@ -50,6 +50,7 @@ ja:
50
50
  installing: "インストール中: %{target}"
51
51
  uninstalling: "アンインストール中: %{target}"
52
52
  search: 検索
53
+ clear: クリア
53
54
  changeme_password: 'パスワードを初期設定から<a href="/user">変更</a>してください'
54
55
  destroy_confirm_title: "%{target}を削除"
55
56
  confirm_body: |
@@ -1,3 +1,3 @@
1
1
  module FluentdUI
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -47,12 +47,13 @@ module RegexpPreview
47
47
  next unless record
48
48
  last_pos = 0
49
49
  record.each do |key, value|
50
- start = chunk.index(value, last_pos)
51
- finish = start + value.bytesize
50
+ v = value.to_s
51
+ start = chunk.index(v, last_pos)
52
+ finish = start + v.bytesize
52
53
  last_pos = finish
53
54
  parsed[:matches] << {
54
55
  key: key,
55
- matched: value,
56
+ matched: v,
56
57
  pos: [start, finish]
57
58
  }
58
59
  end
@@ -36,12 +36,13 @@ module RegexpPreview
36
36
  next unless record
37
37
  last_pos = 0
38
38
  record.each do |key, value|
39
- start = line.index(value, last_pos)
40
- finish = start + value.bytesize
39
+ v = value.to_s
40
+ start = line.index(v, last_pos)
41
+ finish = start + v.bytesize
41
42
  last_pos = finish
42
43
  parsed[:matches] << {
43
44
  key: key,
44
- matched: value,
45
+ matched: v,
45
46
  pos: [start, finish]
46
47
  }
47
48
  end
@@ -6,6 +6,7 @@
6
6
  },
7
7
  "dependencies": {
8
8
  "@rails/webpacker": "3.5",
9
+ "bootstrap-vue": "^2.0.0-rc.11",
9
10
  "codemirror": "^5.37.0",
10
11
  "es6-promise": "^4.2.4",
11
12
  "jquery": "^3.3.1",
@@ -15,7 +16,8 @@
15
16
  "startbootstrap-sb-admin": "^4.0.0",
16
17
  "vue": "^2.5.16",
17
18
  "vue-loader": "14.2.2",
18
- "vue-template-compiler": "^2.5.16"
19
+ "vue-template-compiler": "^2.5.16",
20
+ "vuex": "^3.0.1"
19
21
  },
20
22
  "devDependencies": {
21
23
  "eslint": "^5.1.0",
@@ -1,4 +1,9 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
+ if ENV['RAILS_ENV'] == 'test'
3
+ require 'simplecov'
4
+ SimpleCov.start("rails")
5
+ end
6
+
2
7
  require_relative '../config/environment'
3
8
  require 'test/unit/rails/test_help'
4
9
  require 'test/unit/rr'
data/yarn.lock CHANGED
@@ -123,6 +123,10 @@ amdefine@>=0.0.4:
123
123
  version "1.0.1"
124
124
  resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
125
125
 
126
+ ansi-escapes@^1.1.0:
127
+ version "1.4.0"
128
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
129
+
126
130
  ansi-escapes@^3.0.0:
127
131
  version "3.1.0"
128
132
  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
@@ -725,6 +729,14 @@ babel-plugin-transform-strict-mode@^6.24.1:
725
729
  babel-runtime "^6.22.0"
726
730
  babel-types "^6.24.1"
727
731
 
732
+ babel-polyfill@6.23.0:
733
+ version "6.23.0"
734
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
735
+ dependencies:
736
+ babel-runtime "^6.22.0"
737
+ core-js "^2.4.0"
738
+ regenerator-runtime "^0.10.0"
739
+
728
740
  babel-polyfill@^6.26.0:
729
741
  version "6.26.0"
730
742
  resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
@@ -928,10 +940,25 @@ boom@5.x.x:
928
940
  dependencies:
929
941
  hoek "4.x.x"
930
942
 
943
+ bootstrap-vue@^2.0.0-rc.11:
944
+ version "2.0.0-rc.11"
945
+ resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.0.0-rc.11.tgz#47aaa6d2a8d390477de75e636d8ea652b1d03f59"
946
+ dependencies:
947
+ bootstrap "^4.1.1"
948
+ lodash.get "^4.4.2"
949
+ lodash.startcase "^4.4.0"
950
+ opencollective "^1.0.3"
951
+ popper.js "^1.12.9"
952
+ vue-functional-data-merge "^2.0.5"
953
+
931
954
  bootstrap@4.0.0:
932
955
  version "4.0.0"
933
956
  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.0.0.tgz#ceb03842c145fcc1b9b4e15da2a05656ba68469a"
934
957
 
958
+ bootstrap@^4.1.1:
959
+ version "4.1.3"
960
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.3.tgz#0eb371af2c8448e8c210411d0cb824a6409a12be"
961
+
935
962
  brace-expansion@^1.1.7:
936
963
  version "1.1.11"
937
964
  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1181,7 +1208,7 @@ center-align@^0.1.1:
1181
1208
  align-text "^0.1.3"
1182
1209
  lazy-cache "^1.0.3"
1183
1210
 
1184
- chalk@^1.1.1, chalk@^1.1.3:
1211
+ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
1185
1212
  version "1.1.3"
1186
1213
  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
1187
1214
  dependencies:
@@ -1958,6 +1985,12 @@ encodeurl@~1.0.2:
1958
1985
  version "1.0.2"
1959
1986
  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
1960
1987
 
1988
+ encoding@^0.1.11:
1989
+ version "0.1.12"
1990
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
1991
+ dependencies:
1992
+ iconv-lite "~0.4.13"
1993
+
1961
1994
  end-of-stream@^1.0.0, end-of-stream@^1.1.0:
1962
1995
  version "1.4.1"
1963
1996
  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
@@ -2321,7 +2354,7 @@ extend@~3.0.0, extend@~3.0.1:
2321
2354
  version "3.0.1"
2322
2355
  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
2323
2356
 
2324
- external-editor@^2.1.0:
2357
+ external-editor@^2.0.1, external-editor@^2.1.0:
2325
2358
  version "2.2.0"
2326
2359
  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
2327
2360
  dependencies:
@@ -2994,6 +3027,12 @@ iconv-lite@^0.4.17, iconv-lite@^0.4.4:
2994
3027
  dependencies:
2995
3028
  safer-buffer ">= 2.1.2 < 3"
2996
3029
 
3030
+ iconv-lite@~0.4.13:
3031
+ version "0.4.24"
3032
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
3033
+ dependencies:
3034
+ safer-buffer ">= 2.1.2 < 3"
3035
+
2997
3036
  icss-replace-symbols@^1.1.0:
2998
3037
  version "1.1.0"
2999
3038
  resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
@@ -3070,6 +3109,24 @@ ini@~1.3.0:
3070
3109
  version "1.3.5"
3071
3110
  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
3072
3111
 
3112
+ inquirer@3.0.6:
3113
+ version "3.0.6"
3114
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
3115
+ dependencies:
3116
+ ansi-escapes "^1.1.0"
3117
+ chalk "^1.0.0"
3118
+ cli-cursor "^2.1.0"
3119
+ cli-width "^2.0.0"
3120
+ external-editor "^2.0.1"
3121
+ figures "^2.0.0"
3122
+ lodash "^4.3.0"
3123
+ mute-stream "0.0.7"
3124
+ run-async "^2.2.0"
3125
+ rx "^4.1.0"
3126
+ string-width "^2.0.0"
3127
+ strip-ansi "^3.0.0"
3128
+ through "^2.3.6"
3129
+
3073
3130
  inquirer@^5.2.0:
3074
3131
  version "5.2.0"
3075
3132
  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
@@ -3346,7 +3403,7 @@ is-resolvable@^1.1.0:
3346
3403
  version "1.1.0"
3347
3404
  resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
3348
3405
 
3349
- is-stream@^1.1.0:
3406
+ is-stream@^1.0.1, is-stream@^1.1.0:
3350
3407
  version "1.1.0"
3351
3408
  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
3352
3409
 
@@ -3596,6 +3653,10 @@ lodash.clonedeep@^4.3.2:
3596
3653
  version "4.5.0"
3597
3654
  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
3598
3655
 
3656
+ lodash.get@^4.4.2:
3657
+ version "4.4.2"
3658
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
3659
+
3599
3660
  lodash.memoize@^4.1.2:
3600
3661
  version "4.1.2"
3601
3662
  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -3604,6 +3665,10 @@ lodash.mergewith@^4.6.0:
3604
3665
  version "4.6.1"
3605
3666
  resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
3606
3667
 
3668
+ lodash.startcase@^4.4.0:
3669
+ version "4.4.0"
3670
+ resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8"
3671
+
3607
3672
  lodash.tail@^4.1.1:
3608
3673
  version "4.1.1"
3609
3674
  resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
@@ -3819,7 +3884,7 @@ minimist@0.0.8:
3819
3884
  version "0.0.8"
3820
3885
  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
3821
3886
 
3822
- minimist@^1.1.3, minimist@^1.2.0:
3887
+ minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0:
3823
3888
  version "1.2.0"
3824
3889
  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
3825
3890
 
@@ -3954,6 +4019,13 @@ nice-try@^1.0.4:
3954
4019
  version "1.0.4"
3955
4020
  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
3956
4021
 
4022
+ node-fetch@1.6.3:
4023
+ version "1.6.3"
4024
+ resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04"
4025
+ dependencies:
4026
+ encoding "^0.1.11"
4027
+ is-stream "^1.0.1"
4028
+
3957
4029
  node-forge@0.7.5:
3958
4030
  version "0.7.5"
3959
4031
  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
@@ -4187,6 +4259,24 @@ onetime@^2.0.0:
4187
4259
  dependencies:
4188
4260
  mimic-fn "^1.0.0"
4189
4261
 
4262
+ opencollective@^1.0.3:
4263
+ version "1.0.3"
4264
+ resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1"
4265
+ dependencies:
4266
+ babel-polyfill "6.23.0"
4267
+ chalk "1.1.3"
4268
+ inquirer "3.0.6"
4269
+ minimist "1.2.0"
4270
+ node-fetch "1.6.3"
4271
+ opn "4.0.2"
4272
+
4273
+ opn@4.0.2:
4274
+ version "4.0.2"
4275
+ resolved "http://registry.npmjs.org/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
4276
+ dependencies:
4277
+ object-assign "^4.0.1"
4278
+ pinkie-promise "^2.0.0"
4279
+
4190
4280
  opn@^5.1.0:
4191
4281
  version "5.3.0"
4192
4282
  resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c"
@@ -4425,6 +4515,10 @@ pluralize@^7.0.0:
4425
4515
  version "7.0.0"
4426
4516
  resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
4427
4517
 
4518
+ popper.js@^1.12.9:
4519
+ version "1.14.4"
4520
+ resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6"
4521
+
4428
4522
  popper.js@^1.14.3:
4429
4523
  version "1.14.3"
4430
4524
  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095"
@@ -5219,7 +5313,7 @@ regenerate@^1.2.1:
5219
5313
  version "1.4.0"
5220
5314
  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
5221
5315
 
5222
- regenerator-runtime@^0.10.5:
5316
+ regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5:
5223
5317
  version "0.10.5"
5224
5318
  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
5225
5319
 
@@ -5451,6 +5545,10 @@ run-queue@^1.0.0, run-queue@^1.0.3:
5451
5545
  dependencies:
5452
5546
  aproba "^1.1.1"
5453
5547
 
5548
+ rx@^4.1.0:
5549
+ version "4.1.0"
5550
+ resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
5551
+
5454
5552
  rxjs@^5.5.2:
5455
5553
  version "5.5.11"
5456
5554
  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87"
@@ -6370,6 +6468,10 @@ vue-eslint-parser@^2.0.3:
6370
6468
  esquery "^1.0.0"
6371
6469
  lodash "^4.17.4"
6372
6470
 
6471
+ vue-functional-data-merge@^2.0.5:
6472
+ version "2.0.7"
6473
+ resolved "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-2.0.7.tgz#bdee655181eacdcb1f96ce95a4cc14e75313d1da"
6474
+
6373
6475
  vue-hot-reload-api@^2.2.0:
6374
6476
  version "2.3.0"
6375
6477
  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926"
@@ -6414,6 +6516,10 @@ vue@^2.5.16:
6414
6516
  version "2.5.16"
6415
6517
  resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085"
6416
6518
 
6519
+ vuex@^3.0.1:
6520
+ version "3.0.1"
6521
+ resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2"
6522
+
6417
6523
  watchpack@^1.4.0:
6418
6524
  version "1.6.0"
6419
6525
  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"