lcms-engine 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -1
  3. data/.env.docker +1 -1
  4. data/.rubocop.yml +8 -7
  5. data/.ruby-version +1 -1
  6. data/CHANGELOG.md +16 -1
  7. data/Dockerfile +1 -1
  8. data/Gemfile.lock +223 -184
  9. data/README.md +3 -2
  10. data/app/controllers/concerns/lcms/engine/reimportable.rb +11 -1
  11. data/app/controllers/lcms/engine/admin/admin_controller.rb +1 -1
  12. data/app/controllers/lcms/engine/admin/documents_controller.rb +19 -4
  13. data/app/controllers/lcms/engine/admin/materials_controller.rb +12 -3
  14. data/app/controllers/lcms/engine/admin/standards_controller.rb +6 -1
  15. data/app/controllers/lcms/engine/admin/users_controller.rb +6 -1
  16. data/app/entities/lcms/engine/grades.rb +17 -6
  17. data/app/entities/lcms/engine/media_embed.rb +1 -1
  18. data/app/entities/lcms/engine/roman_numerals.rb +1 -1
  19. data/app/forms/lcms/engine/document_form.rb +19 -14
  20. data/app/forms/lcms/engine/material_form.rb +3 -2
  21. data/app/helpers/admin/components_helper.rb +2 -2
  22. data/app/helpers/lcms/engine/view_helper.rb +1 -1
  23. data/app/interactors/lcms/engine/explore_curriculum_interactor.rb +1 -1
  24. data/app/javascript/components/admin/ImportStatus.jsx +7 -3
  25. data/app/javascript/components/admin/MultiSelectedOperation.jsx +1 -0
  26. data/app/javascript/components/admin/association-picker/AssociationPicker.jsx +1 -0
  27. data/app/javascript/components/admin/association-picker/AssociationPickerResults.jsx +1 -0
  28. data/app/javascript/components/admin/association-picker/AssociationPickerWindow.jsx +1 -0
  29. data/app/javascript/components/admin/curriculum/CurriculumEditor.jsx +1 -0
  30. data/app/javascript/components/admin/resource-picker/ResourcePicker.jsx +1 -0
  31. data/app/jobs/concerns/lcms/engine/nested_resque_job.rb +1 -4
  32. data/app/jobs/lcms/engine/document_generate_gdoc_job.rb +2 -2
  33. data/app/jobs/lcms/engine/document_generate_job.rb +1 -1
  34. data/app/jobs/lcms/engine/document_parse_job.rb +1 -1
  35. data/app/models/lcms/engine/component.rb +3 -3
  36. data/app/models/lcms/engine/download.rb +1 -1
  37. data/app/models/lcms/engine/search/document.rb +4 -3
  38. data/app/presenters/lcms/engine/document_presenter.rb +2 -2
  39. data/app/queries/lcms/engine/admin_documents_query.rb +1 -1
  40. data/app/serializers/lcms/engine/previews_material_serializer.rb +1 -0
  41. data/app/services/lcms/engine/document_build_service.rb +4 -0
  42. data/app/services/lcms/engine/html_sanitizer.rb +5 -5
  43. data/app/services/lcms/engine/lessons_gdoc_bundler.rb +1 -1
  44. data/app/services/lcms/engine/material_build_service.rb +6 -2
  45. data/app/services/lcms/engine/material_preview_generator.rb +2 -2
  46. data/app/services/lcms/engine/react_materials_resolver.rb +3 -2
  47. data/app/views/lcms/engine/admin/batch_reimports/_search_form.html.erb +1 -1
  48. data/app/views/lcms/engine/admin/curriculums/edit.html.erb +1 -3
  49. data/app/views/lcms/engine/admin/documents/_materials_links.html.erb +2 -2
  50. data/app/views/lcms/engine/admin/documents/_search_form.html.erb +1 -1
  51. data/app/views/lcms/engine/admin/documents/index.html.erb +2 -2
  52. data/app/views/lcms/engine/admin/documents/new.html.erb +1 -1
  53. data/app/views/lcms/engine/admin/materials/_search_form.html.erb +1 -1
  54. data/app/views/lcms/engine/admin/materials/index.html.erb +4 -4
  55. data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +1 -1
  56. data/app/views/lcms/engine/admin/resources/_fields.html.erb +3 -0
  57. data/app/views/lcms/engine/admin/resources/_search_form.html.erb +1 -1
  58. data/app/views/lcms/engine/documents/gdoc/_agenda.html.erb +1 -1
  59. data/app/views/lcms/engine/documents/show.html.erb +1 -1
  60. data/app/views/lcms/engine/materials/show.html.erb +1 -1
  61. data/app/views/lcms/engine/resources/_download.html.erb +2 -2
  62. data/app/views/lcms/engine/resources/_unit_bundles.html.erb +2 -2
  63. data/config/locales/admin/en.yml +1 -1
  64. data/db/schema.rb +1 -1
  65. data/lcms-engine.gemspec +12 -10
  66. data/lib/doc_template.rb +1 -1
  67. data/lib/doc_template/objects/agenda_metadata.rb +1 -1
  68. data/lib/doc_template/objects/metadata_helpers.rb +1 -1
  69. data/lib/doc_template/objects/toc_metadata.rb +2 -2
  70. data/lib/doc_template/tables/base.rb +3 -2
  71. data/lib/doc_template/tags/activity_metadata_type_tag.rb +1 -1
  72. data/lib/doc_template/tags/answer_space_tag.rb +1 -1
  73. data/lib/doc_template/tags/base_tag.rb +3 -3
  74. data/lib/doc_template/tags/columns_tag.rb +1 -1
  75. data/lib/doc_template/tags/def_tag.rb +1 -1
  76. data/lib/doc_template/tags/expand_tag.rb +1 -0
  77. data/lib/doc_template/tags/heading_tag.rb +1 -1
  78. data/lib/doc_template/tags/inset_tag.rb +2 -2
  79. data/lib/doc_template/tags/latex_tag.rb +1 -1
  80. data/lib/doc_template/tags/page_break_tag.rb +1 -1
  81. data/lib/doc_template/tags/pd_tag.rb +4 -4
  82. data/lib/doc_template/tags/section_tag.rb +2 -2
  83. data/lib/doc_template/tags/standard_tag.rb +3 -3
  84. data/lib/doc_template/tags/table_preserve_alignment_tag.rb +1 -1
  85. data/lib/document_exporter/gdoc/base.rb +1 -1
  86. data/lib/document_renderer/part.rb +3 -3
  87. data/lib/elasticsearch/persistence/repository/response/results.rb +1 -1
  88. data/lib/lcms/engine/engine.rb +1 -1
  89. data/lib/lcms/engine/version.rb +1 -1
  90. data/lib/lt/lcms/metadata/base_service.rb +2 -1
  91. data/lib/lt/lcms/metadata/context.rb +2 -2
  92. data/lib/lt/lcms/metadata/service.rb +3 -1
  93. data/lib/resque_job.rb +3 -6
  94. data/lib/standard_importer.rb +4 -4
  95. data/lib/tasks/cloud66.rake +6 -4
  96. data/lib/tasks/document.rake +3 -3
  97. data/lib/tasks/google.rake +1 -1
  98. data/package.json +1 -0
  99. data/spec/controllers/admin/association_picker_controller_spec.rb +6 -8
  100. data/spec/controllers/admin/documents_controller_spec.rb +3 -1
  101. data/spec/controllers/admin/materials_controller_spec.rb +1 -1
  102. data/spec/controllers/admin/resources_controller_spec.rb +2 -2
  103. data/spec/dummy/.env.docker +5 -0
  104. data/spec/dummy/config/environments/production.rb +1 -1
  105. data/spec/dummy/config/puma.rb +3 -3
  106. data/spec/entities/grades_spec.rb +12 -0
  107. data/spec/features/admin/lessons/add_lesson_spec.rb +3 -3
  108. data/spec/features/admin/materials/add_material_spec.rb +3 -3
  109. data/spec/forms/document_form_spec.rb +11 -1
  110. data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +1 -1
  111. data/spec/rails_helper.rb +19 -2
  112. data/spec/services/document_build_service_spec.rb +1 -1
  113. data/yarn.lock +145 -170
  114. metadata +81 -34
@@ -9,7 +9,7 @@ module Lt
9
9
  class Context
10
10
  attr_reader :context
11
11
 
12
- NUM_RE = /\d+/
12
+ NUM_RE = /\d+/.freeze
13
13
 
14
14
  class << self
15
15
  #
@@ -17,7 +17,7 @@ module Lt
17
17
  # Is used inside `#find_or_create_resource` method
18
18
  #
19
19
  def update_grades_level_position_for(grades)
20
- update_level_position_for(grades) { |g| ::Lcms::Engine::Grades::GRADES.index(g.metadata['grade']) }
20
+ update_level_position_for(grades) { |g| ::Lcms::Engine::Grades.grades.index(g.metadata['grade']) }
21
21
  end
22
22
 
23
23
  #
@@ -35,13 +35,15 @@ module Lt
35
35
  )
36
36
  end
37
37
 
38
- def parse(content, *args)
38
+ def parse(content, *args) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
39
39
  super
40
40
  if material?
41
41
  @metadata = DocTemplate::Tables::MaterialMetadata.parse content
42
+ @errors.concat @metadata.errors
42
43
  raise ::MaterialError, 'No metadata present' if !@metadata&.table_exist? || @metadata&.data&.empty?
43
44
  else
44
45
  @metadata = DocTemplate::Tables::Metadata.parse content
46
+ @errors.concat @metadata.errors
45
47
  raise ::DocumentError, 'No metadata present' unless @metadata&.table_exist?
46
48
 
47
49
  @agenda = DocTemplate::Tables::Agenda.parse content
data/lib/resque_job.rb CHANGED
@@ -17,7 +17,8 @@ module ResqueJob
17
17
  end
18
18
 
19
19
  def find_in_queue_by_payload(job_class, &block)
20
- result = Resque.peek(:default, 0, 0)
20
+ jobs = Array.wrap Resque.peek(queue_name, 0, 0)
21
+ result = jobs
21
22
  .select { |j| j['args'].first['job_class'] == job_class.to_s }
22
23
  .flat_map { |j| j['args'] }
23
24
  return result unless block_given?
@@ -46,11 +47,7 @@ module ResqueJob
46
47
  end
47
48
 
48
49
  def fetch_result(job_id)
49
- res = Resque.redis.multi do
50
- key = result_key(job_id)
51
- Resque.redis.get key
52
- Resque.redis.del key
53
- end.first
50
+ res = Resque.redis.get result_key(job_id)
54
51
  JSON.parse(res) rescue res
55
52
  end
56
53
 
@@ -20,7 +20,7 @@ class StandardImporter
20
20
 
21
21
  private
22
22
 
23
- RE_EMPHASIS = /^\(\+\)\s?/
23
+ RE_EMPHASIS = /^\(\+\)\s?/.freeze
24
24
 
25
25
  attr_reader :source_file, :subject
26
26
 
@@ -45,10 +45,10 @@ class StandardImporter
45
45
 
46
46
  return grades if to_name.blank?
47
47
 
48
- from_idx = Grades::GRADES_ABBR.index from_name
49
- to_idx = Grades::GRADES_ABBR.index from_name
48
+ from_idx = Grades.grades_abbrevs.index from_name
49
+ to_idx = Grades.grades_abbrevs.index from_name
50
50
 
51
- Grades::GRADES_ABBR.slice(from_idx..to_idx).each { |name| grades << find_grade(name) }
51
+ Grades.grades_abbrevs.slice(from_idx..to_idx).each { |name| grades << find_grade(name) }
52
52
 
53
53
  grades.compact
54
54
  end
@@ -20,7 +20,9 @@ namespace :cloud66 do # rubocop:disable Metrics/BlockLength
20
20
  end
21
21
 
22
22
  namespace :swap do
23
- SWAP_FILE = Rails.root.join 'export-swap.sql'
23
+ def swap_file
24
+ Rails.root.join 'export-swap.sql'
25
+ end
24
26
 
25
27
  desc 'Exports tables to be synced'
26
28
  task export: :environment do
@@ -29,20 +31,20 @@ namespace :cloud66 do # rubocop:disable Metrics/BlockLength
29
31
  --no-owner \
30
32
  --table=users \
31
33
  --table=access_codes \
32
- --file=#{SWAP_FILE}
34
+ --file=#{swap_file}
33
35
  BASH
34
36
  system cmd
35
37
  end
36
38
 
37
39
  desc 'Deletes existing tables and creates new one'
38
40
  task import: :environment do
39
- raise 'No data file. Please execute `cloud66:swap:export` prior loading the data.' unless File.exist?(SWAP_FILE)
41
+ raise 'No data file. Please execute `cloud66:swap:export` prior loading the data.' unless File.exist?(swap_file)
40
42
 
41
43
  cmd = "psql -U #{ENV['POSTGRESQL_USERNAME']} #{ENV['POSTGRESQL_DATABASE']}"
42
44
  # Drops old tables
43
45
  system "#{cmd} -c 'drop table access_codes, users;'"
44
46
  # Create new and load the data
45
- system "#{cmd} < #{SWAP_FILE}"
47
+ system "#{cmd} < #{swap_file}"
46
48
  end
47
49
  end
48
50
  end
@@ -12,21 +12,21 @@ namespace :document do
12
12
  hierarchy = {}
13
13
 
14
14
  documents.each do |document|
15
- grade_key = 'grade-' + document.metadata['grade']
15
+ grade_key = "grade-#{document.metadata['grade']}"
16
16
  hierarchy[grade_key] ||= {}
17
17
  grade = hierarchy[grade_key]
18
18
 
19
19
  grade['subject'] ||= 'math'
20
20
  grade['modules'] ||= {}
21
21
 
22
- module_key = 'module-' + document.metadata['unit']
22
+ module_key = "module-#{document.metadata['unit']}"
23
23
  grade['modules'][module_key] ||= {}
24
24
  module_ = grade['modules'][module_key]
25
25
 
26
26
  module_['name'] ||= '[name]'
27
27
  module_['topics'] ||= {}
28
28
 
29
- topic_key = 'topic-' + document.metadata['topic']
29
+ topic_key = "topic-#{document.metadata['topic']}"
30
30
  module_['topics'][topic_key] ||= {}
31
31
  topic = module_['topics'][topic_key]
32
32
 
@@ -14,7 +14,7 @@ namespace :google do
14
14
  authorizer = service.authorizer
15
15
  url = authorizer.get_authorization_url(base_url: OOB_URI)
16
16
  puts "Open \n>> #{url}\n in your browser and enter the resulting code:"
17
- code = STDIN.gets.strip
17
+ code = $stdin.gets.strip
18
18
  authorizer.get_and_store_credentials_from_code(
19
19
  user_id: ::Lt::Google::Api::Auth::Cli::USER_ID, code: code, base_url: OOB_URI
20
20
  )
data/package.json CHANGED
@@ -8,6 +8,7 @@
8
8
  "@rails/webpacker": "~4",
9
9
  "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
10
10
  "classnames": "^2.2.6",
11
+ "lodash": "^4.17.20",
11
12
  "prop-types": "^15.7.2",
12
13
  "react": "^16.9.0",
13
14
  "react-dom": "^16.9.0",
@@ -3,19 +3,17 @@
3
3
  require 'rails_helper'
4
4
 
5
5
  describe Lcms::Engine::Admin::AssociationPickerController do
6
- ASSOCIATIONS = %w(content_sources tags grades topics reading_assignment_authors
7
- reading_assignment_texts standards).freeze
8
-
9
6
  let(:user) { create :admin }
10
7
 
11
8
  before { sign_in user }
12
9
 
13
10
  describe '#index' do
14
- ASSOCIATIONS.each do |assoc|
15
- it "list #{assoc} association items" do
16
- get :index, params: { association: assoc, format: :json }
17
- expect(response).to be_successful
11
+ %w(content_sources tags grades topics reading_assignment_authors reading_assignment_texts standards)
12
+ .each do |assoc|
13
+ it "list #{assoc} association items" do
14
+ get :index, params: { association: assoc, format: :json }
15
+ expect(response).to be_successful
16
+ end
18
17
  end
19
- end
20
18
  end
21
19
  end
@@ -9,7 +9,9 @@ describe Lcms::Engine::Admin::DocumentsController do
9
9
 
10
10
  describe '#create' do
11
11
  let(:document) { create :document }
12
- let(:form) { instance_double('Lcms::Engine::DocumentForm', document: document, save: valid) }
12
+ let(:form) do
13
+ instance_double('Lcms::Engine::DocumentForm', document: document, save: valid, service_errors: [])
14
+ end
13
15
  let(:link) { 'link' }
14
16
  let(:params) { { link: link, link_fs: 'link_fs', reimport: '1' } }
15
17
  let(:valid) { true }
@@ -79,7 +79,7 @@ describe Lcms::Engine::Admin::MaterialsController do
79
79
  it { expect { subject }.to change { Lcms::Engine::Material.count }.by(-1) }
80
80
 
81
81
  context 'when there was custom filter' do
82
- let(:query) { 'filter' }
82
+ let(:query) { { course: 'value' } }
83
83
 
84
84
  subject { delete :destroy, params: { id: material.id, query: query } }
85
85
 
@@ -11,13 +11,13 @@ describe Lcms::Engine::Admin::ResourcesController do
11
11
  describe '#edit' do
12
12
  subject { get :edit, params: { id: resource.to_param } }
13
13
 
14
- it { is_expected.to be_success }
14
+ it { is_expected.to be_successful }
15
15
  end
16
16
 
17
17
  describe '#index' do
18
18
  subject { get :index }
19
19
 
20
- it { is_expected.to be_success }
20
+ it { is_expected.to be_successful }
21
21
  end
22
22
 
23
23
  describe '#update' do
@@ -0,0 +1,5 @@
1
+ GIT_AUTHOR_EMAIL=joe@doe.com
2
+ GIT_AUTHOR_NAME="Joe Doe"
3
+ POSTGRESQL_ADDRESS=db
4
+ POSTGRESQL_USERNAME=postgres
5
+ POSTGRESQL_PASSWORD=
@@ -87,7 +87,7 @@ Rails.application.configure do
87
87
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
88
88
 
89
89
  if ENV['RAILS_LOG_TO_STDOUT'].present?
90
- logger = ActiveSupport::Logger.new(STDOUT)
90
+ logger = ActiveSupport::Logger.new($stdout)
91
91
  logger.formatter = config.log_formatter
92
92
  config.logger = ActiveSupport::TaggedLogging.new(logger)
93
93
  end
@@ -6,16 +6,16 @@
6
6
  # the maximum value specified for Puma. Default is set to 5 threads for minimum
7
7
  # and maximum; this matches the default thread size of Active Record.
8
8
  #
9
- threads_count = ENV.fetch('RAILS_MAX_THREADS') { 5 }
9
+ threads_count = ENV.fetch('RAILS_MAX_THREADS', 5)
10
10
  threads threads_count, threads_count
11
11
 
12
12
  # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
13
13
  #
14
- port ENV.fetch('PORT') { 3000 }
14
+ port ENV.fetch('PORT', 3000)
15
15
 
16
16
  # Specifies the `environment` that Puma will run in.
17
17
  #
18
- environment ENV.fetch('RAILS_ENV') { 'development' }
18
+ environment ENV.fetch('RAILS_ENV', 'development')
19
19
 
20
20
  # Specifies the number of `workers` to boot in clustered mode.
21
21
  # Workers are forked webserver processes. If using threads and workers together
@@ -8,6 +8,18 @@ describe Lcms::Engine::Grades do
8
8
  let(:dir) { [] }
9
9
  let(:resource) { create :resource, metadata: { grade: dir.uniq } }
10
10
 
11
+ describe 'grades' do
12
+ it 'returns GRADES constant' do
13
+ expect(described_class.grades).to eq Lcms::Engine::Grades::GRADES
14
+ end
15
+ end
16
+
17
+ describe 'gardes_abbrevs' do
18
+ it 'returns GRADES_ABBR constant' do
19
+ expect(described_class.grades_abbrevs).to eq Lcms::Engine::Grades::GRADES_ABBR
20
+ end
21
+ end
22
+
11
23
  describe 'list' do
12
24
  let(:dir) { ['grade 2'] }
13
25
  let(:search_doc) { Lcms::Engine::Search::Document.new(grade: ['kindergarten']) }
@@ -3,9 +3,9 @@
3
3
  require 'rails_helper'
4
4
 
5
5
  feature 'Admin adds a lesson' do
6
- SAMPLE_LESSON_PATH = 'spec/features/admin/lessons/sample-lessons'
6
+ given(:sample_lesson_path) { 'spec/features/admin/lessons/sample-lessons' }
7
7
 
8
- DownloadedFile = Struct.new :last_modifying_user, :modified_time, :name, :version
8
+ given(:downloaded_file) { Struct.new :last_modifying_user, :modified_time, :name, :version }
9
9
 
10
10
  given(:sample_lessons) do
11
11
  [
@@ -43,7 +43,7 @@ feature 'Admin adds a lesson' do
43
43
 
44
44
  # stub GDoc download
45
45
  file_content = File.read File.join(SAMPLE_LESSON_PATH, data[:file_name])
46
- allow_any_instance_of(DocumentDownloader::Gdoc).to receive(:file).and_return(DownloadedFile.new(nil, nil, idx))
46
+ allow_any_instance_of(DocumentDownloader::Gdoc).to receive(:file).and_return(downloaded_file.new(nil, nil, idx))
47
47
  allow_any_instance_of(DocumentDownloader::Gdoc).to receive(:content).and_return(file_content)
48
48
 
49
49
  fill_in :document_form_link, with: data[:url]
@@ -6,7 +6,7 @@ require 'lt/lcms/lesson/downloader/gdoc'
6
6
  require 'lt/lcms/lesson/downloader/pdf'
7
7
 
8
8
  feature 'Admin adds a material' do
9
- SAMPLE_PATH = 'spec/features/admin/materials/sample-materials'
9
+ given(:sample_path) { 'spec/features/admin/materials/sample-materials' }
10
10
 
11
11
  given(:downloaded_file) { Struct.new :last_modifying_user, :modified_time, :name, :version }
12
12
 
@@ -34,7 +34,7 @@ feature 'Admin adds a material' do
34
34
  data = samples[:gdoc]
35
35
 
36
36
  # stub GDoc download
37
- file_content = File.read File.join(SAMPLE_PATH, data[:file_name])
37
+ file_content = File.read File.join(sample_path, data[:file_name])
38
38
  base_klass = ::Lt::Lcms::Lesson::Downloader::Base
39
39
  gdoc_klass = ::Lt::Lcms::Lesson::Downloader::Gdoc
40
40
  allow_any_instance_of(base_klass).to receive(:file).and_return(downloaded_file.new(nil, nil, data[:file_name]))
@@ -59,7 +59,7 @@ feature 'Admin adds a material' do
59
59
  base_klass = ::Lt::Lcms::Lesson::Downloader::Base
60
60
  allow_any_instance_of(base_klass).to receive(:file).and_return(downloaded_file.new(nil, nil, data[:file_name]))
61
61
 
62
- file_content = File.read File.join(SAMPLE_PATH, data[:file_name])
62
+ file_content = File.read File.join(sample_path, data[:file_name])
63
63
  allow_any_instance_of(Lt::Lcms::Lesson::Downloader::PDF).to receive(:pdf_content).and_return(file_content)
64
64
  allow_any_instance_of(DocumentExporter::Thumbnail).to receive(:export)
65
65
  allow_any_instance_of(DocumentExporter::Thumbnail).to receive(:orientation)
@@ -10,7 +10,7 @@ describe Lcms::Engine::DocumentForm do
10
10
 
11
11
  describe '#save' do
12
12
  let(:document) { create :document }
13
- let(:service) { instance_double('DocumentBuildService', build_for: document) }
13
+ let(:service) { instance_double('DocumentBuildService', build_for: document, errors: []) }
14
14
 
15
15
  subject { form.save }
16
16
 
@@ -64,6 +64,16 @@ describe Lcms::Engine::DocumentForm do
64
64
  subject
65
65
  end
66
66
  end
67
+
68
+ context 'when there are non-critical errors' do
69
+ let(:errors) { %w(error-1 error-2 error-3) }
70
+ let(:service) { instance_double('DocumentBuildService', build_for: document, errors: errors) }
71
+
72
+ it 'store service errors' do
73
+ subject
74
+ expect(form.service_errors).to eq errors
75
+ end
76
+ end
67
77
  end
68
78
 
69
79
  context 'when is invalid' do
@@ -4,7 +4,7 @@ require 'rails_helper'
4
4
 
5
5
  shared_examples 'removes metadata table' do
6
6
  it 'removes original table' do
7
- table_html = %r{<span\s+[^.]*>\[?#{described_class::HEADER_LABEL}\]?<\/span>}im
7
+ table_html = %r{<span\s+[^.]*>\[?#{described_class::HEADER_LABEL}\]?</span>}im
8
8
  subject
9
9
  expect(fragment.to_html).to_not match(table_html)
10
10
  end
data/spec/rails_helper.rb CHANGED
@@ -16,8 +16,8 @@ require 'email_spec'
16
16
  require 'email_spec/rspec'
17
17
  require 'faker'
18
18
 
19
- Dir[File.expand_path('support/**/*.rb', __dir__)].each(&method(:require))
20
- Dir[File.expand_path('**/shared_examples/*.rb')].each(&method(:require))
19
+ Dir[File.expand_path('support/**/*.rb', __dir__)].sort.each(&method(:require))
20
+ Dir[File.expand_path('**/shared_examples/*.rb')].sort.each(&method(:require))
21
21
 
22
22
  # Checks for pending migrations and applies them before tests are run.
23
23
  # If you are not using ActiveRecord, you can remove these lines.
@@ -32,4 +32,21 @@ RSpec.configure do |config|
32
32
  config.infer_spec_type_from_file_location!
33
33
 
34
34
  config.filter_rails_from_backtrace!
35
+
36
+ config.before(:suite) do
37
+ # Rails 4.2 call `initialize` inside `recycle!`. However Ruby 2.6 doesn't allow calling `initialize` twice.
38
+ # See for detail: https://github.com/rails/rails/issues/34790
39
+ if RUBY_VERSION.to_f >= 2.6 && Rails::VERSION::MAJOR == 4
40
+ class ActionController::TestResponse # rubocop:disable Style/ClassAndModuleChildren
41
+ prepend Module.new {
42
+ def recycle!
43
+ # Patch to avoid MonitorMixin double-initialize error:
44
+ @mon_mutex_owner_object_id = nil
45
+ @mon_mutex = nil
46
+ super
47
+ end
48
+ }
49
+ end
50
+ end
51
+ end
35
52
  end
@@ -27,7 +27,7 @@ describe Lcms::Engine::DocumentBuildService do
27
27
  stubs = {
28
28
  css_styles: '',
29
29
  metadata: {},
30
- metadata_service: nil,
30
+ metadata_service: OpenStruct.new(errors: []),
31
31
  parse: parsed_document,
32
32
  parts: [],
33
33
  'prereq?' => false,
data/yarn.lock CHANGED
@@ -1051,7 +1051,7 @@ ajv@^6.1.0, ajv@^6.10.2:
1051
1051
  json-schema-traverse "^0.4.1"
1052
1052
  uri-js "^4.2.2"
1053
1053
 
1054
- ajv@^6.10.0, ajv@^6.5.5:
1054
+ ajv@^6.10.0:
1055
1055
  version "6.10.2"
1056
1056
  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
1057
1057
  integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
@@ -1061,7 +1061,7 @@ ajv@^6.10.0, ajv@^6.5.5:
1061
1061
  json-schema-traverse "^0.4.1"
1062
1062
  uri-js "^4.2.2"
1063
1063
 
1064
- ajv@^6.12.2:
1064
+ ajv@^6.12.2, ajv@^6.12.3:
1065
1065
  version "6.12.4"
1066
1066
  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234"
1067
1067
  integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==
@@ -1320,9 +1320,9 @@ aws-sign2@~0.7.0:
1320
1320
  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
1321
1321
 
1322
1322
  aws4@^1.8.0:
1323
- version "1.9.0"
1324
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c"
1325
- integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
1323
+ version "1.10.1"
1324
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
1325
+ integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
1326
1326
 
1327
1327
  babel-loader@^8.0.6:
1328
1328
  version "8.0.6"
@@ -1731,11 +1731,6 @@ camelcase@^2.0.0:
1731
1731
  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
1732
1732
  integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
1733
1733
 
1734
- camelcase@^3.0.0:
1735
- version "3.0.0"
1736
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
1737
- integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
1738
-
1739
1734
  camelcase@^5.0.0, camelcase@^5.3.1:
1740
1735
  version "5.3.1"
1741
1736
  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -1887,15 +1882,6 @@ cli-width@^2.0.0:
1887
1882
  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
1888
1883
  integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
1889
1884
 
1890
- cliui@^3.2.0:
1891
- version "3.2.0"
1892
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
1893
- integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
1894
- dependencies:
1895
- string-width "^1.0.1"
1896
- strip-ansi "^3.0.1"
1897
- wrap-ansi "^2.0.0"
1898
-
1899
1885
  cliui@^4.0.0:
1900
1886
  version "4.1.0"
1901
1887
  resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -2425,7 +2411,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
2425
2411
  dependencies:
2426
2412
  ms "2.0.0"
2427
2413
 
2428
- debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
2414
+ debug@^3.1.1, debug@^3.2.5:
2429
2415
  version "3.2.6"
2430
2416
  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
2431
2417
  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -2439,7 +2425,7 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
2439
2425
  dependencies:
2440
2426
  ms "^2.1.1"
2441
2427
 
2442
- decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
2428
+ decamelize@^1.1.2, decamelize@^1.2.0:
2443
2429
  version "1.2.0"
2444
2430
  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
2445
2431
  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -2958,9 +2944,9 @@ etag@~1.8.1:
2958
2944
  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
2959
2945
 
2960
2946
  eventemitter3@^4.0.0:
2961
- version "4.0.0"
2962
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
2963
- integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==
2947
+ version "4.0.7"
2948
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
2949
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
2964
2950
 
2965
2951
  events@^3.0.0:
2966
2952
  version "3.1.0"
@@ -3110,9 +3096,9 @@ fast-deep-equal@^2.0.1:
3110
3096
  integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
3111
3097
 
3112
3098
  fast-deep-equal@^3.1.1:
3113
- version "3.1.1"
3114
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
3115
- integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
3099
+ version "3.1.3"
3100
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
3101
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
3116
3102
 
3117
3103
  fast-json-stable-stringify@^2.0.0:
3118
3104
  version "2.1.0"
@@ -3286,11 +3272,9 @@ flush-write-stream@^1.0.0:
3286
3272
  readable-stream "^2.3.6"
3287
3273
 
3288
3274
  follow-redirects@^1.0.0:
3289
- version "1.9.0"
3290
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f"
3291
- integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==
3292
- dependencies:
3293
- debug "^3.0.0"
3275
+ version "1.13.0"
3276
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db"
3277
+ integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==
3294
3278
 
3295
3279
  for-in@^1.0.2:
3296
3280
  version "1.0.2"
@@ -3540,9 +3524,9 @@ globby@^6.1.0:
3540
3524
  pinkie-promise "^2.0.0"
3541
3525
 
3542
3526
  globule@^1.0.0:
3543
- version "1.2.1"
3544
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
3545
- integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
3527
+ version "1.3.2"
3528
+ resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4"
3529
+ integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==
3546
3530
  dependencies:
3547
3531
  glob "~7.1.1"
3548
3532
  lodash "~4.17.10"
@@ -3568,12 +3552,12 @@ har-schema@^2.0.0:
3568
3552
  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
3569
3553
  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
3570
3554
 
3571
- har-validator@~5.1.0:
3572
- version "5.1.3"
3573
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
3574
- integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
3555
+ har-validator@~5.1.3:
3556
+ version "5.1.5"
3557
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
3558
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
3575
3559
  dependencies:
3576
- ajv "^6.5.5"
3560
+ ajv "^6.12.3"
3577
3561
  har-schema "^2.0.0"
3578
3562
 
3579
3563
  has-ansi@^2.0.0:
@@ -3680,9 +3664,9 @@ homedir-polyfill@^1.0.1:
3680
3664
  parse-passwd "^1.0.0"
3681
3665
 
3682
3666
  hosted-git-info@^2.1.4:
3683
- version "2.8.5"
3684
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
3685
- integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
3667
+ version "2.8.8"
3668
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
3669
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
3686
3670
 
3687
3671
  hpack.js@^2.1.6:
3688
3672
  version "2.1.6"
@@ -3767,9 +3751,9 @@ http-proxy-middleware@0.19.1:
3767
3751
  micromatch "^3.1.10"
3768
3752
 
3769
3753
  http-proxy@^1.17.0:
3770
- version "1.18.0"
3771
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
3772
- integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==
3754
+ version "1.18.1"
3755
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
3756
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
3773
3757
  dependencies:
3774
3758
  eventemitter3 "^4.0.0"
3775
3759
  follow-redirects "^1.0.0"
@@ -3862,9 +3846,9 @@ imurmurhash@^0.1.4:
3862
3846
  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
3863
3847
 
3864
3848
  in-publish@^2.0.0:
3865
- version "2.0.0"
3866
- resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
3867
- integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
3849
+ version "2.0.1"
3850
+ resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c"
3851
+ integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==
3868
3852
 
3869
3853
  indent-string@^2.1.0:
3870
3854
  version "2.1.0"
@@ -3912,9 +3896,9 @@ inherits@2.0.3:
3912
3896
  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
3913
3897
 
3914
3898
  ini@^1.3.4, ini@^1.3.5:
3915
- version "1.3.5"
3916
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
3917
- integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
3899
+ version "1.3.8"
3900
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
3901
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
3918
3902
 
3919
3903
  inquirer@^7.0.0:
3920
3904
  version "7.0.0"
@@ -3955,11 +3939,6 @@ invariant@^2.2.2:
3955
3939
  dependencies:
3956
3940
  loose-envify "^1.0.0"
3957
3941
 
3958
- invert-kv@^1.0.0:
3959
- version "1.0.0"
3960
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
3961
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
3962
-
3963
3942
  invert-kv@^2.0.0:
3964
3943
  version "2.0.0"
3965
3944
  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
@@ -4120,11 +4099,9 @@ is-extglob@^2.1.0, is-extglob@^2.1.1:
4120
4099
  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
4121
4100
 
4122
4101
  is-finite@^1.0.0:
4123
- version "1.0.2"
4124
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
4125
- integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
4126
- dependencies:
4127
- number-is-nan "^1.0.0"
4102
+ version "1.1.0"
4103
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
4104
+ integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
4128
4105
 
4129
4106
  is-fullwidth-code-point@^1.0.0:
4130
4107
  version "1.0.0"
@@ -4297,9 +4274,9 @@ jest-worker@^25.4.0:
4297
4274
  supports-color "^7.0.0"
4298
4275
 
4299
4276
  js-base64@^2.1.8:
4300
- version "2.5.1"
4301
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
4302
- integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
4277
+ version "2.6.4"
4278
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
4279
+ integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
4303
4280
 
4304
4281
  js-levenshtein@^1.1.3:
4305
4282
  version "1.1.6"
@@ -4433,13 +4410,6 @@ last-call-webpack-plugin@^3.0.0:
4433
4410
  lodash "^4.17.5"
4434
4411
  webpack-sources "^1.1.0"
4435
4412
 
4436
- lcid@^1.0.0:
4437
- version "1.0.0"
4438
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
4439
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
4440
- dependencies:
4441
- invert-kv "^1.0.0"
4442
-
4443
4413
  lcid@^2.0.0:
4444
4414
  version "2.0.0"
4445
4415
  resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
@@ -4567,10 +4537,10 @@ lodash.uniq@^4.5.0:
4567
4537
  resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
4568
4538
  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
4569
4539
 
4570
- lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.10:
4571
- version "4.17.19"
4572
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
4573
- integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
4540
+ lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.10:
4541
+ version "4.17.20"
4542
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
4543
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
4574
4544
 
4575
4545
  loglevel@^1.6.4:
4576
4546
  version "1.6.6"
@@ -4760,7 +4730,19 @@ mime-db@1.42.0, "mime-db@>= 1.40.0 < 2":
4760
4730
  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
4761
4731
  integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==
4762
4732
 
4763
- mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
4733
+ mime-db@1.44.0:
4734
+ version "1.44.0"
4735
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
4736
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
4737
+
4738
+ mime-types@^2.1.12, mime-types@~2.1.19:
4739
+ version "2.1.27"
4740
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
4741
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
4742
+ dependencies:
4743
+ mime-db "1.44.0"
4744
+
4745
+ mime-types@~2.1.17, mime-types@~2.1.24:
4764
4746
  version "2.1.25"
4765
4747
  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437"
4766
4748
  integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==
@@ -4931,16 +4913,11 @@ mute-stream@0.0.8:
4931
4913
  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
4932
4914
  integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
4933
4915
 
4934
- nan@^2.12.1:
4916
+ nan@^2.12.1, nan@^2.13.2:
4935
4917
  version "2.14.1"
4936
4918
  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
4937
4919
  integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
4938
4920
 
4939
- nan@^2.13.2:
4940
- version "2.14.0"
4941
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
4942
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
4943
-
4944
4921
  nanomatch@^1.2.9:
4945
4922
  version "1.2.13"
4946
4923
  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -4978,10 +4955,10 @@ nice-try@^1.0.4:
4978
4955
  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
4979
4956
  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
4980
4957
 
4981
- node-forge@0.9.0:
4982
- version "0.9.0"
4983
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579"
4984
- integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==
4958
+ node-forge@^0.10.0:
4959
+ version "0.10.0"
4960
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
4961
+ integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
4985
4962
 
4986
4963
  node-gyp@^3.8.0:
4987
4964
  version "3.8.0"
@@ -5038,9 +5015,9 @@ node-releases@^1.1.42:
5038
5015
  semver "^6.3.0"
5039
5016
 
5040
5017
  node-sass@^4.13.0:
5041
- version "4.13.0"
5042
- resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066"
5043
- integrity sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==
5018
+ version "4.14.1"
5019
+ resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5"
5020
+ integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==
5044
5021
  dependencies:
5045
5022
  async-foreach "^0.1.3"
5046
5023
  chalk "^1.1.1"
@@ -5056,7 +5033,7 @@ node-sass@^4.13.0:
5056
5033
  node-gyp "^3.8.0"
5057
5034
  npmlog "^4.0.0"
5058
5035
  request "^2.88.0"
5059
- sass-graph "^2.2.4"
5036
+ sass-graph "2.2.5"
5060
5037
  stdout-stream "^1.4.0"
5061
5038
  "true-case-path" "^1.0.2"
5062
5039
 
@@ -5314,13 +5291,6 @@ os-homedir@^1.0.0:
5314
5291
  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
5315
5292
  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
5316
5293
 
5317
- os-locale@^1.4.0:
5318
- version "1.4.0"
5319
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
5320
- integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
5321
- dependencies:
5322
- lcid "^1.0.0"
5323
-
5324
5294
  os-locale@^3.0.0, os-locale@^3.1.0:
5325
5295
  version "3.1.0"
5326
5296
  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -6379,10 +6349,10 @@ pseudomap@^1.0.2:
6379
6349
  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
6380
6350
  integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
6381
6351
 
6382
- psl@^1.1.24:
6383
- version "1.6.0"
6384
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110"
6385
- integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==
6352
+ psl@^1.1.28:
6353
+ version "1.8.0"
6354
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
6355
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
6386
6356
 
6387
6357
  public-encrypt@^4.0.0:
6388
6358
  version "4.0.3"
@@ -6426,12 +6396,12 @@ punycode@1.3.2:
6426
6396
  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
6427
6397
  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
6428
6398
 
6429
- punycode@^1.2.4, punycode@^1.4.1:
6399
+ punycode@^1.2.4:
6430
6400
  version "1.4.1"
6431
6401
  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
6432
6402
  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
6433
6403
 
6434
- punycode@^2.1.0:
6404
+ punycode@^2.1.0, punycode@^2.1.1:
6435
6405
  version "2.1.1"
6436
6406
  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
6437
6407
  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
@@ -6722,9 +6692,9 @@ repeating@^2.0.0:
6722
6692
  is-finite "^1.0.0"
6723
6693
 
6724
6694
  request@^2.87.0, request@^2.88.0:
6725
- version "2.88.0"
6726
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
6727
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
6695
+ version "2.88.2"
6696
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
6697
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
6728
6698
  dependencies:
6729
6699
  aws-sign2 "~0.7.0"
6730
6700
  aws4 "^1.8.0"
@@ -6733,7 +6703,7 @@ request@^2.87.0, request@^2.88.0:
6733
6703
  extend "~3.0.2"
6734
6704
  forever-agent "~0.6.1"
6735
6705
  form-data "~2.3.2"
6736
- har-validator "~5.1.0"
6706
+ har-validator "~5.1.3"
6737
6707
  http-signature "~1.2.0"
6738
6708
  is-typedarray "~1.0.0"
6739
6709
  isstream "~0.1.2"
@@ -6743,7 +6713,7 @@ request@^2.87.0, request@^2.88.0:
6743
6713
  performance-now "^2.1.0"
6744
6714
  qs "~6.5.2"
6745
6715
  safe-buffer "^5.1.2"
6746
- tough-cookie "~2.4.3"
6716
+ tough-cookie "~2.5.0"
6747
6717
  tunnel-agent "^0.6.0"
6748
6718
  uuid "^3.3.2"
6749
6719
 
@@ -6797,13 +6767,20 @@ resolve-url@^0.2.1:
6797
6767
  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
6798
6768
  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
6799
6769
 
6800
- resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
6770
+ resolve@^1.1.7, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
6801
6771
  version "1.13.1"
6802
6772
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
6803
6773
  integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
6804
6774
  dependencies:
6805
6775
  path-parse "^1.0.6"
6806
6776
 
6777
+ resolve@^1.10.0:
6778
+ version "1.17.0"
6779
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
6780
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
6781
+ dependencies:
6782
+ path-parse "^1.0.6"
6783
+
6807
6784
  restore-cursor@^3.1.0:
6808
6785
  version "3.1.0"
6809
6786
  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -6887,11 +6864,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
6887
6864
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
6888
6865
  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
6889
6866
 
6890
- safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
6867
+ safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
6891
6868
  version "5.2.0"
6892
6869
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
6893
6870
  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
6894
6871
 
6872
+ safe-buffer@^5.0.1, safe-buffer@^5.1.2:
6873
+ version "5.2.1"
6874
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
6875
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
6876
+
6895
6877
  safe-regex@^1.1.0:
6896
6878
  version "1.1.0"
6897
6879
  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -6904,15 +6886,15 @@ safe-regex@^1.1.0:
6904
6886
  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
6905
6887
  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
6906
6888
 
6907
- sass-graph@^2.2.4:
6908
- version "2.2.4"
6909
- resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
6910
- integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
6889
+ sass-graph@2.2.5:
6890
+ version "2.2.5"
6891
+ resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8"
6892
+ integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==
6911
6893
  dependencies:
6912
6894
  glob "^7.0.0"
6913
6895
  lodash "^4.0.0"
6914
6896
  scss-tokenizer "^0.2.3"
6915
- yargs "^7.0.0"
6897
+ yargs "^13.3.2"
6916
6898
 
6917
6899
  sass-loader@7.3.1:
6918
6900
  version "7.3.1"
@@ -6978,11 +6960,11 @@ select-hose@^2.0.0:
6978
6960
  integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
6979
6961
 
6980
6962
  selfsigned@^1.10.7:
6981
- version "1.10.7"
6982
- resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b"
6983
- integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==
6963
+ version "1.10.8"
6964
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30"
6965
+ integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==
6984
6966
  dependencies:
6985
- node-forge "0.9.0"
6967
+ node-forge "^0.10.0"
6986
6968
 
6987
6969
  "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
6988
6970
  version "5.7.1"
@@ -7235,22 +7217,22 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
7235
7217
  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
7236
7218
 
7237
7219
  spdx-correct@^3.0.0:
7238
- version "3.1.0"
7239
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
7240
- integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
7220
+ version "3.1.1"
7221
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
7222
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
7241
7223
  dependencies:
7242
7224
  spdx-expression-parse "^3.0.0"
7243
7225
  spdx-license-ids "^3.0.0"
7244
7226
 
7245
7227
  spdx-exceptions@^2.1.0:
7246
- version "2.2.0"
7247
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
7248
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
7228
+ version "2.3.0"
7229
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
7230
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
7249
7231
 
7250
7232
  spdx-expression-parse@^3.0.0:
7251
- version "3.0.0"
7252
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
7253
- integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
7233
+ version "3.0.1"
7234
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
7235
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
7254
7236
  dependencies:
7255
7237
  spdx-exceptions "^2.1.0"
7256
7238
  spdx-license-ids "^3.0.0"
@@ -7394,7 +7376,7 @@ strict-uri-encode@^1.0.0:
7394
7376
  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
7395
7377
  integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
7396
7378
 
7397
- string-width@^1.0.1, string-width@^1.0.2:
7379
+ string-width@^1.0.1:
7398
7380
  version "1.0.2"
7399
7381
  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
7400
7382
  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
@@ -7751,13 +7733,13 @@ toidentifier@1.0.0:
7751
7733
  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
7752
7734
  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
7753
7735
 
7754
- tough-cookie@~2.4.3:
7755
- version "2.4.3"
7756
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
7757
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
7736
+ tough-cookie@~2.5.0:
7737
+ version "2.5.0"
7738
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
7739
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
7758
7740
  dependencies:
7759
- psl "^1.1.24"
7760
- punycode "^1.4.1"
7741
+ psl "^1.1.28"
7742
+ punycode "^2.1.1"
7761
7743
 
7762
7744
  trim-newlines@^1.0.0:
7763
7745
  version "1.0.0"
@@ -7904,9 +7886,9 @@ upath@^1.1.1:
7904
7886
  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
7905
7887
 
7906
7888
  uri-js@^4.2.2:
7907
- version "4.2.2"
7908
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
7909
- integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
7889
+ version "4.4.0"
7890
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
7891
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
7910
7892
  dependencies:
7911
7893
  punycode "^2.1.0"
7912
7894
 
@@ -7968,11 +7950,16 @@ utils-merge@1.0.1:
7968
7950
  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
7969
7951
  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
7970
7952
 
7971
- uuid@^3.0.1, uuid@^3.3.2:
7953
+ uuid@^3.0.1:
7972
7954
  version "3.3.3"
7973
7955
  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
7974
7956
  integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
7975
7957
 
7958
+ uuid@^3.3.2:
7959
+ version "3.4.0"
7960
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
7961
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
7962
+
7976
7963
  v8-compile-cache@2.0.3:
7977
7964
  version "2.0.3"
7978
7965
  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
@@ -8179,11 +8166,6 @@ websocket-extensions@>=0.1.1:
8179
8166
  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
8180
8167
  integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
8181
8168
 
8182
- which-module@^1.0.0:
8183
- version "1.0.0"
8184
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
8185
- integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
8186
-
8187
8169
  which-module@^2.0.0:
8188
8170
  version "2.0.0"
8189
8171
  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
@@ -8256,11 +8238,6 @@ xtend@^4.0.0, xtend@~4.0.1:
8256
8238
  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
8257
8239
  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
8258
8240
 
8259
- y18n@^3.2.1:
8260
- version "3.2.1"
8261
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
8262
- integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
8263
-
8264
8241
  "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
8265
8242
  version "4.0.0"
8266
8243
  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
@@ -8304,12 +8281,13 @@ yargs-parser@^13.1.0:
8304
8281
  camelcase "^5.0.0"
8305
8282
  decamelize "^1.2.0"
8306
8283
 
8307
- yargs-parser@^5.0.0:
8308
- version "5.0.0"
8309
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
8310
- integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
8284
+ yargs-parser@^13.1.2:
8285
+ version "13.1.2"
8286
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
8287
+ integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
8311
8288
  dependencies:
8312
- camelcase "^3.0.0"
8289
+ camelcase "^5.0.0"
8290
+ decamelize "^1.2.0"
8313
8291
 
8314
8292
  yargs@12.0.5:
8315
8293
  version "12.0.5"
@@ -8346,21 +8324,18 @@ yargs@13.2.4:
8346
8324
  y18n "^4.0.0"
8347
8325
  yargs-parser "^13.1.0"
8348
8326
 
8349
- yargs@^7.0.0:
8350
- version "7.1.0"
8351
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
8352
- integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
8327
+ yargs@^13.3.2:
8328
+ version "13.3.2"
8329
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
8330
+ integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
8353
8331
  dependencies:
8354
- camelcase "^3.0.0"
8355
- cliui "^3.2.0"
8356
- decamelize "^1.1.1"
8357
- get-caller-file "^1.0.1"
8358
- os-locale "^1.4.0"
8359
- read-pkg-up "^1.0.1"
8332
+ cliui "^5.0.0"
8333
+ find-up "^3.0.0"
8334
+ get-caller-file "^2.0.1"
8360
8335
  require-directory "^2.1.1"
8361
- require-main-filename "^1.0.1"
8336
+ require-main-filename "^2.0.0"
8362
8337
  set-blocking "^2.0.0"
8363
- string-width "^1.0.2"
8364
- which-module "^1.0.0"
8365
- y18n "^3.2.1"
8366
- yargs-parser "^5.0.0"
8338
+ string-width "^3.0.0"
8339
+ which-module "^2.0.0"
8340
+ y18n "^4.0.0"
8341
+ yargs-parser "^13.1.2"