diff --git a/.codeclimate.yml b/.codeclimate.yml
index 502509ab8e9..70174d88df0 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -86,6 +86,9 @@ plugins:
channel: rubocop-0-58
scss-lint:
enabled: true
+ checks:
+ HexLength:
+ enabled: false
exclude_patterns:
- 'db/schema.rb'
diff --git a/.rubocop.yml b/.rubocop.yml
index 43b9c52497c..11d3b732a5e 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -56,6 +56,7 @@ Metrics/ClassLength:
- spec/**/*
- app/controllers/application_controller.rb
- app/controllers/openid_connect/authorization_controller.rb
+ - app/controllers/saml_idp_controller.rb
- app/controllers/users/confirmations_controller.rb
- app/controllers/users/sessions_controller.rb
- app/controllers/users/two_factor_authentication_controller.rb
diff --git a/app/assets/stylesheets/variables/_colors.scss b/app/assets/stylesheets/variables/_colors.scss
index 61e1c5e712d..2728b709587 100644
--- a/app/assets/stylesheets/variables/_colors.scss
+++ b/app/assets/stylesheets/variables/_colors.scss
@@ -16,12 +16,12 @@ $red: #e21c3d !default;
$fuchsia: #f012be !default;
$purple: #b10dc9 !default;
$maroon: #85144b !default;
-$white: #fff !default;
+$white: #ffffff !default;
$silver: #d9dadb !default;
$gray: #5b616a !default;
-$gray-light: #ddd !default;
+$gray-light: #dddddd !default;
$gray-lighter: #fafafa !default;
-$black: #111 !default;
+$black: #111111 !default;
$pink: #eb4d67 !default;
-$red: #f00 !default;
+$red: #ff0000 !default;
$red-lightest: #fff7f8 !default;
diff --git a/app/controllers/account_recovery_setup_controller.rb b/app/controllers/account_recovery_setup_controller.rb
index eb22586fee4..1d1304c2d2e 100644
--- a/app/controllers/account_recovery_setup_controller.rb
+++ b/app/controllers/account_recovery_setup_controller.rb
@@ -5,7 +5,7 @@ class AccountRecoverySetupController < ApplicationController
before_action :confirm_two_factor_authenticated
def index
- return redirect_to account_url unless piv_cac_enabled_but_not_phone_enabled?
+ return redirect_to account_url unless piv_cac_enabled_but_not_multiple_mfa_enabled?
@two_factor_options_form = TwoFactorOptionsForm.new(current_user)
@presenter = account_recovery_options_presenter
end
@@ -13,6 +13,6 @@ def index
private
def account_recovery_options_presenter
- AccountRecoveryOptionsPresenter.new
+ AccountRecoveryOptionsPresenter.new(current_user, current_sp)
end
end
diff --git a/app/controllers/account_reset/request_controller.rb b/app/controllers/account_reset/request_controller.rb
index be43fac85e2..7c6856919da 100644
--- a/app/controllers/account_reset/request_controller.rb
+++ b/app/controllers/account_reset/request_controller.rb
@@ -13,7 +13,7 @@ def show
def create
analytics.track_event(Analytics::ACCOUNT_RESET, analytics_attributes)
AccountReset::CreateRequest.new(current_user).call
- flash[:email] = current_user.email_address.email
+ flash[:email] = current_user.email_addresses.first.email
redirect_to account_reset_confirm_request_url
end
@@ -40,6 +40,7 @@ def analytics_attributes
sms_phone: TwoFactorAuthentication::PhonePolicy.new(current_user).configured?,
totp: TwoFactorAuthentication::AuthAppPolicy.new(current_user).configured?,
piv_cac: TwoFactorAuthentication::PivCacPolicy.new(current_user).configured?,
+ email_addresses: current_user.email_addresses.count,
}
end
end
diff --git a/app/controllers/analytics_controller.rb b/app/controllers/analytics_controller.rb
index 4ec79522f56..87bd97f62f6 100644
--- a/app/controllers/analytics_controller.rb
+++ b/app/controllers/analytics_controller.rb
@@ -1,11 +1,11 @@
class AnalyticsController < ApplicationController
skip_before_action :verify_authenticity_token
- before_action :confirm_two_factor_authenticated
def create
- unless analytics_saved?
- session[:platform_authenticator] = true
- analytics.track_event(Analytics::PLATFORM_AUTHENTICATOR, results.to_h)
+ results.each do |event, result|
+ next if result.nil?
+
+ analytics.track_event(event, result.to_h)
end
head :ok
end
@@ -13,11 +13,29 @@ def create
private
def results
- FormResponse.new(success: true, errors: {},
- extra: { platform_authenticator: params[:available] })
+ {
+ Analytics::FRONTEND_BROWSER_CAPABILITIES => platform_authenticator_result,
+ }
+ end
+
+ def platform_authenticator_result
+ return unless current_user
+ return if platform_authenticator_results_saved? || !platform_authenticator_params_valid?
+
+ session[:platform_authenticator_analytics_saved] = true
+ platform_authenticator_available = params[:available] ||
+ params.dig(:platform_authenticator, :available)
+ extra = { platform_authenticator: (platform_authenticator_available == 'true') }
+ FormResponse.new(success: true, errors: {}, extra: extra)
+ end
+
+ def platform_authenticator_params_valid?
+ result = params[:available] || params.dig(:platform_authenticator, :available)
+ %w[true false].include?(result)
end
- def analytics_saved?
- session[:platform_authenticator]
+ def platform_authenticator_results_saved?
+ session[:platform_authenticator_analytics_saved] == true ||
+ session[:platform_authenticator] == true
end
end
diff --git a/app/controllers/concerns/account_recoverable.rb b/app/controllers/concerns/account_recoverable.rb
index cc3a3e1a46c..4b7432e39b3 100644
--- a/app/controllers/concerns/account_recoverable.rb
+++ b/app/controllers/concerns/account_recoverable.rb
@@ -1,9 +1,9 @@
module AccountRecoverable
# :reek:FeatureEnvy
- def piv_cac_enabled_but_not_phone_enabled?
+ def piv_cac_enabled_but_not_multiple_mfa_enabled?
# we need to change this so it's about having multiple mfa methods defined rather than
# piv/cac + phone. Leaving as-is for now.
TwoFactorAuthentication::PivCacPolicy.new(current_user).enabled? &&
- !TwoFactorAuthentication::PhonePolicy.new(current_user).enabled?
+ !MfaPolicy.new(current_user).multiple_factors_enabled?
end
end
diff --git a/app/controllers/concerns/remember_device_concern.rb b/app/controllers/concerns/remember_device_concern.rb
index 59542d5d7c1..77ec8d58660 100644
--- a/app/controllers/concerns/remember_device_concern.rb
+++ b/app/controllers/concerns/remember_device_concern.rb
@@ -12,8 +12,12 @@ def save_remember_device_preference
def check_remember_device_preference
return unless authentication_context?
return if remember_device_cookie.nil?
- return unless remember_device_cookie.valid_for_user?(current_user)
- handle_valid_otp
+ return unless remember_device_cookie.valid_for_user?(
+ user: current_user,
+ expiration_interval: decorated_session.mfa_expiration_interval
+ )
+
+ handle_valid_remember_device_cookie
end
def remember_device_cookie
@@ -24,9 +28,27 @@ def remember_device_cookie
)
end
+ def remember_device_expired_for_sp?
+ return false unless user_session[:mfa_device_remembered]
+ return true if remember_device_cookie.nil?
+
+ !remember_device_cookie.valid_for_user?(
+ user: current_user,
+ expiration_interval: decorated_session.mfa_expiration_interval
+ )
+ end
+
private
+ def handle_valid_remember_device_cookie
+ user_session[:mfa_device_remembered] = true
+ mark_user_session_authenticated
+ bypass_sign_in current_user
+ redirect_to after_otp_verification_confirmation_url
+ reset_otp_session_data
+ end
+
def remember_device_cookie_expiration
- Figaro.env.remember_device_expiration_days.to_i.days.from_now
+ Figaro.env.remember_device_expiration_hours_aal_1.to_i.hours.from_now
end
end
diff --git a/app/controllers/concerns/two_factor_authenticatable.rb b/app/controllers/concerns/two_factor_authenticatable.rb
index 5cd5333f2e1..52df8a0072f 100644
--- a/app/controllers/concerns/two_factor_authenticatable.rb
+++ b/app/controllers/concerns/two_factor_authenticatable.rb
@@ -53,8 +53,10 @@ def current_password_required?
def check_already_authenticated
return unless initial_authentication_context?
+ return unless user_fully_authenticated?
+ return if remember_device_expired_for_sp?
- redirect_to after_otp_verification_confirmation_url if user_fully_authenticated?
+ redirect_to after_otp_verification_confirmation_url
end
def reset_attempt_count_if_user_no_longer_locked_out
@@ -76,6 +78,7 @@ def handle_valid_otp
handle_valid_otp_for_confirmation_context
end
save_remember_device_preference
+ user_session.delete(:mfa_device_remembered)
redirect_to after_otp_verification_confirmation_url
reset_otp_session_data
@@ -145,7 +148,9 @@ def old_phone
def phone_changed
create_user_event(:phone_changed)
- UserMailer.phone_changed(current_user).deliver_later
+ current_user.confirmed_email_addresses.each do |email_address|
+ UserMailer.phone_changed(email_address).deliver_later
+ end
end
def phone_confirmed
@@ -234,7 +239,7 @@ def account_reset_token
def authenticator_view_data
{
two_factor_authentication_method: two_factor_authentication_method,
- user_email: current_user.email_address.email,
+ user_email: current_user.email_addresses.first.email,
remember_device_available: false,
}.merge(generic_data)
end
diff --git a/app/controllers/concerns/unconfirmed_user_concern.rb b/app/controllers/concerns/unconfirmed_user_concern.rb
index ad27d7108ea..03b340efd39 100644
--- a/app/controllers/concerns/unconfirmed_user_concern.rb
+++ b/app/controllers/concerns/unconfirmed_user_concern.rb
@@ -24,7 +24,9 @@ def validate_token
def process_valid_confirmation_token
@confirmation_token = params[:confirmation_token]
- @forbidden_passwords = ForbiddenPasswords.new(@user.email_address.email).call
+ @forbidden_passwords = @user.email_addresses.flat_map do |email_address|
+ ForbiddenPasswords.new(email_address.email).call
+ end
flash.now[:success] = t('devise.confirmations.confirmed_but_must_set_password')
session[:user_confirmation_token] = @confirmation_token
end
diff --git a/app/controllers/openid_connect/authorization_controller.rb b/app/controllers/openid_connect/authorization_controller.rb
index b79a8f869c8..eedcd658ef4 100644
--- a/app/controllers/openid_connect/authorization_controller.rb
+++ b/app/controllers/openid_connect/authorization_controller.rb
@@ -2,6 +2,7 @@ module OpenidConnect
class AuthorizationController < ApplicationController
include AccountRecoverable
include FullyAuthenticatable
+ include RememberDeviceConcern
include VerifyProfileConcern
include VerifySPAttributesConcern
@@ -10,11 +11,11 @@ class AuthorizationController < ApplicationController
before_action :force_login_if_prompt_param_is_login_and_request_is_external, only: [:index]
before_action :store_request, only: [:index]
before_action :apply_secure_headers_override, only: [:index]
+ before_action :confirm_user_is_authenticated_with_fresh_mfa, only: :index
def index
- return confirm_two_factor_authenticated(request_id) unless user_fully_authenticated?
link_identity_to_service_provider
- return redirect_to account_recovery_setup_url if piv_cac_enabled_but_not_phone_enabled?
+ return redirect_to account_recovery_setup_url if piv_cac_enabled_but_not_multiple_mfa_enabled?
return redirect_to_account_or_verify_profile_url if profile_or_identity_needs_verification?
return redirect_to(sign_up_completed_url) if needs_sp_attribute_verification?
handle_successful_handoff
@@ -22,6 +23,11 @@ def index
private
+ def confirm_user_is_authenticated_with_fresh_mfa
+ return confirm_two_factor_authenticated(request_id) unless user_fully_authenticated?
+ redirect_to user_two_factor_authentication_url if remember_device_expired_for_sp?
+ end
+
def link_identity_to_service_provider
@authorize_form.link_identity_to_service_provider(current_user, session.id)
end
diff --git a/app/controllers/saml_idp_controller.rb b/app/controllers/saml_idp_controller.rb
index 3bce7a68583..ceae80d7630 100644
--- a/app/controllers/saml_idp_controller.rb
+++ b/app/controllers/saml_idp_controller.rb
@@ -8,17 +8,18 @@ class SamlIdpController < ApplicationController
include SamlIdpLogoutConcern
include AccountRecoverable
include FullyAuthenticatable
+ include RememberDeviceConcern
include VerifyProfileConcern
include VerifySPAttributesConcern
skip_before_action :verify_authenticity_token
before_action :validate_saml_logout_request, only: :logout
+ before_action :confirm_user_is_authenticated_with_fresh_mfa, only: :auth
def auth
- return confirm_two_factor_authenticated(request_id) unless user_fully_authenticated?
link_identity_from_session_data
capture_analytics
- return redirect_to account_recovery_setup_url if piv_cac_enabled_but_not_phone_enabled?
+ return redirect_to account_recovery_setup_url if piv_cac_enabled_but_not_multiple_mfa_enabled?
return redirect_to_account_or_verify_profile_url if profile_or_identity_needs_verification?
return redirect_to(sign_up_completed_url) if needs_sp_attribute_verification?
handle_successful_handoff
@@ -40,6 +41,11 @@ def logout
private
+ def confirm_user_is_authenticated_with_fresh_mfa
+ return confirm_two_factor_authenticated(request_id) unless user_fully_authenticated?
+ redirect_to user_two_factor_authentication_url if remember_device_expired_for_sp?
+ end
+
def validate_saml_logout_request(raw_saml_request = params[:SAMLRequest])
request_valid = saml_request_valid?(raw_saml_request)
diff --git a/app/controllers/two_factor_authentication/personal_key_verification_controller.rb b/app/controllers/two_factor_authentication/personal_key_verification_controller.rb
index 9aa44bd3804..3762a66dc0a 100644
--- a/app/controllers/two_factor_authentication/personal_key_verification_controller.rb
+++ b/app/controllers/two_factor_authentication/personal_key_verification_controller.rb
@@ -29,6 +29,7 @@ def presenter_for_two_factor_authentication_method
def handle_result(result)
if result.success?
+ create_user_event(:personal_key_used)
generate_new_personal_key
handle_valid_otp
else
@@ -69,6 +70,7 @@ def handle_valid_otp
handle_valid_otp_for_authentication_context
redirect_to manage_personal_key_url
reset_otp_session_data
+ user_session.delete(:mfa_device_remembered)
end
end
end
diff --git a/app/controllers/two_factor_authentication/piv_cac_verification_controller.rb b/app/controllers/two_factor_authentication/piv_cac_verification_controller.rb
index 1e9df398ea4..40161f93c33 100644
--- a/app/controllers/two_factor_authentication/piv_cac_verification_controller.rb
+++ b/app/controllers/two_factor_authentication/piv_cac_verification_controller.rb
@@ -36,6 +36,7 @@ def handle_valid_piv_cac
handle_valid_otp_for_authentication_context
redirect_to next_step
reset_otp_session_data
+ user_session.delete(:mfa_device_remembered)
end
def next_step
@@ -63,7 +64,7 @@ def render_show_after_invalid
def piv_cac_view_data
{
two_factor_authentication_method: two_factor_authentication_method,
- user_email: current_user.email_address.email,
+ user_email: current_user.email_addresses.first.email,
remember_device_available: false,
}.merge(generic_data)
end
diff --git a/app/controllers/two_factor_authentication/webauthn_verification_controller.rb b/app/controllers/two_factor_authentication/webauthn_verification_controller.rb
index 0d58b3ab58f..a06768c8f17 100644
--- a/app/controllers/two_factor_authentication/webauthn_verification_controller.rb
+++ b/app/controllers/two_factor_authentication/webauthn_verification_controller.rb
@@ -26,6 +26,7 @@ def handle_valid_webauthn
handle_valid_otp_for_authentication_context
redirect_to after_otp_verification_confirmation_url
reset_otp_session_data
+ user_session.delete(:mfa_device_remembered)
end
def handle_invalid_webauthn
diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb
index 90fbc7f2c91..a2c2d1bfee8 100644
--- a/app/controllers/users/passwords_controller.rb
+++ b/app/controllers/users/passwords_controller.rb
@@ -4,7 +4,9 @@ class PasswordsController < ReauthnRequiredController
def edit
@update_user_password_form = UpdateUserPasswordForm.new(current_user)
- @forbidden_passwords = ForbiddenPasswords.new(current_user.email_address.email).call
+ @forbidden_passwords = current_user.email_addresses.flat_map do |email_address|
+ ForbiddenPasswords.new(email_address.email).call
+ end
end
def update
@@ -41,7 +43,9 @@ def handle_invalid_password
# need to provide our custom forbidden passwords data that zxcvbn needs,
# otherwise the JS will throw an exception and the password strength
# meter will not appear.
- @forbidden_passwords = ForbiddenPasswords.new(current_user.email).call
+ @forbidden_passwords = current_user.email_addresses.flat_map do |email_address|
+ ForbiddenPasswords.new(email_address.email).call
+ end
render :edit
end
end
diff --git a/app/controllers/users/reset_passwords_controller.rb b/app/controllers/users/reset_passwords_controller.rb
index 6c44c98fead..8a2ffd34be0 100644
--- a/app/controllers/users/reset_passwords_controller.rb
+++ b/app/controllers/users/reset_passwords_controller.rb
@@ -27,7 +27,7 @@ def edit
if result.success?
@reset_password_form = ResetPasswordForm.new(build_user)
- @forbidden_passwords = forbidden_passwords(token_user.email_address.email)
+ @forbidden_passwords = forbidden_passwords(token_user.email_addresses)
else
handle_invalid_or_expired_token(result)
end
@@ -36,7 +36,6 @@ def edit
# PUT /resource/password
def update
self.resource = user_matching_token(user_params[:reset_password_token])
-
@reset_password_form = ResetPasswordForm.new(resource)
result = @reset_password_form.submit(user_params)
@@ -52,8 +51,10 @@ def update
protected
- def forbidden_passwords(email_address)
- ForbiddenPasswords.new(email_address).call
+ def forbidden_passwords(email_addresses)
+ email_addresses.flat_map do |email_address|
+ ForbiddenPasswords.new(email_address.email).call
+ end
end
def email_params
@@ -112,8 +113,9 @@ def handle_successful_password_reset
end
def handle_unsuccessful_password_reset(result)
- if result.errors[:reset_password_token].present?
- flash[:error] = t('devise.passwords.token_expired')
+ reset_password_token_errors = result.errors[:reset_password_token]
+ if reset_password_token_errors.present?
+ flash[:error] = t("devise.passwords.#{reset_password_token_errors.first}")
redirect_to new_user_password_url
return
end
diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb
index 78dab16ceb4..5c7f525a62a 100644
--- a/app/controllers/users/sessions_controller.rb
+++ b/app/controllers/users/sessions_controller.rb
@@ -2,6 +2,7 @@ module Users
class SessionsController < Devise::SessionsController
include ::ActionView::Helpers::DateHelper
include SecureHeadersConcern
+ include RememberDeviceConcern
rescue_from ActionController::InvalidAuthenticityToken, with: :redirect_to_signin
@@ -112,6 +113,7 @@ def track_authentication_attempt(email)
user_locked_out: user_locked_out?(user),
stored_location: session['user_return_to'],
sp_request_url_present: sp_session[:request_url].present?,
+ remember_device: remember_device_cookie.present?,
}
analytics.track_event(Analytics::EMAIL_AND_PASSWORD_AUTH, properties)
diff --git a/app/controllers/users/webauthn_setup_controller.rb b/app/controllers/users/webauthn_setup_controller.rb
index 05f6f07af0c..24ee92ad16f 100644
--- a/app/controllers/users/webauthn_setup_controller.rb
+++ b/app/controllers/users/webauthn_setup_controller.rb
@@ -16,7 +16,7 @@ def confirm
result = form.submit(request.protocol, params)
analytics.track_event(Analytics::WEBAUTHN_SETUP_SUBMITTED, result.to_h)
if result.success?
- process_valid_webauthn(form.attestation_response)
+ process_valid_webauthn
else
process_invalid_webauthn(form)
end
@@ -35,6 +35,10 @@ def delete
redirect_to account_url
end
+ def show_delete
+ render 'users/webauthn_setup/delete'
+ end
+
private
def flash_error(errors)
@@ -46,21 +50,23 @@ def exclude_credentials
end
def handle_successful_delete
+ create_user_event(:webauthn_key_removed)
WebauthnConfiguration.where(user_id: current_user.id, id: params[:id]).destroy_all
flash[:success] = t('notices.webauthn_deleted')
track_delete(true)
end
def handle_failed_delete
- flash[:error] = t('errors.webauthn_setup.delete_last')
track_delete(false)
end
def track_delete(success)
+ counts_hash = MfaContext.new(current_user.reload).enabled_two_factor_configuration_counts_hash
+
analytics.track_event(
Analytics::WEBAUTHN_DELETED,
success: success,
- mfa_options_enabled: MfaContext.new(current_user).enabled_two_factor_configurations_count
+ mfa_method_counts: counts_hash
)
end
@@ -73,9 +79,8 @@ def two_factor_enabled?
MfaPolicy.new(current_user).two_factor_enabled?
end
- def process_valid_webauthn(attestation_response)
+ def process_valid_webauthn
mark_user_as_fully_authenticated
- create_webauthn_configuration(attestation_response)
redirect_to webauthn_setup_success_url
end
@@ -103,16 +108,6 @@ def mark_user_as_fully_authenticated
user_session[:authn_at] = Time.zone.now
end
- def create_webauthn_configuration(attestation_response)
- credential = attestation_response.credential
- public_key = Base64.strict_encode64(credential.public_key)
- id = Base64.strict_encode64(credential.id)
- WebauthnConfiguration.create(user_id: current_user.id,
- credential_public_key: public_key,
- credential_id: id,
- name: params[:name])
- end
-
def user_already_has_a_personal_key?
TwoFactorAuthentication::PersonalKeyPolicy.new(current_user).configured?
end
diff --git a/app/decorators/service_provider_session_decorator.rb b/app/decorators/service_provider_session_decorator.rb
index 79356c75600..a8d768ea8a2 100644
--- a/app/decorators/service_provider_session_decorator.rb
+++ b/app/decorators/service_provider_session_decorator.rb
@@ -119,10 +119,27 @@ def sp_alert_learn_more
custom_alert? ? CUSTOM_SP_ALERTS.dig(sp_name, :learn_more) : 'https://login.gov/help/'
end
+ # :reek:DuplicateMethodCall
+ def mfa_expiration_interval
+ aal_1_expiration = Figaro.env.remember_device_expiration_hours_aal_1.to_i.hours
+ aal_2_expiration = Figaro.env.remember_device_expiration_hours_aal_2.to_i.hours
+ return aal_2_expiration if sp_aal > 1
+ return aal_2_expiration if sp_ial > 1
+ aal_1_expiration
+ end
+
private
attr_reader :sp, :view_context, :sp_session, :service_provider_request
+ def sp_aal
+ sp.aal || 1
+ end
+
+ def sp_ial
+ sp.ial || 1
+ end
+
def custom_alert?
CUSTOM_ALERT_SP_NAMES.include?(sp_name)
end
diff --git a/app/decorators/session_decorator.rb b/app/decorators/session_decorator.rb
index 1490fe2a5a7..aeec4ebd470 100644
--- a/app/decorators/session_decorator.rb
+++ b/app/decorators/session_decorator.rb
@@ -31,6 +31,10 @@ def cancel_link_url
view_context.root_url
end
+ def mfa_expiration_interval
+ Figaro.env.remember_device_expiration_hours_aal_1.to_i.hours
+ end
+
def failure_to_proof_url; end
def sp_msg; end
diff --git a/app/decorators/user_decorator.rb b/app/decorators/user_decorator.rb
index 41114f05983..63788926454 100644
--- a/app/decorators/user_decorator.rb
+++ b/app/decorators/user_decorator.rb
@@ -11,7 +11,7 @@ def initialize(user)
end
def email
- user.email_address&.email
+ user.email_addresses.first&.email
end
def lockout_time_remaining_in_words
diff --git a/app/forms/personal_key_form.rb b/app/forms/personal_key_form.rb
index d4d57d234c5..a037559f609 100644
--- a/app/forms/personal_key_form.rb
+++ b/app/forms/personal_key_form.rb
@@ -15,6 +15,7 @@ def submit
@success = valid?
reset_sensitive_fields unless success
+ send_personal_key_sign_in_notification if success
FormResponse.new(success: success, errors: errors.messages, extra: extra_analytics_attributes)
end
@@ -32,4 +33,13 @@ def extra_analytics_attributes
def reset_sensitive_fields
self.personal_key = nil
end
+
+ def send_personal_key_sign_in_notification
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.personal_key_sign_in(email_address.email).deliver_now
+ end
+ MfaContext.new(user).phone_configurations.each do |phone_configuration|
+ SmsPersonalKeySignInNotifierJob.perform_now(phone: phone_configuration.phone)
+ end
+ end
end
diff --git a/app/forms/register_user_email_form.rb b/app/forms/register_user_email_form.rb
index dadee7a8324..a41dccfb7a3 100644
--- a/app/forms/register_user_email_form.rb
+++ b/app/forms/register_user_email_form.rb
@@ -6,8 +6,6 @@ def self.model_name
ActiveModel::Name.new(self, nil, 'User')
end
- delegate :email, to: :user
-
def initialize(recaptcha_results = [true, {}])
@allow, @recaptcha_h = recaptcha_results
end
@@ -16,6 +14,10 @@ def user
@user ||= User.new
end
+ def email
+ @email || user.email
+ end
+
def resend
'true'
end
@@ -71,7 +73,7 @@ def process_errors(request_id)
end
def user_unconfirmed?
- !existing_user.email_address&.confirmed?
+ existing_user.email_addresses.none?(&:confirmed?)
end
def existing_user
diff --git a/app/forms/reset_password_form.rb b/app/forms/reset_password_form.rb
index c8a2c0b5c9a..25e0437def0 100644
--- a/app/forms/reset_password_form.rb
+++ b/app/forms/reset_password_form.rb
@@ -26,9 +26,13 @@ def submit(params)
attr_reader :success
def valid_token
- return if user.reset_password_period_valid?
-
- errors.add(:reset_password_token, 'token_expired')
+ if !user.persisted?
+ # If the user is not saved in the database, that means looking them up by
+ # their token failed
+ errors.add(:reset_password_token, 'invalid_token')
+ elsif !user.reset_password_period_valid?
+ errors.add(:reset_password_token, 'token_expired')
+ end
end
def handle_valid_password
@@ -58,7 +62,9 @@ def mark_profile_inactive
end
def notify_user_of_password_change_via_email
- UserMailer.password_changed(user).deliver_later
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.password_changed(email_address).deliver_later
+ end
end
def extra_analytics_attributes
diff --git a/app/forms/update_user_email_form.rb b/app/forms/update_user_email_form.rb
index 50bcfe52e37..cd8334e80fc 100644
--- a/app/forms/update_user_email_form.rb
+++ b/app/forms/update_user_email_form.rb
@@ -10,7 +10,7 @@ def persisted?
def initialize(user)
@user = user
- self.email = @user.email_address.email
+ self.email = @user.email_addresses.first&.email
end
def submit(params)
@@ -31,7 +31,7 @@ def valid_form?
end
def email_changed?
- valid? && email != @user.email_address.email
+ valid? && email != @user.email_addresses.first&.email
end
private
diff --git a/app/forms/update_user_password_form.rb b/app/forms/update_user_password_form.rb
index 8ad67928a4a..a0d0b0c65ec 100644
--- a/app/forms/update_user_password_form.rb
+++ b/app/forms/update_user_password_form.rb
@@ -33,7 +33,9 @@ def update_user_password
end
def email_user_about_password_change
- UserMailer.password_changed(user).deliver_later
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.password_changed(email_address).deliver_later
+ end
end
def encrypt_user_profile_if_active
diff --git a/app/forms/webauthn_setup_form.rb b/app/forms/webauthn_setup_form.rb
index 2794827ede9..776e2498a04 100644
--- a/app/forms/webauthn_setup_form.rb
+++ b/app/forms/webauthn_setup_form.rb
@@ -22,7 +22,12 @@ def initialize(user, user_session)
def submit(protocol, params)
consume_parameters(params)
success = valid? && valid_attestation_response?(protocol)
- FormResponse.new(success: success, errors: errors.messages)
+ if success
+ create_webauthn_configuration
+ create_user_event
+ end
+
+ FormResponse.new(success: success, errors: errors.messages, extra: extra_analytics_attributes)
end
# this gives us a hook to override the domain embedded in the attestation test object
@@ -61,4 +66,22 @@ def safe_response(original_origin)
errors.add :name, I18n.t('errors.webauthn_setup.attestation_error')
false
end
+
+ def create_webauthn_configuration
+ credential = attestation_response.credential
+ public_key = Base64.strict_encode64(credential.public_key)
+ id = Base64.strict_encode64(credential.id)
+ WebauthnConfiguration.create(user_id: user.id,
+ credential_public_key: public_key,
+ credential_id: id,
+ name: name)
+ end
+
+ def create_user_event
+ Event.create(user_id: user.id, event_type: :webauthn_key_added)
+ end
+
+ def extra_analytics_attributes
+ { mfa_method_counts: MfaContext.new(user).enabled_two_factor_configuration_counts_hash }
+ end
end
diff --git a/app/javascript/app/platform-authenticator.js b/app/javascript/app/platform-authenticator.js
index 7ea97674db0..b670c183265 100644
--- a/app/javascript/app/platform-authenticator.js
+++ b/app/javascript/app/platform-authenticator.js
@@ -1,12 +1,18 @@
+function postPlatformAuthenticator(userIntent) {
+ const xhr = new XMLHttpRequest();
+ xhr.open('POST', '/analytics', true);
+ xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
+ xhr.send(`platform_authenticator[available]=${userIntent}`);
+}
function platformAuthenticator() {
- const isEnabled = document.querySelector('[data-platform-authenticator-enabled]');
- if (isEnabled && window.PublicKeyCredential) {
+ if (document.querySelector('[data-platform-authenticator-enabled]')) {
+ if (!window.PublicKeyCredential) {
+ postPlatformAuthenticator(false);
+ return;
+ }
window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
.then(function(userIntent) {
- const xhr = new XMLHttpRequest();
- xhr.open('POST', '/analytics', true);
- xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
- xhr.send(`available=${userIntent}`);
+ postPlatformAuthenticator(userIntent);
});
}
}
diff --git a/app/javascript/packs/webauthn-setup.js b/app/javascript/packs/webauthn-setup.js
index 782bf5e719a..158b4010309 100644
--- a/app/javascript/packs/webauthn-setup.js
+++ b/app/javascript/packs/webauthn-setup.js
@@ -69,7 +69,8 @@ function webauthn() {
excludeCredentials: excludeCredentialsArray,
},
};
- if (!(navigator && navigator.credentials && navigator.credentials.create)) {
+ if (location.href.indexOf('?error=') === -1 &&
+ !(navigator && navigator.credentials && navigator.credentials.create)) {
window.location.href = '/webauthn_setup?error=NotSupportedError';
}
const continueButton = document.getElementById('continue-button');
diff --git a/app/jobs/sms_personal_key_sign_in_notifier_job.rb b/app/jobs/sms_personal_key_sign_in_notifier_job.rb
new file mode 100644
index 00000000000..0e26f02d7ae
--- /dev/null
+++ b/app/jobs/sms_personal_key_sign_in_notifier_job.rb
@@ -0,0 +1,14 @@
+class SmsPersonalKeySignInNotifierJob < ApplicationJob
+ queue_as :sms
+
+ # :reek:UtilityFunction
+ def perform(phone:)
+ TwilioService::Utils.new.send_sms(
+ to: phone,
+ body: I18n.t(
+ 'jobs.sms_personal_key_sign_in_notifier_job.message',
+ app: APP_NAME
+ )
+ )
+ end
+end
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index ea933daa8e7..dcf0044e6a0 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -14,12 +14,12 @@ def signup_with_your_email(email)
mail(to: email, subject: t('mailer.email_reuse_notice.subject'))
end
- def password_changed(user)
- mail(to: user.email_address.email, subject: t('devise.mailer.password_updated.subject'))
+ def password_changed(email_address)
+ mail(to: email_address.email, subject: t('devise.mailer.password_updated.subject'))
end
- def phone_changed(user)
- mail(to: user.email_address.email, subject: t('user_mailer.phone_changed.subject'))
+ def phone_changed(email_address)
+ mail(to: email_address.email, subject: t('user_mailer.phone_changed.subject'))
end
def account_does_not_exist(email, request_id)
@@ -27,27 +27,30 @@ def account_does_not_exist(email, request_id)
mail(to: email, subject: t('user_mailer.account_does_not_exist.subject'))
end
- def account_reset_request(user)
- account_reset = user.account_reset_request
+ def personal_key_sign_in(email)
+ mail(to: email, subject: t('user_mailer.personal_key_sign_in.subject'))
+ end
+
+ def account_reset_request(email_address, account_reset)
@token = account_reset&.request_token
- mail(to: user.email_address.email, subject: t('user_mailer.account_reset_request.subject'))
+ mail(to: email_address.email, subject: t('user_mailer.account_reset_request.subject'))
end
- def account_reset_granted(user, account_reset)
+ def account_reset_granted(email_address, account_reset)
@token = account_reset&.request_token
@granted_token = account_reset&.granted_token
- mail(to: user.email_address.email, subject: t('user_mailer.account_reset_granted.subject'))
+ mail(to: email_address.email, subject: t('user_mailer.account_reset_granted.subject'))
end
- def account_reset_complete(email)
- mail(to: email, subject: t('user_mailer.account_reset_complete.subject'))
+ def account_reset_complete(email_address)
+ mail(to: email_address.email, subject: t('user_mailer.account_reset_complete.subject'))
end
- def account_reset_cancel(email)
- mail(to: email, subject: t('user_mailer.account_reset_cancel.subject'))
+ def account_reset_cancel(email_address)
+ mail(to: email_address.email, subject: t('user_mailer.account_reset_cancel.subject'))
end
- def please_reset_password(email)
- mail(to: email, subject: t('user_mailer.please_reset_password.subject'))
+ def please_reset_password(email_address)
+ mail(to: email_address.email, subject: t('user_mailer.please_reset_password.subject'))
end
end
diff --git a/app/models/anonymous_user.rb b/app/models/anonymous_user.rb
index f48ea508384..df84f817c9b 100644
--- a/app/models/anonymous_user.rb
+++ b/app/models/anonymous_user.rb
@@ -31,8 +31,8 @@ def otp_secret_key; end
def email; end
- def email_address
- EMPTY_EMAIL_ADDRESS
+ def email_addresses
+ [EMPTY_EMAIL_ADDRESS]
end
def confirmed_at
diff --git a/app/models/concerns/email_address_callback.rb b/app/models/concerns/email_address_callback.rb
index 80e85d3e47c..d1f96b9e200 100644
--- a/app/models/concerns/email_address_callback.rb
+++ b/app/models/concerns/email_address_callback.rb
@@ -1,13 +1,17 @@
module EmailAddressCallback
extend ActiveSupport::Concern
+ EMAIL_COLUMNS = %i[
+ encrypted_email confirmation_token confirmed_at confirmation_sent_at email_fingerprint
+ ].freeze
+
def self.included(base)
base.send(:after_save, :update_email_address)
end
def update_email_address
- if email_address.present?
- update_email_address_record
+ if email_addresses.any?
+ update_email_address_record if email_information_changed?
elsif encrypted_email.present?
create_full_email_address_record
end
@@ -16,7 +20,7 @@ def update_email_address
private
def update_email_address_record
- email_address.update!(
+ email_addresses.first.update!(
encrypted_email: encrypted_email,
confirmation_token: confirmation_token,
confirmed_at: confirmed_at,
@@ -26,7 +30,7 @@ def update_email_address_record
end
def create_full_email_address_record
- create_email_address!(
+ email_addresses.create!(
user: self,
encrypted_email: encrypted_email,
confirmation_token: confirmation_token,
@@ -34,5 +38,10 @@ def create_full_email_address_record
confirmation_sent_at: confirmation_sent_at,
email_fingerprint: email_fingerprint
)
+ email_addresses.reload
+ end
+
+ def email_information_changed?
+ EMAIL_COLUMNS.any? { |column| saved_change_to_attribute?(column) }
end
end
diff --git a/app/models/concerns/user_encrypted_attribute_overrides.rb b/app/models/concerns/user_encrypted_attribute_overrides.rb
index 65fa146ed25..8e5fdf66b74 100644
--- a/app/models/concerns/user_encrypted_attribute_overrides.rb
+++ b/app/models/concerns/user_encrypted_attribute_overrides.rb
@@ -34,7 +34,7 @@ def email_in_database
def email=(email)
set_encrypted_attribute(name: :email, value: email)
self.email_fingerprint = email.present? ? encrypted_attributes[:email].fingerprint : ''
- return if email_address.blank?
- email_address.email = email
+ return if email_addresses.empty?
+ email_addresses.first.email = email
end
end
diff --git a/app/models/email_address.rb b/app/models/email_address.rb
index 1a162ac14e9..51cd73cdb1a 100644
--- a/app/models/email_address.rb
+++ b/app/models/email_address.rb
@@ -3,7 +3,7 @@ class EmailAddress < ApplicationRecord
encrypted_attribute_without_setter(name: :email)
- belongs_to :user, inverse_of: :email_address
+ belongs_to :user, inverse_of: :email_addresses
validates :user_id, presence: true
validates :encrypted_email, presence: true
validates :email_fingerprint, presence: true
diff --git a/app/models/event.rb b/app/models/event.rb
index 1d9bedc78c7..13d468e6fc7 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -14,6 +14,9 @@ class Event < ApplicationRecord
piv_cac_enabled: 10,
piv_cac_disabled: 11,
new_personal_key: 12,
+ personal_key_used: 13,
+ webauthn_key_added: 14,
+ webauthn_key_removed: 15,
}
validates :event_type, presence: true
diff --git a/app/models/identity.rb b/app/models/identity.rb
index 51d5584fbf8..3ed9bb5f986 100644
--- a/app/models/identity.rb
+++ b/app/models/identity.rb
@@ -29,10 +29,13 @@ def decorate
end
def piv_cac_available?
- PivCacService.piv_cac_available_for_agency?(sp_metadata[:agency], user.email_address.email)
+ PivCacService.piv_cac_available_for_agency?(
+ sp_metadata[:agency],
+ user.email_addresses.map(&:email)
+ )
end
def email
- user.email_address.email
+ user.email_addresses.first&.email
end
end
diff --git a/app/models/service_provider.rb b/app/models/service_provider.rb
index c4232f3b853..e4658cd443a 100644
--- a/app/models/service_provider.rb
+++ b/app/models/service_provider.rb
@@ -43,7 +43,7 @@ def live?
end
def piv_cac_available?(user = nil)
- PivCacService.piv_cac_available_for_agency?(agency, user&.email_address&.email)
+ PivCacService.piv_cac_available_for_agency?(agency, user&.email_addresses&.map(&:email))
end
private
diff --git a/app/models/user.rb b/app/models/user.rb
index fd7a09f4723..c5c51e08432 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -44,7 +44,7 @@ class User < ApplicationRecord
has_many :events, dependent: :destroy
has_one :account_reset_request, dependent: :destroy
has_many :phone_configurations, dependent: :destroy, inverse_of: :user
- has_one :email_address, dependent: :destroy, inverse_of: :user
+ has_many :email_addresses, dependent: :destroy, inverse_of: :user
has_many :webauthn_configurations, dependent: :destroy, inverse_of: :user
has_one :doc_auth, dependent: :destroy, inverse_of: :user
@@ -56,6 +56,10 @@ def set_default_role
self.role ||= :user
end
+ def confirmed_email_addresses
+ email_addresses.where.not(confirmed_at: nil)
+ end
+
def need_two_factor_authentication?(_request)
MfaPolicy.new(self).two_factor_enabled?
end
diff --git a/app/presenters/account_recovery_options_presenter.rb b/app/presenters/account_recovery_options_presenter.rb
index c006ae0ffc7..5e065f5900d 100644
--- a/app/presenters/account_recovery_options_presenter.rb
+++ b/app/presenters/account_recovery_options_presenter.rb
@@ -1,8 +1,6 @@
-class AccountRecoveryOptionsPresenter
+class AccountRecoveryOptionsPresenter < TwoFactorOptionsPresenter
include ActionView::Helpers::TranslationHelper
- AVAILABLE_2FA_TYPES = %w[sms voice].freeze
-
def title
t('titles.account_recovery_setup')
end
@@ -18,15 +16,4 @@ def info
def label
t('forms.account_recovery_setup.legend') + ':'
end
-
- def options
- AVAILABLE_2FA_TYPES.map do |type|
- OpenStruct.new(
- type: type,
- label: t("two_factor_authentication.two_factor_choice_options.#{type}"),
- info: t("two_factor_authentication.two_factor_choice_options.#{type}_info"),
- selected: type == :sms
- )
- end
- end
end
diff --git a/app/presenters/two_factor_authentication/phone_selection_presenter.rb b/app/presenters/two_factor_authentication/phone_selection_presenter.rb
index 6941aae5d4c..674d4575709 100644
--- a/app/presenters/two_factor_authentication/phone_selection_presenter.rb
+++ b/app/presenters/two_factor_authentication/phone_selection_presenter.rb
@@ -11,11 +11,11 @@ def type
def info
if configuration.present?
t(
- "two_factor_authentication.login_options.#{method}_info_html",
+ "two_factor_authentication.#{option_mode}.#{method}_info_html",
phone: masked_number(configuration.phone)
)
else
- t("two_factor_authentication.login_options.#{method}_setup_info")
+ t("two_factor_authentication.#{option_mode}.#{method}_info")
end
end
diff --git a/app/presenters/two_factor_authentication/selection_presenter.rb b/app/presenters/two_factor_authentication/selection_presenter.rb
index f578e2e3013..9cc06235fe1 100644
--- a/app/presenters/two_factor_authentication/selection_presenter.rb
+++ b/app/presenters/two_factor_authentication/selection_presenter.rb
@@ -14,11 +14,21 @@ def type
end
def label
- t("two_factor_authentication.login_options.#{method}")
+ t("two_factor_authentication.#{option_mode}.#{method}")
end
def info
- t("two_factor_authentication.login_options.#{method}_info")
+ t("two_factor_authentication.#{option_mode}.#{method}_info")
+ end
+
+ private
+
+ def option_mode
+ if @configuration.present?
+ 'login_options'
+ else
+ 'two_factor_choice_options'
+ end
end
end
end
diff --git a/app/services/account_reset/cancel.rb b/app/services/account_reset/cancel.rb
index a855c2e0e80..f1e0b908ef2 100644
--- a/app/services/account_reset/cancel.rb
+++ b/app/services/account_reset/cancel.rb
@@ -24,7 +24,9 @@ def call
attr_reader :success, :token
def notify_user_via_email_of_account_reset_cancellation
- UserMailer.account_reset_cancel(user.email_address.email).deliver_later
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.account_reset_cancel(email_address).deliver_later
+ end
end
def notify_user_via_phone_of_account_reset_cancellation
diff --git a/app/services/account_reset/create_request.rb b/app/services/account_reset/create_request.rb
index 43a6e4fb7c9..149284782e6 100644
--- a/app/services/account_reset/create_request.rb
+++ b/app/services/account_reset/create_request.rb
@@ -5,8 +5,8 @@ def initialize(user)
end
def call
- create_request
- notify_user_by_email
+ request = create_request
+ notify_user_by_email(request)
notify_user_by_sms_if_applicable
end
@@ -23,10 +23,13 @@ def create_request
granted_at: nil,
granted_token: nil
)
+ request
end
- def notify_user_by_email
- UserMailer.account_reset_request(user).deliver_later
+ def notify_user_by_email(request)
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.account_reset_request(email_address, request).deliver_later
+ end
end
def notify_user_by_sms_if_applicable
diff --git a/app/services/account_reset/delete_account.rb b/app/services/account_reset/delete_account.rb
index baa6fbc5880..967263fe857 100644
--- a/app/services/account_reset/delete_account.rb
+++ b/app/services/account_reset/delete_account.rb
@@ -13,12 +13,11 @@ def call
track_account_age
track_mfa_method_counts
- if success
- notify_user_via_email_of_deletion
- destroy_user
- end
+ extra = extra_analytics_attributes
+
+ handle_successful_submission if success
- FormResponse.new(success: success, errors: errors.messages, extra: extra_analytics_attributes)
+ FormResponse.new(success: success, errors: errors.messages, extra: extra)
end
private
@@ -33,19 +32,26 @@ def track_mfa_method_counts
@mfa_method_counts = MfaContext.new(user).enabled_two_factor_configuration_counts_hash
end
+ def handle_successful_submission
+ notify_user_via_email_of_deletion
+ destroy_user
+ end
+
def destroy_user
user.destroy!
end
def notify_user_via_email_of_deletion
- UserMailer.account_reset_complete(user.email_address.email).deliver_later
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.account_reset_complete(email_address).deliver_later
+ end
end
def extra_analytics_attributes
{
user_id: user.uuid,
event: 'delete',
- email: user.email_address.email,
+ email: user.email_addresses.first&.email,
account_age_in_days: account_age,
mfa_method_counts: mfa_method_counts,
}
diff --git a/app/services/account_reset/grant_requests_and_send_emails.rb b/app/services/account_reset/grant_requests_and_send_emails.rb
index 6d21e2b99bb..2c47dc8ba9f 100644
--- a/app/services/account_reset/grant_requests_and_send_emails.rb
+++ b/app/services/account_reset/grant_requests_and_send_emails.rb
@@ -26,7 +26,10 @@ def sql_query_for_users_eligible_to_delete_their_accounts
def grant_request_and_send_email(arr)
user = arr.user
return false unless AccountReset::GrantRequest.new(user).call
- UserMailer.account_reset_granted(user, arr.reload).deliver_later
+ arr = arr.reload
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.account_reset_granted(email_address, arr).deliver_later
+ end
true
end
end
diff --git a/app/services/analytics.rb b/app/services/analytics.rb
index a4215775d61..fbd816d7d66 100644
--- a/app/services/analytics.rb
+++ b/app/services/analytics.rb
@@ -61,6 +61,7 @@ def browser
DOC_AUTH = 'Doc Auth'.freeze # visited or submitted is appended
EMAIL_AND_PASSWORD_AUTH = 'Email and Password Authentication'.freeze
EMAIL_CHANGE_REQUEST = 'Email Change Request'.freeze
+ FRONTEND_BROWSER_CAPABILITIES = 'Frontend: Browser capabilities'.freeze
IDV_BASIC_INFO_VISIT = 'IdV: basic info visited'.freeze
IDV_BASIC_INFO_SUBMITTED_FORM = 'IdV: basic info form submitted'.freeze
IDV_BASIC_INFO_SUBMITTED_VENDOR = 'IdV: basic info vendor submitted'.freeze
@@ -113,7 +114,6 @@ def browser
PERSONAL_KEY_VIEWED = 'Personal Key Viewed'.freeze
PHONE_CHANGE_REQUESTED = 'Phone Number Change: requested'.freeze
PHONE_DELETION_REQUESTED = 'Phone Number Deletion: requested'.freeze
- PLATFORM_AUTHENTICATOR = 'Platform Authenticator'.freeze
PROFILE_ENCRYPTION_INVALID = 'Profile Encryption: Invalid'.freeze
PROFILE_PERSONAL_KEY_CREATE = 'Profile: Created new personal key'.freeze
RATE_LIMIT_TRIGGERED = 'Rate Limit Triggered'.freeze
diff --git a/app/services/attribute_asserter.rb b/app/services/attribute_asserter.rb
index d4a5751d3b7..74540c2eece 100644
--- a/app/services/attribute_asserter.rb
+++ b/app/services/attribute_asserter.rb
@@ -38,7 +38,7 @@ def default_attrs
{
uuid: {
getter: uuid_getter_function,
- name_format: Saml::XML::Namespaces::Formats::NameId::PERSISTENT,
+ name_format: 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic',
name_id_format: Saml::XML::Namespaces::Formats::NameId::PERSISTENT,
},
}
@@ -75,7 +75,7 @@ def attribute_getter_function_ascii(attr)
def add_email(attrs)
attrs[:email] = {
getter: :email,
- name_format: Saml::XML::Namespaces::Formats::NameId::EMAIL_ADDRESS,
+ name_format: 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic',
name_id_format: Saml::XML::Namespaces::Formats::NameId::EMAIL_ADDRESS,
}
end
diff --git a/app/services/key_rotator/hmac_fingerprinter.rb b/app/services/key_rotator/hmac_fingerprinter.rb
index 6b4a3c440f6..357b5ea3e5d 100644
--- a/app/services/key_rotator/hmac_fingerprinter.rb
+++ b/app/services/key_rotator/hmac_fingerprinter.rb
@@ -25,9 +25,10 @@ def rotate_ssn_signature(profile, pii_attributes)
end
def rotate_email_fingerprints(user)
- email_address = user.email_address
- ee = EncryptedAttribute.new_from_decrypted(email_address.email)
- email_address.update_columns(email_fingerprint: ee.fingerprint)
+ user.email_addresses.each do |email_address|
+ ee = EncryptedAttribute.new_from_decrypted(email_address.email)
+ email_address.update_columns(email_fingerprint: ee.fingerprint)
+ end
end
# rubocop:enable Rails/SkipsModelValidations
end
diff --git a/app/services/pii/cacher.rb b/app/services/pii/cacher.rb
index 01e4b5c3c29..885d0925503 100644
--- a/app/services/pii/cacher.rb
+++ b/app/services/pii/cacher.rb
@@ -48,7 +48,7 @@ def stale_fingerprints?(profile)
end
def stale_email_fingerprint?
- user.email_address.stale_email_fingerprint?
+ user.email_addresses.any?(&:stale_email_fingerprint?)
end
def stale_attributes?
diff --git a/app/services/piv_cac_service.rb b/app/services/piv_cac_service.rb
index 0d1ec848def..45eda21533b 100644
--- a/app/services/piv_cac_service.rb
+++ b/app/services/piv_cac_service.rb
@@ -28,8 +28,8 @@ def piv_cac_verify_token_link
Figaro.env.piv_cac_verify_token_url
end
- def piv_cac_available_for_agency?(agency, email = nil)
- available_for_agency?(agency) || available_for_email?(agency, email)
+ def piv_cac_available_for_agency?(agency, emails = [])
+ available_for_agency?(agency) || available_for_email?(agency, emails)
end
private
@@ -40,14 +40,15 @@ def available_for_agency?(agency)
piv_cac_agencies.include?(agency)
end
- def available_for_email?(agency, email)
- return unless email.present? && agency_scoped_by_email?(agency)
+ def available_for_email?(agency, emails)
+ return unless emails.any? && agency_scoped_by_email?(agency)
piv_cac_email_domains = Figaro.env.piv_cac_email_domains || '[]'
+ supported_domains = JSON.parse(piv_cac_email_domains)
- (_, email_domain) = email.split(/@/, 2)
- domains = JSON.parse(piv_cac_email_domains)
- domains.any? { |supported_domain| domain_match?(email_domain, supported_domain) }
+ email_domains = emails.map { |email| email.split(/@/, 2).last }
+
+ emails_match_domains?(email_domains, supported_domains)
end
def agency_scoped_by_email?(agency)
@@ -59,11 +60,17 @@ def agency_scoped_by_email?(agency)
piv_cac_agencies_email_scope.include?(agency)
end
- def domain_match?(given, matcher)
- if matcher[0] == '.'
- given.end_with?(matcher)
- else
- given == matcher
+ def emails_match_domains?(email_domains, supported_domains)
+ partial_domains, exact_domains = supported_domains.partition { |domain| domain[0] == '.' }
+
+ (email_domains & exact_domains).any? ||
+ any_partial_domains_match?(email_domains, partial_domains)
+ end
+
+ # :reek:NestedIterators
+ def any_partial_domains_match?(givens, matchers)
+ givens.any? do |given|
+ matchers.any? { |matcher| given.end_with?(matcher) }
end
end
diff --git a/app/services/populate_email_addresses_table.rb b/app/services/populate_email_addresses_table.rb
index 069be4bbdab..5d21ee2e43e 100644
--- a/app/services/populate_email_addresses_table.rb
+++ b/app/services/populate_email_addresses_table.rb
@@ -16,12 +16,13 @@ def call
private
+ # :reek:DuplicateMethodCall
def process_batch(relation)
User.transaction do
relation.each do |user|
@total += 1
- next if user.email_address.present? || user.encrypted_email.blank?
- user.create_email_address(email_info_for_user(user))
+ next if user.email_addresses.any? || user.encrypted_email.blank?
+ user.email_addresses.create(email_info_for_user(user))
@count += 1
end
end
diff --git a/app/services/remember_device_cookie.rb b/app/services/remember_device_cookie.rb
index 84fabb18674..9fdea974e8a 100644
--- a/app/services/remember_device_cookie.rb
+++ b/app/services/remember_device_cookie.rb
@@ -32,17 +32,17 @@ def to_json
}.to_json
end
- def valid_for_user?(user)
+ def valid_for_user?(user:, expiration_interval:)
return false if user.id != user_id
return false if user_has_changed_phone?(user)
- return false if expired?
+ return false if expired?(expiration_interval)
true
end
private
- def expired?
- created_at < Figaro.env.remember_device_expiration_days.to_i.days.ago
+ def expired?(interval)
+ created_at < interval.ago
end
def user_has_changed_phone?(user)
diff --git a/app/services/reset_user_password.rb b/app/services/reset_user_password.rb
index 6ad01212c6c..ca9ed18ab7c 100644
--- a/app/services/reset_user_password.rb
+++ b/app/services/reset_user_password.rb
@@ -13,6 +13,6 @@ def call
def reset_user_password_and_log_event
user.update!(password: SecureRandom.hex(8))
- Kernel.puts "Password for user with email #{user.email_address.email} has been reset"
+ Kernel.puts "Password for user with email #{user.email_addresses.first.email} has been reset"
end
end
diff --git a/app/services/reset_user_password_and_send_email.rb b/app/services/reset_user_password_and_send_email.rb
index dbfbb2f8368..b59b9f50b0c 100644
--- a/app/services/reset_user_password_and_send_email.rb
+++ b/app/services/reset_user_password_and_send_email.rb
@@ -22,8 +22,7 @@ def reset_password_and_send_email_to_each_affected_user
user = User.find_with_email(email)
if user
ResetUserPassword.new(user: user).call
- UserMailer.please_reset_password(email).deliver_now
- Kernel.puts "Email sent to user with email #{email}"
+ notify_user_to_reset_password(user)
else
Kernel.puts "user with email #{email} not found"
end
@@ -33,4 +32,11 @@ def reset_password_and_send_email_to_each_affected_user
def affected_emails
user_emails.split(',')
end
+
+ def notify_user_to_reset_password(user)
+ user.confirmed_email_addresses.each do |email_address|
+ UserMailer.please_reset_password(email_address).deliver_now
+ Kernel.puts "Email sent to user with email #{email_address.email}"
+ end
+ end
end
diff --git a/app/validators/form_password_validator.rb b/app/validators/form_password_validator.rb
index 5d0b707d6af..d49b04460db 100644
--- a/app/validators/form_password_validator.rb
+++ b/app/validators/form_password_validator.rb
@@ -25,7 +25,7 @@ def strong_password
def password_score
@password_score = ZXCVBN_TESTER.test(
password,
- ForbiddenPasswords.new(user.email_address.email).call
+ user.email_addresses.flat_map { |address| ForbiddenPasswords.new(address.email).call }
)
end
diff --git a/app/views/account_recovery_setup/index.html.slim b/app/views/account_recovery_setup/index.html.slim
index 4fb2892b005..6a805143077 100644
--- a/app/views/account_recovery_setup/index.html.slim
+++ b/app/views/account_recovery_setup/index.html.slim
@@ -10,12 +10,12 @@ p.mt-tiny.mb3 = @presenter.info
.mb3
fieldset.m0.p0.border-none.
legend.mb2.serif.bold = @presenter.label
- - @presenter.options.each do |option|
+ - @presenter.options.each_with_index do |option, index|
label.btn-border.col-12.mb2 for="two_factor_options_form_selection_#{option.type}"
.radio
= radio_button_tag('two_factor_options_form[selection]',
option.type,
- @two_factor_options_form.selected?(option.type))
+ index.zero?)
span.indicator.mt-tiny
span.blue.bold.fs-20p = option.label
.regular.gray-dark.fs-10p.mb-tiny = option.info
diff --git a/app/views/accounts/_webauthn.html.slim b/app/views/accounts/_webauthn.html.slim
index 926ae965655..fcfb82a7ed3 100644
--- a/app/views/accounts/_webauthn.html.slim
+++ b/app/views/accounts/_webauthn.html.slim
@@ -10,6 +10,7 @@
.col.col-8.sm-6.truncate
= cfg.name
.col.col-4.sm-6.right-align
- = button_to(t('account.index.webauthn_delete'), webauthn_setup_path(id: cfg.id),
- method: :delete, class: 'btn btn-link')
+ = link_to_if(MfaPolicy.new(current_user).multiple_factors_enabled?,
+ t('account.index.webauthn_delete'), webauthn_setup_delete_path(id: cfg.id),
+ method: :get, class: 'btn btn-link')
.clearfix
diff --git a/app/views/accounts/show.html.slim b/app/views/accounts/show.html.slim
index 78f29e71895..5dfde7d798e 100644
--- a/app/views/accounts/show.html.slim
+++ b/app/views/accounts/show.html.slim
@@ -19,7 +19,7 @@ h1.hide = t('titles.account')
= image_tag asset_url('sign-in.svg'), width: 12, class: 'ml1'
= render 'account_item',
name: t('account.index.email'),
- content: current_user.email_address.email,
+ content: current_user.email_addresses.first.email,
path: manage_email_path,
action: @view_model.edit_action_partial
diff --git a/app/views/two_factor_authentication/otp_verification/show.html.slim b/app/views/two_factor_authentication/otp_verification/show.html.slim
index 48cb79737bb..141193beec4 100644
--- a/app/views/two_factor_authentication/otp_verification/show.html.slim
+++ b/app/views/two_factor_authentication/otp_verification/show.html.slim
@@ -26,7 +26,7 @@ p == @presenter.phone_number_message
inline-block.span style="white-space:nowrap;"
= check_box_tag 'remember_device', true, false, class: 'my2 ml2 mr1'
= label_tag 'remember_device',
- t('forms.messages.remember_device', duration: Figaro.env.remember_device_expiration_days),
+ t('forms.messages.remember_device'),
class: 'blue'
br
- if @presenter.update_phone_link.present?
diff --git a/app/views/user_mailer/personal_key_sign_in.html.slim b/app/views/user_mailer/personal_key_sign_in.html.slim
new file mode 100644
index 00000000000..9ae7e2becc0
--- /dev/null
+++ b/app/views/user_mailer/personal_key_sign_in.html.slim
@@ -0,0 +1,16 @@
+p.lead
+ strong == t('.intro')
+
+table.spacer
+ tbody
+ tr
+ td.s10 height="10px"
+ |
+table.hr
+ tr
+ th
+ |
+
+p == t('.help_html',
+ reset_password_url: forgot_password_url,
+ account_url: account_url)
diff --git a/app/views/users/webauthn_setup/delete.html.slim b/app/views/users/webauthn_setup/delete.html.slim
new file mode 100644
index 00000000000..4706f92e2d6
--- /dev/null
+++ b/app/views/users/webauthn_setup/delete.html.slim
@@ -0,0 +1,18 @@
+- title t('forms.webauthn_delete.confirm')
+
+= image_tag(asset_url('alert/warning-lg.svg'),
+ alt: t('forms.webauthn_delete.confirm'), width: 54)
+
+h1.h3.mb1.mt3.my0 = t('forms.webauthn_delete.confirm')
+
+.col-2
+ hr class="mt3 mb2 bw4 rounded border-yellow"
+br
+p == t('forms.webauthn_delete.caution')
+br
+br
+= button_to(t('account.index.webauthn_confirm_delete'), webauthn_setup_path(id: params[:id]),
+ method: :delete, class: 'btn btn-primary col-6 mb2 p2 rounded')
+
+= link_to t('links.cancel'), account_path,
+ class: 'btn col-6 p2 rounded-lg border border-blue blue border-box center'
diff --git a/config/application.yml.example b/config/application.yml.example
index 633d3cd82ae..91f15b899fb 100644
--- a/config/application.yml.example
+++ b/config/application.yml.example
@@ -166,7 +166,8 @@ development:
recaptcha_secret_key: 'key2'
redis_url: 'redis://localhost:6379/0'
redis_throttle_url: 'redis://localhost:6379/1'
- remember_device_expiration_days: '30'
+ remember_device_expiration_hours_aal_1: '720'
+ remember_device_expiration_hours_aal_2: '12'
requests_per_ip_limit: '300'
requests_per_ip_period: '300'
requests_per_ip_track_only_mode: 'false'
@@ -287,7 +288,8 @@ production:
recaptcha_secret_key: 'key2'
redis_url: 'redis://redis.login.gov.internal:6379'
redis_throttle_url: 'redis://redis.login.gov.internal:6379/1'
- remember_device_expiration_days: '30'
+ remember_device_expiration_hours_aal_1: '720'
+ remember_device_expiration_hours_aal_2: '12'
requests_per_ip_limit: '300'
requests_per_ip_period: '300'
requests_per_ip_track_only_mode: 'true'
@@ -410,7 +412,8 @@ test:
recaptcha_secret_key: 'key2'
redis_url: 'redis://localhost:6379/0'
redis_throttle_url: 'redis://localhost:6379/1'
- remember_device_expiration_days: '30'
+ remember_device_expiration_hours_aal_1: '720'
+ remember_device_expiration_hours_aal_2: '12'
requests_per_ip_limit: '4'
requests_per_ip_period: '60'
requests_per_ip_track_only_mode: 'false'
diff --git a/config/environments/test.rb b/config/environments/test.rb
index c6a14524e0a..e141308540a 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -38,7 +38,7 @@
type: :n_plus_one_query, class_name: 'User', association: :phone_configurations
)
Bullet.add_whitelist(
- type: :n_plus_one_query, class_name: 'User', association: :email_address
+ type: :n_plus_one_query, class_name: 'User', association: :email_addresses
)
end
diff --git a/config/initializers/figaro.rb b/config/initializers/figaro.rb
index 92533f3f513..2247c90acad 100644
--- a/config/initializers/figaro.rb
+++ b/config/initializers/figaro.rb
@@ -38,7 +38,8 @@
'requests_per_ip_limit',
'requests_per_ip_period',
'requests_per_ip_track_only_mode',
- 'remember_device_expiration_days',
+ 'remember_device_expiration_hours_aal_1',
+ 'remember_device_expiration_hours_aal_2',
'saml_passphrase',
'scrypt_cost',
'secret_key_base',
diff --git a/config/locales/account/en.yml b/config/locales/account/en.yml
index c506e0082d0..e777badba1d 100644
--- a/config/locales/account/en.yml
+++ b/config/locales/account/en.yml
@@ -26,9 +26,10 @@ en:
instructions: Your account requires a secret code to be verified.
reactivate_button: Enter the code you received via US mail
success: Your account has been verified.
- webauthn: Hardware security key
- webauthn_add: "+ Add hardware security key"
- webauthn_delete: Remove
+ webauthn: Security key
+ webauthn_add: "+ Add security key"
+ webauthn_confirm_delete: Yes, remove key
+ webauthn_delete: Remove key
items:
delete_your_account: Delete your account
personal_key: Personal key
diff --git a/config/locales/account/es.yml b/config/locales/account/es.yml
index c5ef747f60e..2f9cf0e47f9 100644
--- a/config/locales/account/es.yml
+++ b/config/locales/account/es.yml
@@ -26,9 +26,10 @@ es:
instructions: Su cuenta requiere que un código secreto sea verificado.
reactivate_button: Ingrese el código que recibió por correo postal.
success: Su cuenta ha sido verificada.
- webauthn: Clave de seguridad de hardware
- webauthn_add: "+ Agregar clave de seguridad de hardware"
- webauthn_delete: Retirar
+ webauthn: Clave de seguridad
+ webauthn_add: "+ Añadir clave de seguridad"
+ webauthn_confirm_delete: Si quitar la llave
+ webauthn_delete: Quitar llave
items:
delete_your_account: Eliminar su cuenta
personal_key: Clave personal
diff --git a/config/locales/account/fr.yml b/config/locales/account/fr.yml
index f45a81afe0d..8e1965b4350 100644
--- a/config/locales/account/fr.yml
+++ b/config/locales/account/fr.yml
@@ -28,9 +28,10 @@ fr:
instructions: Votre compte requiert la vérification d'un code secret.
reactivate_button: Entrez le code que vous avez reçu par la poste
success: Votre compte a été vérifié.
- webauthn: Clé de sécurité physique
- webauthn_add: "+ Ajouter une clé de sécurité physique"
- webauthn_delete: Retirer
+ webauthn: Clé de sécurité
+ webauthn_add: "+ Ajouter une clé de sécurité"
+ webauthn_confirm_delete: Oui, supprimer la clé
+ webauthn_delete: Supprimer la clé
items:
delete_your_account: Supprimer votre compte
personal_key: Clé personnelle
diff --git a/config/locales/errors/en.yml b/config/locales/errors/en.yml
index 5de4b5fb352..f5161dbf051 100644
--- a/config/locales/errors/en.yml
+++ b/config/locales/errors/en.yml
@@ -57,7 +57,6 @@ en:
attestation_error: Sorry, but your security key doesn't appear to be a FIDO
security key. Please make sure your device is listed at https://fidoalliance.org/certification/fido-certified-products/
and if you believe the error is ours, please contact us at hello@login.gov.
- delete_last: Sorry, you can not remove your last MFA option.
general_error: There was an error adding your hardware security key. Please
try again.
not_supported: Sorry, your browser does not support FIDO security keys.
diff --git a/config/locales/errors/es.yml b/config/locales/errors/es.yml
index 7594dc34a09..ee88b215248 100644
--- a/config/locales/errors/es.yml
+++ b/config/locales/errors/es.yml
@@ -58,7 +58,6 @@ es:
attestation_error: Lo sentimos, pero su clave de seguridad no parece ser una
clave de seguridad FIDO. Asegúrese de que su dispositivo esté en https://fidoalliance.org/certification/fido-certified-products/
y si cree que el error es nuestro, contáctenos en hello@login.gov.
- delete_last: Lo sentimos, no puedes eliminar tu última opción de MFA.
general_error: Hubo un error al agregar su clave de seguridad de hardware. Inténtalo
de nuevo.
not_supported: Lo sentimos, su navegador no admite las claves de seguridad FIDO.
diff --git a/config/locales/errors/fr.yml b/config/locales/errors/fr.yml
index d9af5726325..3249ada08ab 100644
--- a/config/locales/errors/fr.yml
+++ b/config/locales/errors/fr.yml
@@ -64,7 +64,6 @@ fr:
sur https://fidoalliance.org/certification/fido-certified-products/ et si
vous pensez que l'erreur est la nôtre, veuillez nous contacter à l'adresse
hello@login.gov.
- delete_last: Désolé, vous ne pouvez pas supprimer votre dernière option MFA
general_error: Une erreur s'est produite lors de l'ajout de votre clé de sécurité
physique. Veuillez réessayer.
not_supported: Désolé, votre navigateur ne supporte pas les clés de sécurité
diff --git a/config/locales/event_types/en.yml b/config/locales/event_types/en.yml
index f87f2ea5404..6dc6d1abcca 100644
--- a/config/locales/event_types/en.yml
+++ b/config/locales/event_types/en.yml
@@ -11,8 +11,11 @@ en:
email_changed: Email address changed
new_personal_key: Personal key changed
password_changed: Password changed
+ personal_key_used: Personal key used to sign in
phone_changed: Phone number changed
phone_confirmed: Phone confirmed
piv_cac_disabled: PIV/CAC card unassociated
piv_cac_enabled: PIV/CAC card associated
usps_mail_sent: Letter sent
+ webauthn_key_added: Hardware security key added
+ webauthn_key_removed: Hardware security key removed
diff --git a/config/locales/event_types/es.yml b/config/locales/event_types/es.yml
index 735cf988a5f..e6d3666452d 100644
--- a/config/locales/event_types/es.yml
+++ b/config/locales/event_types/es.yml
@@ -11,8 +11,11 @@ es:
email_changed: Email cambiado
new_personal_key: Clave personal cambiado
password_changed: Contraseña cambiada
+ personal_key_used: Clave personal utilizada para iniciar sesión
phone_changed: Número de teléfono cambiado
phone_confirmed: Teléfono confirmado
piv_cac_disabled: Tarjeta PIV/CAC no asociada
piv_cac_enabled: Tarjeta PIV/CAC asociada
usps_mail_sent: Carta enviada
+ webauthn_key_added: Clave de seguridad de hardware añadido
+ webauthn_key_removed: Clave de seguridad de hardware eliminada
diff --git a/config/locales/event_types/fr.yml b/config/locales/event_types/fr.yml
index d37b9f45093..4d9fc103f25 100644
--- a/config/locales/event_types/fr.yml
+++ b/config/locales/event_types/fr.yml
@@ -11,8 +11,11 @@ fr:
email_changed: Adresse courriel modifiée
new_personal_key: Clé personnelle modifié
password_changed: Mot de passe modifié
+ personal_key_used: Clé personnelle utilisée pour la connexion
phone_changed: Numéro de téléphone modifié
phone_confirmed: Numéro de téléphone confirmé
piv_cac_disabled: Carte PIV/CAC non associée
piv_cac_enabled: Carte PIV/CAC associée
usps_mail_sent: Lettre envoyée
+ webauthn_key_added: Clé de sécurité ajoutée
+ webauthn_key_removed: Clé de sécurité retirée
diff --git a/config/locales/forms/en.yml b/config/locales/forms/en.yml
index 8a7411bed5a..270724b153b 100644
--- a/config/locales/forms/en.yml
+++ b/config/locales/forms/en.yml
@@ -21,7 +21,7 @@ en:
show_hdr: Create a strong password
example: 'example:'
messages:
- remember_device: Remember this browser for %{duration} days
+ remember_device: Remember this browser
passwords:
edit:
buttons:
@@ -88,6 +88,10 @@ en:
name: Confirmation code
submit: Confirm account
title: Confirm your account
+ webauthn_delete:
+ caution: If you remove your security key you won't be able to use it to access
+ your login.gov account.
+ confirm: Are you sure you want to remove your security key?
webauthn_setup:
continue: Continue
instructions_text: Press the button on your security key to register it with
diff --git a/config/locales/forms/es.yml b/config/locales/forms/es.yml
index cca50b57715..77234f0af01 100644
--- a/config/locales/forms/es.yml
+++ b/config/locales/forms/es.yml
@@ -21,7 +21,7 @@ es:
show_hdr: Crear una contraseña segura
example: 'ejemplo:'
messages:
- remember_device: Recuerde este navegador por %{duration} días
+ remember_device: Recuerde este navegador
passwords:
edit:
buttons:
@@ -89,6 +89,10 @@ es:
name: Código de confirmación
submit: Confirmar cuenta
title: Confirme su cuenta
+ webauthn_delete:
+ caution: Si elimina su clave de seguridad, no podrá usarla para acceder a su
+ cuenta login.gov.
+ confirm: "¿Estás seguro de que quieres eliminar tu clave de seguridad?"
webauthn_setup:
continue: Continuar
instructions_text: Presione el botón en su clave de seguridad para registrarlo
diff --git a/config/locales/forms/fr.yml b/config/locales/forms/fr.yml
index faca7d38bb8..0855cf27df4 100644
--- a/config/locales/forms/fr.yml
+++ b/config/locales/forms/fr.yml
@@ -21,7 +21,7 @@ fr:
show_hdr: Créez un mot de passe fort
example: 'exemple:'
messages:
- remember_device: Enregistrer ce navigateur pendant %{duration} jours
+ remember_device: Enregistrer ce navigateur
passwords:
edit:
buttons:
@@ -96,6 +96,10 @@ fr:
name: Code de confirmation
submit: Confirmer le compte
title: Confirmez votre compte
+ webauthn_delete:
+ caution: Si vous supprimez votre clé de sécurité, vous ne pourrez plus l'utiliser
+ pour accéder à votre compte login.gov.
+ confirm: Êtes-vous sûr de vouloir supprimer votre clé de sécurité?
webauthn_setup:
continue: Continuer
instructions_text: Appuyez sur le bouton de votre clé de sécurité pour l’enregistrer
diff --git a/config/locales/instructions/en.yml b/config/locales/instructions/en.yml
index 5ea68f54937..35708148d3c 100644
--- a/config/locales/instructions/en.yml
+++ b/config/locales/instructions/en.yml
@@ -37,8 +37,8 @@ en:
confirm_code_html: Want us to call you again? %{resend_code_link}
number_message: We just called you at %{number}.
webauthn:
- confirm_webauthn_html: Present the hardware security key that you associated
- with your account.
+ confirm_webauthn_html: Present the security key that you associated with your
+ account.
wrong_number_html: Entered the wrong phone number? %{link}
password:
forgot: Don’t know your password? Reset it after confirming your email address.
diff --git a/config/locales/instructions/es.yml b/config/locales/instructions/es.yml
index 53d0a716d3a..18b66eb4edb 100644
--- a/config/locales/instructions/es.yml
+++ b/config/locales/instructions/es.yml
@@ -38,8 +38,7 @@ es:
confirm_code_html: "¿Desea que le llamemos de nuevo? %{resend_code_link}"
number_message: Acabamos de llamarte en %{number}.
webauthn:
- confirm_webauthn_html: Presente la clave de seguridad de hardware que ha asociado
- con su cuenta.
+ confirm_webauthn_html: Presente la clave de seguridad que asoció con su cuenta.
wrong_number_html: "¿Ingresó el número de teléfono equivocado? %{link}"
password:
forgot: "¿No sabe su contraseña? Restablézcala después de confirmar su email."
diff --git a/config/locales/instructions/fr.yml b/config/locales/instructions/fr.yml
index 55aeed73b09..e986ff1d4d1 100644
--- a/config/locales/instructions/fr.yml
+++ b/config/locales/instructions/fr.yml
@@ -41,8 +41,7 @@ fr:
confirm_code_html: Vous voulez que nous vous appelions de nouveau? %{resend_code_link}
number_message: Nous venons de vous appeler à %{number}.
webauthn:
- confirm_webauthn_html: Présentez la clé de sécurité physique associée à votre
- compte.
+ confirm_webauthn_html: Présentez la clé de sécurité associée à votre compte.
wrong_number_html: Vous avez entré un mauvais numéro de téléphone? %{link}
password:
forgot: Vous ne connaissez pas votre mot de passe? Réinitialisez-le après avoir
diff --git a/config/locales/jobs/en.yml b/config/locales/jobs/en.yml
index b3e2214936e..864b89c864a 100644
--- a/config/locales/jobs/en.yml
+++ b/config/locales/jobs/en.yml
@@ -12,3 +12,6 @@ en:
in to your account. This code will expire in %{expiration} minutes."
verify_message: "%{code} is your %{app} confirmation code. Use this to confirm
your phone number. This code will expire in %{expiration} minutes."
+ sms_personal_key_sign_in_notifier_job:
+ message: Your personal key was just used to sign into your login.gov account.
+ If this wasn’t you, reset your password and contact us at security@login.gov.
diff --git a/config/locales/jobs/es.yml b/config/locales/jobs/es.yml
index e1b9283f282..d2aec114d8d 100644
--- a/config/locales/jobs/es.yml
+++ b/config/locales/jobs/es.yml
@@ -12,3 +12,6 @@ es:
ingresando a su cuenta. Este código caducará en %{expiration} minutos."
verify_message: "%{code} es tu código de confirmación de %{app}. Use esto para
confirmar su número de teléfono. Este código caducará en %{expiration} minutos."
+ sms_personal_key_sign_in_notifier_job:
+ message: Su clave personal solo se utilizó para iniciar sesión en su cuenta
+ login.gov. Si no fue así, reinicie su contraseña y contáctenos en security@login.gov.
diff --git a/config/locales/jobs/fr.yml b/config/locales/jobs/fr.yml
index c8f6abbcb13..a2aa952d6ab 100644
--- a/config/locales/jobs/fr.yml
+++ b/config/locales/jobs/fr.yml
@@ -14,3 +14,7 @@ fr:
verify_message: "%{code} est votre code de confirmation %{app}. Utilisez-le
pour confirmer votre numéro de téléphone. Ce code expirera dans %{expiration}
minutes."
+ sms_personal_key_sign_in_notifier_job:
+ message: Votre clé personnelle a été utilisée pour vous connecter à votre compte
+ login.gov. Si ce n’était pas vous, changez votre mot de passe et contactez-nous
+ à security@login.gov.
diff --git a/config/locales/notices/en.yml b/config/locales/notices/en.yml
index 5218cfe1a00..aa0784e04a2 100644
--- a/config/locales/notices/en.yml
+++ b/config/locales/notices/en.yml
@@ -45,4 +45,4 @@ en:
use_diff_email:
link: use a different email address
text_html: Or, %{link}
- webauthn_deleted: You deleted a hardware security key.
+ webauthn_deleted: You removed a security key.
diff --git a/config/locales/notices/es.yml b/config/locales/notices/es.yml
index adeec205d69..a83ad139680 100644
--- a/config/locales/notices/es.yml
+++ b/config/locales/notices/es.yml
@@ -45,4 +45,4 @@ es:
use_diff_email:
link: use un email diferente
text_html: O %{link}
- webauthn_deleted: Has eliminado una clave de seguridad de hardware.
+ webauthn_deleted: Has eliminado una clave de seguridad.
diff --git a/config/locales/notices/fr.yml b/config/locales/notices/fr.yml
index 3167c4d1b6b..6d4662aa0eb 100644
--- a/config/locales/notices/fr.yml
+++ b/config/locales/notices/fr.yml
@@ -48,4 +48,4 @@ fr:
use_diff_email:
link: utilisez une adresse courriel différente
text_html: Or, %{link}
- webauthn_deleted: Vous avez supprimé une clé de sécurité physique.
+ webauthn_deleted: Vous avez supprimé une clé de sécurité.
diff --git a/config/locales/two_factor_authentication/en.yml b/config/locales/two_factor_authentication/en.yml
index 4bbb6917392..887e6707872 100644
--- a/config/locales/two_factor_authentication/en.yml
+++ b/config/locales/two_factor_authentication/en.yml
@@ -65,8 +65,8 @@ en:
be provided a new key.
phone:
delete:
- success: Your phone has been removed.
failure: Unable to remove your phone.
+ success: Your phone has been removed.
phone_fallback:
question: Don't have access to your phone right now?
phone_sms_info_html: We'll text a security code each time you sign in.
@@ -97,8 +97,8 @@ en:
sms_info: Get your security code via text message / SMS
voice: Phone call
voice_info: Get your security code via phone call
- webauthn: Hardware security key
+ webauthn: Security key
webauthn_info: Use a security key to secure your account
webauthn_fallback:
- question: Don't have your hardware security key available?
+ question: Don't have your security key available?
webauthn_header_text: Present your security key
diff --git a/config/locales/two_factor_authentication/es.yml b/config/locales/two_factor_authentication/es.yml
index b8577ae719c..20a932d4062 100644
--- a/config/locales/two_factor_authentication/es.yml
+++ b/config/locales/two_factor_authentication/es.yml
@@ -68,8 +68,8 @@ es:
se le dará una nueva clave.
phone:
delete:
- success: Su teléfono ha sido eliminado.
failure: No se puede eliminar el teléfono.
+ success: Su teléfono ha sido eliminado.
phone_fallback:
question: "¿No tiene acceso a su teléfono ahora mismo?"
phone_sms_info_html: Le enviaremos un mensaje de texto con un código de seguridad
@@ -101,8 +101,8 @@ es:
sms_info: Obtenga su código de seguridad a través de mensajes de texto / SMS
voice: Llamada telefónica
voice_info: Obtenga su código de seguridad a través de una llamada telefónica
- webauthn: Clave de seguridad de hardware
+ webauthn: Clave de seguridad
webauthn_info: Use una clave de seguridad para proteger su cuenta
webauthn_fallback:
- question: "¿No tienes tu clave de seguridad de hardware disponible?"
+ question: "¿No tienes tu clave de seguridad disponible?"
webauthn_header_text: Presenta tu clave de seguridad
diff --git a/config/locales/two_factor_authentication/fr.yml b/config/locales/two_factor_authentication/fr.yml
index 0bac68a2235..aa698240e8f 100644
--- a/config/locales/two_factor_authentication/fr.yml
+++ b/config/locales/two_factor_authentication/fr.yml
@@ -67,8 +67,8 @@ fr:
Une fois que vous l'entrez, vous recevrez une nouvelle clé.
phone:
delete:
- success: Votre numéro de téléphone a été supprimé.
failure: Impossible de supprimer votre numéro de téléphone.
+ success: Votre numéro de téléphone a été supprimé.
phone_fallback:
question: Vous n'avez pas accès à votre téléphone maintenant?
phone_sms_info_html: Nous vous enverrons un code de sécurité chaque fois
@@ -100,8 +100,8 @@ fr:
sms_info: Obtenez votre code de sécurité par SMS
voice: Appel téléphonique
voice_info: Obtenez votre code de sécurité par appel téléphonique
- webauthn: Clé de sécurité physique
+ webauthn: Clé de sécurité
webauthn_info: Utilisez une clé de sécurité pour sécuriser votre compte
webauthn_fallback:
- question: Votre clé de sécurité physique n'est pas disponible?
+ question: Votre clé de sécurité n'est-elle pas disponible?
webauthn_header_text: Présentez votre clé de sécurité
diff --git a/config/locales/user_mailer/en.yml b/config/locales/user_mailer/en.yml
index f2103222dea..aaf2a4491e0 100644
--- a/config/locales/user_mailer/en.yml
+++ b/config/locales/user_mailer/en.yml
@@ -44,6 +44,24 @@ en:
help: If you did not make this change, please visit the %{app} %{help_link}
or %{contact_link}.
intro: You have a new password for your %{app} account.
+ personal_key_sign_in:
+ help_html: Your login.gov account was just signed into using your 16-character
+ personal key. You're getting this email to make sure it was you.
If
+ you just signed in using your personal key, great! There's nothing you need
+ to do.
If you did not sign in with a personal key, or if you're not
+ sure, please immediately take these steps to secure your account:
- Change your password. Choose a password
+ that you haven't already used with this account.
- Sign
+ in to your login.gov account and make sure you recognize all
+ of the information on your account page, including the methods you use for
+ two-factor authentication, such as phone number, authentication app, or security
+ key.
- On your login.gov account page, request a new personal
+ key. Remember, never share it unless you are using it to sign into
+ a trusted website that uses login.gov.
You should then contact
+ us by calling 844-875-6446 or emailing security@login.gov.
+
Thanks,
The login.gov team
+ intro: Personal key used to sign in
+ subject: Account Security Alert
phone_changed:
help: If you did not want to change your phone number, please visit the %{app}
%{help_link} or %{contact_link}.
diff --git a/config/locales/user_mailer/es.yml b/config/locales/user_mailer/es.yml
index 1c8488cca5b..eb4eb6a58dc 100644
--- a/config/locales/user_mailer/es.yml
+++ b/config/locales/user_mailer/es.yml
@@ -43,6 +43,26 @@ es:
password_changed:
help: Si no realizó este cambio, visite el %{app} %{help_link} o el %{contact_link}.
intro: Tiene una contraseña nueva para su cuenta de %{app}.
+ personal_key_sign_in:
+ help_html: Su cuenta login.gov acaba de iniciar sesión con su clave personal
+ de 16 caracteres. Usted está recibiendo este e-mail para asegurarse de que
+ era usted.
Si acaba de iniciar sesión con su clave personal, ¡genial!
+ No hay nada que tenga que hacer.
Si no inició sesión con una clave personal,
+ o si no está seguro, por favor, siga estos pasos de inmediato para proteger
+ su cuenta.
- Cambie tu contraseña.
+ Elija una contraseña que no haya utilizado con esta cuenta.
- Inicie sesión en su cuenta login.gov y
+ asegúrese de reconocer toda la información en la página de su cuenta, incluidos
+ los métodos que utiliza para la autenticación de dos factores, como el número
+ de teléfono, la aplicación de autenticación, o la clave de seguridad.
- En
+ la página de su cuenta login.gov, solicite una nueva clave personal.
+ Recuerde, nunca lo comparta a menos que lo esté utilizando para iniciar sesión
+ en un sitio web de confianza que utiliza login.gov.
Luego
+ debe comunicarse con nosotros llamando al 844-875-6446 o enviando un e-mail
+ a security@login.gov.
Gracias,
El
+ equipo de login.gov
+ intro: Clave personal utilizada para iniciar sesión
+ subject: Alerta de seguridad de cuenta
phone_changed:
help: Si no desea cambiar su número de teléfono, visite el %{app} %{help_link}
o el %{contact_link}.
diff --git a/config/locales/user_mailer/fr.yml b/config/locales/user_mailer/fr.yml
index 056c325adc3..1c386e50dba 100644
--- a/config/locales/user_mailer/fr.yml
+++ b/config/locales/user_mailer/fr.yml
@@ -45,6 +45,27 @@ fr:
help: Si vous n'avez pas changé votre mot de passe, veuillez visiter le %{help_link}
de %{app} ou %{contact_link}.
intro: Le mot de passe de votre compte %{app} a été changé.
+ personal_key_sign_in:
+ help_html: Votre compte login.gov a été connecté à l'aide de votre clé personnelle.
+ Vous recevez cet email pour vous assurer que c'était bien vous.
Si vous
+ venez de vous connecter avec votre clé personnelle, c'est parfait! Vous ne
+ devez rien faire.
Si vous ne vous êtes pas connecté avec une clé personnelle
+ ou si vous n’êtes pas sûr, prenez immédiatement les mesures suivantes pour
+ sécuriser votre compte:
- Changez
+ votre mot de passe. Choisissez un mot de passe que vous n'avez
+ pas encore utilisé avec ce compte.
- Connectez-vous
+ à votre compte login.gov et assurez-vous de reconnaître toutes
+ les informations de la page de votre compte, y compris les méthodes que vous
+ utilisez pour l'authentification à deux facteurs, telles que le numéro de
+ téléphone, l'application d'authentification ou la clé de sécurité.
- Sur
+ la page de votre compte login.gov, demandez une nouvelle clé personnelle.
+ N'oubliez pas de ne jamais le partager à moins que vous ne l'utilisiez pour
+ vous connecter à un site Web de confiance utilisant login.gov.
Vous
+ devriez a nous contacter par téléphone au 844-875-6446 ou par courriel à security@login.gov.
Merci,
L'équipe
+ login.gov
+ intro: La clé personnelle utilisée pour vous connecter
+ subject: Alerte de sécurité du compte
phone_changed:
help: Si vous ne souhaitiez pas changer votre numéro de téléphone, veuillez
visiter le %{help_link} de %{app} ou %{contact_link}.
diff --git a/config/routes.rb b/config/routes.rb
index 759da725eaa..fac1e4c448b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -122,6 +122,7 @@
get '/webauthn_setup' => 'users/webauthn_setup#new', as: :webauthn_setup
patch '/webauthn_setup' => 'users/webauthn_setup#confirm'
delete '/webauthn_setup' => 'users/webauthn_setup#delete'
+ get '/webauthn_setup_delete' => 'users/webauthn_setup#show_delete'
get '/webauthn_setup_success' => 'users/webauthn_setup#success'
end
diff --git a/db/migrate/20181029203754_add_aal_and_ial_to_service_provider.rb b/db/migrate/20181029203754_add_aal_and_ial_to_service_provider.rb
new file mode 100644
index 00000000000..65a57fc7f1c
--- /dev/null
+++ b/db/migrate/20181029203754_add_aal_and_ial_to_service_provider.rb
@@ -0,0 +1,6 @@
+class AddAalAndIalToServiceProvider < ActiveRecord::Migration[5.1]
+ def change
+ add_column :service_providers, :aal, :integer
+ add_column :service_providers, :ial, :integer
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 4fa8f519947..cb124630707 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20181015153200) do
+ActiveRecord::Schema.define(version: 20181029203754) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -205,6 +205,8 @@
t.string "redirect_uris", default: [], array: true
t.integer "agency_id"
t.text "failure_to_proof_url"
+ t.integer "aal"
+ t.integer "ial"
t.index ["issuer"], name: "index_service_providers_on_issuer", unique: true
end
diff --git a/lib/tasks/rotate.rake b/lib/tasks/rotate.rake
index 710577b4b39..dfa01067d09 100644
--- a/lib/tasks/rotate.rake
+++ b/lib/tasks/rotate.rake
@@ -17,8 +17,8 @@ namespace :rotate do
rotator = KeyRotator::AttributeEncryption.new(phone_configuration)
rotator.rotate
end
- if user.email_address.present?
- rotator = KeyRotator::AttributeEncryption.new(user.email_address)
+ user.email_addresses.each do |email_address|
+ rotator = KeyRotator::AttributeEncryption.new(email_address)
rotator.rotate
end
progress&.increment
diff --git a/spec/controllers/account_recovery_setup_controller_spec.rb b/spec/controllers/account_recovery_setup_controller_spec.rb
index 2064124b04b..e495db20d90 100644
--- a/spec/controllers/account_recovery_setup_controller_spec.rb
+++ b/spec/controllers/account_recovery_setup_controller_spec.rb
@@ -13,7 +13,7 @@
context 'user is piv_cac enabled and phone enabled' do
it 'redirects to account_url' do
- user = build(:user, :signed_up, :with_piv_or_cac)
+ user = build(:user, :signed_up, :with_piv_or_cac, :with_email)
stub_sign_in(user)
get :index
@@ -24,7 +24,7 @@
context 'user is piv_cac enabled but not phone enabled' do
it 'redirects to account_url' do
- user = build(:user, :signed_up, :with_piv_or_cac, with: { mfa_enabled: false })
+ user = build(:user, :signed_up, :with_piv_or_cac, :with_email, with: { mfa_enabled: false })
stub_sign_in(user)
get :index
diff --git a/spec/controllers/account_reset/request_controller_spec.rb b/spec/controllers/account_reset/request_controller_spec.rb
index 9c85c8bd757..f604a9c2095 100644
--- a/spec/controllers/account_reset/request_controller_spec.rb
+++ b/spec/controllers/account_reset/request_controller_spec.rb
@@ -1,9 +1,9 @@
require 'rails_helper'
describe AccountReset::RequestController do
+ let(:user) { build(:user, :with_authentication_app, :with_email) }
describe '#show' do
it 'renders the page' do
- user = build(:user, :with_authentication_app)
stub_sign_in_before_2fa(user)
get :show
@@ -19,7 +19,6 @@
it 'redirects to root if feature is not enabled' do
allow(FeatureManagement).to receive(:account_reset_enabled?).and_return(false)
- user = build(:user, :with_authentication_app)
stub_sign_in_before_2fa(user)
get :show
@@ -35,7 +34,6 @@
end
it 'logs the visit to analytics' do
- user = build(:user, :with_authentication_app)
stub_sign_in_before_2fa(user)
stub_analytics
@@ -47,7 +45,6 @@
describe '#create' do
it 'logs totp user in the analytics' do
- user = build(:user, :with_authentication_app)
stub_sign_in_before_2fa(user)
stub_analytics
@@ -56,6 +53,7 @@
sms_phone: false,
totp: true,
piv_cac: false,
+ email_addresses: 1,
}
expect(@analytics).to receive(:track_event).
with(Analytics::ACCOUNT_RESET, attributes)
@@ -65,7 +63,7 @@
it 'logs sms user in the analytics' do
TwilioService::Utils.telephony_service = FakeSms
- user = build(:user, :signed_up)
+ user = build(:user, :signed_up, :with_email)
stub_sign_in_before_2fa(user)
stub_analytics
@@ -74,6 +72,7 @@
sms_phone: true,
totp: false,
piv_cac: false,
+ email_addresses: 1,
}
expect(@analytics).to receive(:track_event).
with(Analytics::ACCOUNT_RESET, attributes)
@@ -82,7 +81,7 @@
end
it 'logs PIV/CAC user in the analytics' do
- user = build(:user, :with_piv_or_cac)
+ user = build(:user, :with_piv_or_cac, :with_email)
stub_sign_in_before_2fa(user)
stub_analytics
@@ -91,6 +90,7 @@
sms_phone: false,
totp: false,
piv_cac: true,
+ email_addresses: 1,
}
expect(@analytics).to receive(:track_event).
with(Analytics::ACCOUNT_RESET, attributes)
@@ -106,7 +106,6 @@
it 'redirects to root if feature is not enabled' do
allow(FeatureManagement).to receive(:account_reset_enabled?).and_return(false)
- user = build(:user, :with_authentication_app)
stub_sign_in_before_2fa(user)
post :create
diff --git a/spec/controllers/analytics_controller_spec.rb b/spec/controllers/analytics_controller_spec.rb
deleted file mode 100644
index 982f0555dc8..00000000000
--- a/spec/controllers/analytics_controller_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require 'rails_helper'
-
-describe AnalyticsController do
- describe '#create' do
- before do
- stub_sign_in
- stub_analytics
- end
-
- it 'logs true for platform authenticator' do
- expect(@analytics).to receive(:track_event).
- with(Analytics::PLATFORM_AUTHENTICATOR,
- errors: {}, success: true, platform_authenticator: 'true')
-
- post :create, params: { available: true }
- end
-
- it 'logs false for platform authenticator' do
- expect(@analytics).to receive(:track_event).
- with(Analytics::PLATFORM_AUTHENTICATOR,
- errors: {}, success: true, platform_authenticator: 'false')
-
- post :create, params: { available: false }
- end
-
- it 'logs once per session' do
- expect(@analytics).to receive(:track_event).
- with(Analytics::PLATFORM_AUTHENTICATOR,
- errors: {}, success: true, platform_authenticator: 'true')
-
- post :create, params: { available: true }
- post :create, params: { available: true }
- end
- end
-end
diff --git a/spec/controllers/saml_idp_controller_spec.rb b/spec/controllers/saml_idp_controller_spec.rb
index ae19078e6fe..8c50e948d14 100644
--- a/spec/controllers/saml_idp_controller_spec.rb
+++ b/spec/controllers/saml_idp_controller_spec.rb
@@ -869,7 +869,7 @@
expect(email.name).to eq('Attribute')
expect(email['Name']).to eq('email')
- expect(email['NameFormat']).to eq(Saml::XML::Namespaces::Formats::NameId::EMAIL_ADDRESS)
+ expect(email['NameFormat']).to eq('urn:oasis:names:tc:SAML:2.0:attrname-format:basic')
expect(email['FriendlyName']).to eq('email')
end
@@ -878,7 +878,7 @@
expect(uuid.name).to eq('Attribute')
expect(uuid['Name']).to eq('uuid')
- expect(uuid['NameFormat']).to eq(Saml::XML::Namespaces::Formats::NameId::PERSISTENT)
+ expect(uuid['NameFormat']).to eq('urn:oasis:names:tc:SAML:2.0:attrname-format:basic')
expect(uuid['FriendlyName']).to eq('uuid')
end
@@ -901,6 +901,7 @@ def stub_auth
it 'tracks the authentication and IdV redirection event' do
stub_analytics
stub_auth
+ allow(controller).to receive(:remember_device_expired_for_sp?).and_return(false)
allow(controller).to receive(:identity_needs_verification?).and_return(true)
allow(controller).to receive(:saml_request).and_return(FakeSamlRequest.new)
allow(controller).to receive(:saml_request_id).
diff --git a/spec/controllers/two_factor_authentication/otp_verification_controller_spec.rb b/spec/controllers/two_factor_authentication/otp_verification_controller_spec.rb
index d04dc55eb49..8f745eba529 100644
--- a/spec/controllers/two_factor_authentication/otp_verification_controller_spec.rb
+++ b/spec/controllers/two_factor_authentication/otp_verification_controller_spec.rb
@@ -271,8 +271,10 @@
allow(@analytics).to receive(:track_event)
allow(subject).to receive(:create_user_event)
@mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- allow(UserMailer).to receive(:phone_changed).with(subject.current_user).
- and_return(@mailer)
+ subject.current_user.email_addresses.each do |email_address|
+ allow(UserMailer).to receive(:phone_changed).with(email_address).
+ and_return(@mailer)
+ end
@previous_phone = MfaContext.new(subject.current_user).phone_configurations.first&.phone
end
@@ -306,7 +308,9 @@
with(Analytics::MULTI_FACTOR_AUTH, properties)
expect(subject).to have_received(:create_user_event).with(:phone_changed)
expect(subject).to have_received(:create_user_event).exactly(:once)
- expect(UserMailer).to have_received(:phone_changed).with(subject.current_user)
+ subject.current_user.email_addresses.each do |email_address|
+ expect(UserMailer).to have_received(:phone_changed).with(email_address)
+ end
expect(@mailer).to have_received(:deliver_later)
end
end
diff --git a/spec/controllers/two_factor_authentication/personal_key_verification_controller_spec.rb b/spec/controllers/two_factor_authentication/personal_key_verification_controller_spec.rb
index f011714cde1..191bc85c64d 100644
--- a/spec/controllers/two_factor_authentication/personal_key_verification_controller_spec.rb
+++ b/spec/controllers/two_factor_authentication/personal_key_verification_controller_spec.rb
@@ -29,8 +29,9 @@
describe '#create' do
context 'when the user enters a valid personal key' do
- before do
- stub_sign_in_before_2fa(build(:user, personal_key: 'foo'))
+ it 'tracks the valid authentication event' do
+ sign_in_before_2fa
+
form = instance_double(PersonalKeyForm)
response = FormResponse.new(
success: true, errors: {}, extra: { multi_factor_auth_method: 'personal key' }
@@ -38,21 +39,7 @@
allow(PersonalKeyForm).to receive(:new).
with(subject.current_user, 'foo').and_return(form)
allow(form).to receive(:submit).and_return(response)
- end
- it 'redirects to the manage_personal_key_url so the user can see their new personal key' do
- post :create, params: payload
-
- expect(response).to redirect_to manage_personal_key_url
- end
-
- it 'calls handle_valid_otp_for_authentication_context' do
- expect(subject).to receive(:handle_valid_otp_for_authentication_context).and_call_original
-
- post :create, params: payload
- end
-
- it 'tracks the valid authentication event' do
stub_analytics
analytics_hash = { success: true, errors: {}, multi_factor_auth_method: 'personal key' }
diff --git a/spec/controllers/users/reset_passwords_controller_spec.rb b/spec/controllers/users/reset_passwords_controller_spec.rb
index bff8b56bf57..4aac5ef5dd3 100644
--- a/spec/controllers/users/reset_passwords_controller_spec.rb
+++ b/spec/controllers/users/reset_passwords_controller_spec.rb
@@ -58,7 +58,7 @@
email_address = instance_double('EmailAddress')
allow(User).to receive(:with_reset_password_token).with('foo').and_return(user)
allow(user).to receive(:reset_password_period_valid?).and_return(true)
- allow(user).to receive(:email_address).and_return(email_address)
+ allow(user).to receive(:email_addresses).and_return([email_address])
expect(email_address).to receive(:email).twice
forbidden = instance_double(ForbiddenPasswords)
@@ -141,6 +141,28 @@
end
end
+ context 'user submits the reset password form twice' do
+ it 'shows an invalid token error' do
+ allow(Figaro.env).to receive(:password_strength_enabled).and_return('true')
+
+ raw_reset_token, db_confirmation_token =
+ Devise.token_generator.generate(User, :reset_password_token)
+ create(
+ :user,
+ :unconfirmed,
+ reset_password_token: db_confirmation_token,
+ reset_password_sent_at: Time.zone.now
+ )
+ form_params = { password: 'a really long passw0rd', reset_password_token: raw_reset_token }
+
+ put :update, params: { reset_password_form: form_params }
+ put :update, params: { reset_password_form: form_params }
+
+ expect(response).to redirect_to new_user_password_path
+ expect(flash[:error]).to eq t('devise.passwords.invalid_token')
+ end
+ end
+
context 'LOA1 user submits valid new password' do
it 'redirects to sign in page' do
stub_analytics
@@ -521,7 +543,9 @@
def stub_user_mailer(user)
mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- allow(UserMailer).to receive(:password_changed).with(user).and_return(mailer)
+ user.email_addresses.each do |email_address|
+ allow(UserMailer).to receive(:password_changed).with(email_address).and_return(mailer)
+ end
end
def mock_captcha(enabled:, present:, valid:)
diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb
index b46ac971f84..9ee99e3de73 100644
--- a/spec/controllers/users/sessions_controller_spec.rb
+++ b/spec/controllers/users/sessions_controller_spec.rb
@@ -162,6 +162,7 @@
user_locked_out: false,
stored_location: 'http://example.com',
sp_request_url_present: false,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -180,6 +181,7 @@
user_locked_out: false,
stored_location: nil,
sp_request_url_present: false,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -196,6 +198,7 @@
user_locked_out: false,
stored_location: nil,
sp_request_url_present: false,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -218,6 +221,7 @@
user_locked_out: true,
stored_location: nil,
sp_request_url_present: false,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -235,6 +239,7 @@
user_locked_out: false,
stored_location: nil,
sp_request_url_present: true,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -303,6 +308,7 @@
user_locked_out: false,
stored_location: nil,
sp_request_url_present: false,
+ remember_device: false,
}
expect(@analytics).to receive(:track_event).
@@ -356,6 +362,59 @@
post :create, params: { user: { email: user.email, password: user.password } }
end
+
+ context 'with remember_device cookie present and valid' do
+ it 'tracks the cookie validity in analytics' do
+ user = create(:user, :signed_up)
+
+ cookies.encrypted[:remember_device] = {
+ value: RememberDeviceCookie.new(user_id: user.id, created_at: Time.zone.now).to_json,
+ expires: 2.days.from_now,
+ }
+
+ stub_analytics
+ analytics_hash = {
+ success: true,
+ user_id: user.uuid,
+ user_locked_out: false,
+ stored_location: nil,
+ sp_request_url_present: false,
+ remember_device: true,
+ }
+
+ expect(@analytics).to receive(:track_event).
+ with(Analytics::EMAIL_AND_PASSWORD_AUTH, analytics_hash)
+
+ post :create, params: { user: { email: user.email, password: user.password } }
+ end
+ end
+
+ context 'with remember_device cookie present but expired' do
+ it 'only tracks the cookie presence in analytics' do
+ user = create(:user, :signed_up)
+
+ allow(Figaro.env).to receive(:remember_device_expiration_days).and_return('2')
+
+ cookies.encrypted[:remember_device] = {
+ value: RememberDeviceCookie.new(user_id: user.id, created_at: 2.days.ago).to_json,
+ }
+
+ stub_analytics
+ analytics_hash = {
+ success: true,
+ user_id: user.uuid,
+ user_locked_out: false,
+ stored_location: nil,
+ sp_request_url_present: false,
+ remember_device: true,
+ }
+
+ expect(@analytics).to receive(:track_event).
+ with(Analytics::EMAIL_AND_PASSWORD_AUTH, analytics_hash)
+
+ post :create, params: { user: { email: user.email, password: user.password } }
+ end
+ end
end
describe '#new' do
diff --git a/spec/controllers/users/webauthn_setup_controller_spec.rb b/spec/controllers/users/webauthn_setup_controller_spec.rb
index 420fdc6e276..39b4cc72bdb 100644
--- a/spec/controllers/users/webauthn_setup_controller_spec.rb
+++ b/spec/controllers/users/webauthn_setup_controller_spec.rb
@@ -34,7 +34,7 @@
describe 'when signed in and not account creation' do
before do
stub_analytics
- user = build(:user, personal_key: 'ABCD-DEFG-HIJK-LMNO')
+ user = build(:user, :signed_up, :with_authentication_app)
stub_sign_in(user)
end
@@ -88,7 +88,7 @@
end
it 'tracks the submission' do
- result = { success: true, errors: {} }
+ result = { success: true, errors: {}, mfa_method_counts: { auth_app: 1, phone: 1 } }
expect(@analytics).to receive(:track_event).
with(Analytics::WEBAUTHN_SETUP_SUBMITTED, result)
@@ -97,19 +97,11 @@
end
describe 'delete' do
- before do
- mock_mfa = MfaContext.new(controller.current_user)
- allow(mock_mfa).to receive(:enabled_two_factor_configurations_count).and_return(2)
- allow(MfaContext).to receive(:new).with(controller.current_user).and_return(mock_mfa)
- mock_mfa_policy = MfaPolicy.new(controller.current_user)
- allow(mock_mfa_policy).to receive(:multiple_factors_enabled?).and_return(true)
- allow(MfaPolicy).to receive(:new).with(
- controller.current_user
- ).and_return(mock_mfa_policy)
- end
-
it 'deletes a webauthn configuration' do
+ expect(Event).to receive(:create).
+ with(user_id: controller.current_user.id, event_type: :webauthn_key_removed)
cfg = create_webauthn_configuration(controller.current_user, 'key1', 'id1', 'foo1')
+
delete :delete, params: { id: cfg.id }
expect(response).to redirect_to(account_url)
@@ -120,7 +112,7 @@
it 'tracks the delete' do
cfg = create_webauthn_configuration(controller.current_user, 'key1', 'id1', 'foo1')
- result = { success: true, mfa_options_enabled: 2 }
+ result = { success: true, mfa_method_counts: { auth_app: 1, phone: 1 } }
expect(@analytics).to receive(:track_event).with(Analytics::WEBAUTHN_DELETED, result)
delete :delete, params: { id: cfg.id }
@@ -129,25 +121,21 @@
end
describe 'when signed in and account creation' do
- before do
- user = build(:user)
- stub_sign_in(user)
- end
-
describe 'patch confirm' do
- let(:params) do
- {
+ it 'processes a valid webauthn and redirects to success page' do
+ user = build(:user)
+ stub_sign_in(user)
+
+ allow(Figaro.env).to receive(:domain_name).and_return('localhost:3000')
+ expect(Event).to receive(:create).with(user_id: user.id, event_type: :webauthn_key_added)
+ controller.user_session[:webauthn_challenge] = challenge
+
+ params = {
attestation_object: attestation_object,
client_data_json: client_data_json,
name: 'mykey',
}
- end
- before do
- allow(Figaro.env).to receive(:domain_name).and_return('localhost:3000')
- controller.user_session[:webauthn_challenge] = challenge
- end
- it 'processes a valid webauthn and redirects to success page' do
patch :confirm, params: params
expect(response).to redirect_to(webauthn_setup_success_url)
diff --git a/spec/decorators/service_provider_session_decorator_spec.rb b/spec/decorators/service_provider_session_decorator_spec.rb
index 111b65e3e23..38eb02285e3 100644
--- a/spec/decorators/service_provider_session_decorator_spec.rb
+++ b/spec/decorators/service_provider_session_decorator_spec.rb
@@ -247,4 +247,26 @@
subject.sp_return_url
end
end
+
+ describe 'mfa_expiration_interval' do
+ context 'with an AAL2 sp' do
+ before do
+ allow(sp).to receive(:aal).and_return(2)
+ end
+
+ it { expect(subject.mfa_expiration_interval).to eq(12.hours) }
+ end
+
+ context 'with an IAL2 sp' do
+ before do
+ allow(sp).to receive(:ial).and_return(2)
+ end
+
+ it { expect(subject.mfa_expiration_interval).to eq(12.hours) }
+ end
+
+ context 'with an sp that is not AAL2 or IAL2' do
+ it { expect(subject.mfa_expiration_interval).to eq(30.days) }
+ end
+ end
end
diff --git a/spec/decorators/session_decorator_spec.rb b/spec/decorators/session_decorator_spec.rb
index 0e6f8bb07b3..95048ff48c0 100644
--- a/spec/decorators/session_decorator_spec.rb
+++ b/spec/decorators/session_decorator_spec.rb
@@ -56,4 +56,10 @@
expect(decorator.cancel_link_url).to eq 'http://www.example.com'
end
end
+
+ describe '#mfa_expiration_interval' do
+ it 'returns the AAL1 expiration interval' do
+ expect(subject.mfa_expiration_interval).to eq(30.days)
+ end
+ end
end
diff --git a/spec/factories/email_addresses.rb b/spec/factories/email_addresses.rb
index d7f45cff689..61cf73d567c 100644
--- a/spec/factories/email_addresses.rb
+++ b/spec/factories/email_addresses.rb
@@ -4,6 +4,6 @@
factory :email_address do
confirmed_at { Time.zone.now }
email { 'jd@example.com' }
- association :user
+ user { association :user }
end
end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index fcff28af564..f5c246056d0 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -10,15 +10,29 @@
email { Faker::Internet.safe_email }
password { '!1a Z@6s' * 16 } # Maximum length password.
- after(:build) do |user, _evaluator|
- if user.email.present? && user.email_address.nil?
- user.email_address = build(:email_address, email: user.email, user: user)
+ trait :with_email do
+ after(:build) do |user, _evaluator|
+ if user.email.present? && user.email_addresses.empty?
+ user.save!
+ if user.email_addresses.reload.empty?
+ if user.id.present?
+ create(:email_address, user: user, email: user.email, confirmed_at: user.confirmed_at)
+ user.email_addresses.reload
+ else
+ user.email_addresses << build(
+ :email_address, email: user.email, user: user, confirmed_at: user.confirmed_at
+ )
+ end
+ end
+ end
end
- end
- after(:stub) do |user, _evaluator|
- if user.email.present? && user.email_address.nil?
- user.email_address = build_stubbed(:email_address, email: user.email, user: user)
+ after(:stub) do |user, _evaluator|
+ if user.email.present? && user.email_addresses.empty?
+ user.email_addresses << build(
+ :email_address, email: user.email, user: user, confirmed_at: user.confirmed_at
+ )
+ end
end
end
diff --git a/spec/features/account_reset/delete_account_spec.rb b/spec/features/account_reset/delete_account_spec.rb
index 1439fe77fa5..ef4d0461664 100644
--- a/spec/features/account_reset/delete_account_spec.rb
+++ b/spec/features/account_reset/delete_account_spec.rb
@@ -2,6 +2,7 @@
describe 'Account Reset Request: Delete Account', email: true do
let(:user) { create(:user, :signed_up) }
+ let(:user_email) { user.email_addresses.first.email }
before do
TwilioService::Utils.telephony_service = FakeSms
@@ -9,14 +10,14 @@
context 'as an LOA1 user' do
it 'allows the user to delete their account after 24 hours' do
- signin(user.email, user.password)
+ signin(user_email, user.password)
click_link t('two_factor_authentication.login_options_link_text')
click_link t('two_factor_authentication.account_reset.link')
click_button t('account_reset.request.yes_continue')
expect(page).
to have_content strip_tags(
- t('account_reset.confirm_request.instructions', email: user.email)
+ t('account_reset.confirm_request.instructions', email: user_email)
)
expect(page).to have_content t('account_reset.confirm_request.security_note')
expect(page).to have_content t('account_reset.confirm_request.close_window')
@@ -37,7 +38,7 @@
strip_tags(
t(
'account_reset.confirm_delete_account.info',
- email: user.email,
+ email: user_email,
link: t('account_reset.confirm_delete_account.link_text')
)
)
@@ -54,16 +55,17 @@
end
context 'as an LOA1 user without a phone' do
+ let(:user) { create(:user, :with_authentication_app) }
+
it 'does not tell the user that an SMS was sent to their registered phone' do
- user = create(:user, :with_authentication_app)
- signin(user.email, user.password)
+ signin(user_email, user.password)
click_link t('two_factor_authentication.login_options_link_text')
click_link t('two_factor_authentication.account_reset.link')
click_button t('account_reset.request.yes_continue')
expect(page).
to have_content strip_tags(
- t('account_reset.confirm_request.instructions', email: user.email)
+ t('account_reset.confirm_request.instructions', email: user_email)
)
expect(page).to_not have_content t('account_reset.confirm_request.security_note')
expect(page).to have_content t('account_reset.confirm_request.close_window')
@@ -86,7 +88,7 @@
end
it 'does not allow the user to delete their account from 2FA screen' do
- signin(user.email, user.password)
+ signin(user_email, user.password)
click_link t('two_factor_authentication.login_options_link_text')
# Account reset link should not be present
diff --git a/spec/features/two_factor_authentication/change_factor_spec.rb b/spec/features/two_factor_authentication/change_factor_spec.rb
index f6935ceb28b..b9d03bf7324 100644
--- a/spec/features/two_factor_authentication/change_factor_spec.rb
+++ b/spec/features/two_factor_authentication/change_factor_spec.rb
@@ -18,7 +18,9 @@
allow(Figaro.env).to receive(:otp_delivery_blocklist_maxretry).and_return('4')
mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- allow(UserMailer).to receive(:phone_changed).with(user).and_return(mailer)
+ user.email_addresses.each do |email_address|
+ allow(UserMailer).to receive(:phone_changed).with(email_address).and_return(mailer)
+ end
@previous_phone_confirmed_at =
MfaContext.new(user).phone_configurations.reload.first.confirmed_at
@@ -46,7 +48,9 @@
submit_correct_otp
expect(current_path).to eq account_path
- expect(UserMailer).to have_received(:phone_changed).with(user)
+ user.email_addresses.each do |email_address|
+ expect(UserMailer).to have_received(:phone_changed).with(email_address)
+ end
expect(mailer).to have_received(:deliver_later)
expect(page).to have_content new_phone
expect(
diff --git a/spec/features/two_factor_authentication/remember_device_sp_expiration_spec.rb b/spec/features/two_factor_authentication/remember_device_sp_expiration_spec.rb
new file mode 100644
index 00000000000..e426091941a
--- /dev/null
+++ b/spec/features/two_factor_authentication/remember_device_sp_expiration_spec.rb
@@ -0,0 +1,128 @@
+require 'rails_helper'
+
+shared_examples 'expiring remember device for an sp config' do |expiration_time, protocol|
+ before do
+ user # Go through the signup flow and remember user before visiting SP
+ end
+
+ context 'signing in' do
+ it "does not require MFA before #{expiration_time.inspect}" do
+ Timecop.travel(expiration_time.from_now - 1.day) do
+ visit_idp_from_sp_with_loa1(protocol)
+ sign_in_user(user)
+
+ expect(page).to have_current_path(sign_up_completed_path)
+ end
+ end
+
+ it "does require MFA after #{expiration_time.inspect}" do
+ Timecop.travel(expiration_time.from_now + 1.day) do
+ visit_idp_from_sp_with_loa1(protocol)
+ sign_in_user(user)
+
+ expect(page).to have_content(t('two_factor_authentication.header_text'))
+ expect(current_path).to eq(login_two_factor_path(otp_delivery_preference: :sms))
+
+ click_submit_default
+
+ expect(page).to have_current_path(sign_up_completed_path)
+ end
+ end
+ end
+
+ context 'visiting while already signed in' do
+ it "does not require MFA before #{expiration_time.inspect}" do
+ Timecop.travel(expiration_time.from_now - 1.day) do
+ sign_in_user(user)
+ visit_idp_from_sp_with_loa1(protocol)
+
+ expect(page).to have_current_path(sign_up_completed_path)
+ end
+ end
+
+ it "does require MFA after #{expiration_time.inspect}" do
+ Timecop.travel(expiration_time.from_now + 1.day) do
+ if expiration_time == 30.days
+ sign_in_live_with_2fa(user)
+ visit_idp_from_sp_with_loa1(protocol)
+ else
+ sign_in_user(user)
+ visit_idp_from_sp_with_loa1(protocol)
+
+ expect(page).to have_content(t('two_factor_authentication.header_text'))
+ expect(current_path).to eq(login_two_factor_path(otp_delivery_preference: :sms))
+
+ click_submit_default
+ end
+
+ expect(page).to have_current_path(sign_up_completed_path)
+ end
+ end
+ end
+end
+
+feature 'remember device sp expiration' do
+ include SamlAuthHelper
+
+ let(:user) do
+ user_record = sign_up_and_set_password
+ user_record.password = Features::SessionHelper::VALID_PASSWORD
+ select_2fa_option('sms')
+ fill_in :user_phone_form_phone, with: '2025551212'
+ click_send_security_code
+ check :remember_device
+ click_submit_default
+ click_acknowledge_personal_key
+ first(:link, t('links.sign_out')).click
+ user_record
+ end
+
+ before do
+ allow(FeatureManagement).to receive(:prefill_otp_codes?).and_return(true)
+ allow(SmsOtpSenderJob).to receive(:perform_now)
+ allow(Figaro.env).to receive(:otp_delivery_blocklist_maxretry).and_return('1000')
+
+ ServiceProvider.from_issuer('urn:gov:gsa:openidconnect:sp:server').update!(
+ aal: aal,
+ ial: ial
+ )
+ ServiceProvider.from_issuer('http://localhost:3000').update!(
+ aal: aal,
+ ial: ial
+ )
+ end
+
+ context 'signing into an SP' do
+ context 'with an AAL2 SP' do
+ let(:aal) { 2 }
+ let(:ial) { 1 }
+
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :oidc
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :saml
+ end
+
+ context 'with an IAL2 SP' do
+ let(:aal) { 1 }
+ let(:ial) { 2 }
+
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :oidc
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :saml
+ end
+
+ context 'with an AAL2 and IAL2 SP' do
+ let(:aal) { 2 }
+ let(:ial) { 2 }
+
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :oidc
+ it_behaves_like 'expiring remember device for an sp config', 12.hours, :saml
+ end
+
+ context 'with an AAL1 and IAL1 SP' do
+ let(:aal) { 1 }
+ let(:ial) { 1 }
+
+ it_behaves_like 'expiring remember device for an sp config', 30.days, :oidc
+ it_behaves_like 'expiring remember device for an sp config', 30.days, :saml
+ end
+ end
+end
diff --git a/spec/features/two_factor_authentication/remember_device_spec.rb b/spec/features/two_factor_authentication/remember_device_spec.rb
index 06c166dd3e3..fbbdf048ee5 100644
--- a/spec/features/two_factor_authentication/remember_device_spec.rb
+++ b/spec/features/two_factor_authentication/remember_device_spec.rb
@@ -91,7 +91,7 @@ def remember_device_and_sign_out_user
it 'requires 2FA and does not offer the option to remember device' do
expect(current_path).to eq(idv_otp_verification_path)
expect(page).to_not have_content(
- t('forms.messages.remember_device', duration: Figaro.env.remember_device_expiration_days!)
+ t('forms.messages.remember_device')
)
end
end
@@ -108,7 +108,7 @@ def remember_device_and_sign_out_user
sign_in_user(user)
expect(current_path).to eq(login_two_factor_authenticator_path)
expect(page).to_not have_content(
- t('forms.messages.remember_device', duration: Figaro.env.remember_device_expiration_days!)
+ t('forms.messages.remember_device')
)
end
end
diff --git a/spec/features/two_factor_authentication/sign_in_spec.rb b/spec/features/two_factor_authentication/sign_in_spec.rb
index 5594b04ed0b..94425660372 100644
--- a/spec/features/two_factor_authentication/sign_in_spec.rb
+++ b/spec/features/two_factor_authentication/sign_in_spec.rb
@@ -711,9 +711,9 @@ def submit_prefilled_otp_code
describe 'clicking the logo image during 2fa process' do
it 'returns them to the home page' do
- user = build_stubbed(:user, :signed_up)
+ user = create(:user, :signed_up)
sign_in_user(user)
- find("img[alt='login.gov']").click
+ click_link 'login.gov'
expect(current_path).to eq root_path
end
end
diff --git a/spec/features/two_factor_authentication/sign_in_via_personal_key_spec.rb b/spec/features/two_factor_authentication/sign_in_via_personal_key_spec.rb
index d28fede5c2f..79c0603a246 100644
--- a/spec/features/two_factor_authentication/sign_in_via_personal_key_spec.rb
+++ b/spec/features/two_factor_authentication/sign_in_via_personal_key_spec.rb
@@ -1,11 +1,17 @@
require 'rails_helper'
feature 'Signing in via one-time use personal key' do
- it 'destroys old key, displays new one, and redirects to profile after acknowledging' do
- user = create(:user, :signed_up)
+ it 'destroys old key, displays new one, notifies, and redirects to profile after acknowledging' do
+ user = create(:user, :signed_up, :with_phone, with: { phone: '+1 (202) 345-6789' })
raw_key = PersonalKeyGenerator.new(user).create
old_key = user.reload.encrypted_recovery_code_digest
+ personal_key_sign_in_mail = double
+ expect(personal_key_sign_in_mail).to receive(:deliver_now)
+ expect(UserMailer).to receive(:personal_key_sign_in).and_return(personal_key_sign_in_mail)
+ expect(SmsPersonalKeySignInNotifierJob).to receive(:perform_now).
+ with(phone: '+1 (202) 345-6789')
+
sign_in_before_2fa(user)
choose_another_security_option('personal_key')
enter_personal_key(personal_key: raw_key)
diff --git a/spec/features/users/password_recovery_via_recovery_code_spec.rb b/spec/features/users/password_recovery_via_recovery_code_spec.rb
index 0bdf1da1fda..ba615fb3188 100644
--- a/spec/features/users/password_recovery_via_recovery_code_spec.rb
+++ b/spec/features/users/password_recovery_via_recovery_code_spec.rb
@@ -56,6 +56,7 @@
end
scenario 'resets password, uses personal key as 2fa', email: true do
+ stub_twilio_service
personal_key = personal_key_from_pii(user, pii)
trigger_reset_password_and_click_email_link(user.email)
diff --git a/spec/features/users/piv_cac_management_spec.rb b/spec/features/users/piv_cac_management_spec.rb
index 0fde0d7782c..c92c702ef1d 100644
--- a/spec/features/users/piv_cac_management_spec.rb
+++ b/spec/features/users/piv_cac_management_spec.rb
@@ -98,7 +98,7 @@ def find_form(page, attributes)
end
context 'when the user does not have a phone number yet' do
- it 'prompts to set one up after configuring PIV/CAC' do
+ it 'does not prompt to set one up after configuring PIV/CAC' do
allow(FeatureManagement).to receive(:prefill_otp_codes?).and_return(true)
stub_piv_cac_service
@@ -116,10 +116,6 @@ def find_form(page, attributes)
uuid: SecureRandom.uuid,
subject: 'SomeIgnoredSubject')
- expect(page).to have_current_path(account_recovery_setup_path)
-
- configure_backup_phone
-
expect(page).to have_current_path account_path
end
end
diff --git a/spec/features/users/sign_in_spec.rb b/spec/features/users/sign_in_spec.rb
index 6ba414e9b26..5f36a1173a9 100644
--- a/spec/features/users/sign_in_spec.rb
+++ b/spec/features/users/sign_in_spec.rb
@@ -418,6 +418,7 @@
# this can happen if you submit the personal key form multiple times quickly
it 'redirects to the personal key page' do
user = create(:user, :signed_up)
+ stub_twilio_service
old_personal_key = PersonalKeyGenerator.new(user).create
signin(user.email, user.password)
choose_another_security_option('personal_key')
@@ -430,6 +431,7 @@
click_acknowledge_personal_key
expect(page).to have_current_path(account_path)
+ expect(page).to have_content t('event_types.personal_key_used')
end
end
diff --git a/spec/features/users/user_edit_spec.rb b/spec/features/users/user_edit_spec.rb
index c9f9de2d51c..cc8a4d59f78 100644
--- a/spec/features/users/user_edit_spec.rb
+++ b/spec/features/users/user_edit_spec.rb
@@ -107,7 +107,7 @@
visit sign_up_enter_password_path(confirmation_token: token)
expect(page).to have_current_path(account_path)
- expect(page).to_not have_content user.email
+ expect(page).to_not have_content user.email_addresses.first.email
end
end
diff --git a/spec/features/users/webauthn_management_spec.rb b/spec/features/users/webauthn_management_spec.rb
index 40e5a7ae53a..4073643dd05 100644
--- a/spec/features/users/webauthn_management_spec.rb
+++ b/spec/features/users/webauthn_management_spec.rb
@@ -18,6 +18,11 @@
mock_press_button_on_hardware_key
expect(current_path).to eq webauthn_setup_success_path
+
+ click_button t('forms.buttons.continue')
+
+ expect(page).to have_current_path(account_path)
+ expect(page).to have_content t('event_types.webauthn_key_added')
end
it 'gives an error if the challenge/secret is incorrect' do
@@ -85,7 +90,7 @@
end
context 'with webauthn associations' do
- it 'displays the user supplied names of the webauthn keys' do
+ it 'displays the user supplied names of the security keys' do
create_webauthn_configuration(user, 'key1', '1', 'foo1')
create_webauthn_configuration(user, 'key2', '2', 'bar2')
@@ -96,7 +101,7 @@
expect(page).to have_content 'key2'
end
- it 'allows the user to delete the webauthn key' do
+ it 'allows user to delete security key when another 2FA option is set up' do
create_webauthn_configuration(user, 'key1', '1', 'foo1')
sign_in_and_2fa_user(user)
@@ -104,25 +109,42 @@
expect(page).to have_content 'key1'
- click_button t('account.index.webauthn_delete')
+ click_link t('account.index.webauthn_delete')
+
+ expect(current_path).to eq webauthn_setup_delete_path
+
+ click_button t('account.index.webauthn_confirm_delete')
expect(page).to_not have_content 'key1'
expect(page).to have_content t('notices.webauthn_deleted')
end
- it 'prevents a user from deleting the last key' do
+ it 'allows the user to cancel delete the security key' do
create_webauthn_configuration(user, 'key1', '1', 'foo1')
sign_in_and_2fa_user(user)
- PhoneConfiguration.first.update(mfa_enabled: false)
visit account_path
expect(page).to have_content 'key1'
- click_button t('account.index.webauthn_delete')
+ click_link t('account.index.webauthn_delete')
+
+ expect(current_path).to eq webauthn_setup_delete_path
+
+ click_link t('links.cancel')
+
+ expect(page).to have_content 'key1'
+ end
+
+ it 'prevents a user from deleting the last key' do
+ create_webauthn_configuration(user, 'key1', '1', 'foo1')
+
+ sign_in_and_2fa_user(user)
+ PhoneConfiguration.first.update(mfa_enabled: false)
+ visit account_path
expect(page).to have_content 'key1'
- expect(page).to have_content t('errors.webauthn_setup.delete_last')
+ expect(page).to_not have_link t('account.index.webauthn_delete')
end
end
diff --git a/spec/forms/personal_key_form_spec.rb b/spec/forms/personal_key_form_spec.rb
index 83120fc7bb9..005a78a1dff 100644
--- a/spec/forms/personal_key_form_spec.rb
+++ b/spec/forms/personal_key_form_spec.rb
@@ -17,6 +17,26 @@
expect(form.submit).to eq result
expect(user.reload.encrypted_recovery_code_digest).to eq old_code
end
+
+ it 'sends an email and SMS notification to the user' do
+ user = create(
+ :user,
+ :with_phone,
+ email: 'jonny.hoops@gsa.gov',
+ with: { phone: '+1 (202) 345-6789' }
+ )
+ raw_code = PersonalKeyGenerator.new(user).create
+
+ personal_key_sign_in_mail = double
+ expect(personal_key_sign_in_mail).to receive(:deliver_now)
+ expect(UserMailer).to receive(:personal_key_sign_in).
+ with('jonny.hoops@gsa.gov').
+ and_return(personal_key_sign_in_mail)
+ expect(SmsPersonalKeySignInNotifierJob).to receive(:perform_now).
+ with(phone: '+1 (202) 345-6789')
+
+ PersonalKeyForm.new(user, raw_code).submit
+ end
end
context 'when the form is invalid' do
diff --git a/spec/forms/reset_password_form_spec.rb b/spec/forms/reset_password_form_spec.rb
index 3ed7341ab98..086d0a0b9e1 100644
--- a/spec/forms/reset_password_form_spec.rb
+++ b/spec/forms/reset_password_form_spec.rb
@@ -52,7 +52,7 @@
context 'when both the password and token are valid' do
it 'sets the user password to the submitted password' do
- user = build_stubbed(:user, uuid: '123')
+ user = build_stubbed(:user, :with_email, uuid: '123')
allow(user).to receive(:reset_password_period_valid?).and_return(true)
expect(Event).to receive(:create).with(user_id: user.id, event_type: :password_changed)
@@ -95,6 +95,25 @@
end
end
+ context 'when the user does not exist in the db' do
+ it 'returns a hash with errors' do
+ user = User.new
+
+ form = ResetPasswordForm.new(user)
+ errors = {
+ reset_password_token: ['invalid_token'],
+ }
+
+ extra = { user_id: nil }
+
+ result = instance_double(FormResponse)
+
+ expect(FormResponse).to receive(:new).
+ with(success: false, errors: errors, extra: extra).and_return(result)
+ expect(form.submit(password: 'a good and powerful password')).to eq result
+ end
+ end
+
it_behaves_like 'strong password', 'ResetPasswordForm'
end
end
diff --git a/spec/forms/update_user_email_form_spec.rb b/spec/forms/update_user_email_form_spec.rb
index 680946e189f..63c83dc7845 100644
--- a/spec/forms/update_user_email_form_spec.rb
+++ b/spec/forms/update_user_email_form_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
describe UpdateUserEmailForm do
- subject { UpdateUserEmailForm.new(build(:user, email: ' OLD@example.com ')) }
+ subject { UpdateUserEmailForm.new(build(:user, :with_email, email: ' OLD@example.com ')) }
it_behaves_like 'email validation'
it_behaves_like 'email normalization', ' OLD@example.com '
diff --git a/spec/forms/update_user_password_form_spec.rb b/spec/forms/update_user_password_form_spec.rb
index 6e3b953c4ca..c1430543cb6 100644
--- a/spec/forms/update_user_password_form_spec.rb
+++ b/spec/forms/update_user_password_form_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
describe UpdateUserPasswordForm, type: :model do
- let(:user) { build(:user, password: 'old strong password') }
+ let(:user) { build(:user, :with_email, password: 'old strong password') }
let(:user_session) { {} }
let(:password) { 'salty new password' }
let(:params) { { password: password } }
@@ -58,7 +58,8 @@
it 'sends an email to notify of the password change' do
mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- allow(UserMailer).to receive(:password_changed).with(user).and_return(mailer)
+ allow(UserMailer).to receive(:password_changed).
+ with(user.email_addresses.first).and_return(mailer)
subject.submit(params)
@@ -99,7 +100,8 @@
context 'when the user does not have an active profile' do
it 'does not call ActiveProfileEncryptor' do
mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- expect(UserMailer).to receive(:password_changed).with(user).and_return(mailer)
+ expect(UserMailer).to receive(:password_changed).
+ with(user.email_addresses.first).and_return(mailer)
expect(ActiveProfileEncryptor).to_not receive(:new)
subject.submit(params)
@@ -109,6 +111,8 @@
def stub_email_delivery
mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- allow(UserMailer).to receive(:password_changed).with(user).and_return(mailer)
+ user.email_addresses.each do |email_address|
+ allow(UserMailer).to receive(:password_changed).with(email_address).and_return(mailer)
+ end
end
end
diff --git a/spec/forms/webauthn_setup_form_spec.rb b/spec/forms/webauthn_setup_form_spec.rb
index 1011e4a21b7..f13a45d7256 100644
--- a/spec/forms/webauthn_setup_form_spec.rb
+++ b/spec/forms/webauthn_setup_form_spec.rb
@@ -17,9 +17,10 @@
client_data_json: client_data_json,
name: 'mykey',
}
+ extra_attributes = { mfa_method_counts: { webauthn: 1 } }
expect(FormResponse).to receive(:new).
- with(success: true, errors: {}).and_return(result)
+ with(success: true, errors: {}, extra: extra_attributes).and_return(result)
expect(subject.submit(protocol, params)).to eq result
end
end
@@ -32,9 +33,10 @@
client_data_json: client_data_json,
name: 'mykey',
}
+ extra_attributes = { mfa_method_counts: {} }
expect(FormResponse).to receive(:new).
- with(success: false, errors: {}).and_return(result)
+ with(success: false, errors: {}, extra: extra_attributes).and_return(result)
expect(subject.submit(protocol, params)).to eq result
end
@@ -48,9 +50,10 @@
client_data_json: client_data_json,
name: 'mykey',
}
+ extra_attributes = { mfa_method_counts: {} }
expect(FormResponse).to receive(:new).
- with(success: false, errors:
+ with(success: false, extra: extra_attributes, errors:
{ name: [I18n.t('errors.webauthn_setup.attestation_error')] }).and_return(result)
expect(subject.submit(protocol, params)).to eq result
end
diff --git a/spec/jobs/sms_account_reset_notifier_job_spec.rb b/spec/jobs/sms_account_reset_notifier_job_spec.rb
index 822ce2935fa..651d9f3191f 100644
--- a/spec/jobs/sms_account_reset_notifier_job_spec.rb
+++ b/spec/jobs/sms_account_reset_notifier_job_spec.rb
@@ -21,8 +21,6 @@
it 'sends a message containing the cancel link to the mobile number', twilio: true do
allow(Figaro.env).to receive(:twilio_messaging_service_sid).and_return('fake_sid')
- TwilioService::Utils.telephony_service = FakeSms
-
perform
messages = FakeSms.messages
diff --git a/spec/jobs/sms_personal_key_sign_in_notifier_job_spec.rb b/spec/jobs/sms_personal_key_sign_in_notifier_job_spec.rb
new file mode 100644
index 00000000000..96b13f4766f
--- /dev/null
+++ b/spec/jobs/sms_personal_key_sign_in_notifier_job_spec.rb
@@ -0,0 +1,30 @@
+require 'rails_helper'
+
+describe SmsPersonalKeySignInNotifierJob do
+ include Features::ActiveJobHelper
+
+ before do
+ reset_job_queues
+ TwilioService::Utils.telephony_service = FakeSms
+ FakeSms.messages = []
+ end
+
+ describe '.perform' do
+ it 'sends a message about the personal key sign in to the user' do
+ allow(Figaro.env).to receive(:twilio_messaging_service_sid).and_return('fake_sid')
+
+ described_class.perform_now(phone: '+1 (202) 345-6789')
+
+ messages = FakeSms.messages
+
+ expect(messages.size).to eq(1)
+
+ msg = messages.first
+
+ expect(msg.messaging_service_sid).to eq('fake_sid')
+ expect(msg.to).to eq('+1 (202) 345-6789')
+ expect(msg.body).
+ to eq(I18n.t('jobs.sms_personal_key_sign_in_notifier_job.message', app: APP_NAME))
+ end
+ end
+end
diff --git a/spec/lib/tasks/rotate_rake_spec.rb b/spec/lib/tasks/rotate_rake_spec.rb
index 42794e0b4ea..b9455062dfa 100644
--- a/spec/lib/tasks/rotate_rake_spec.rb
+++ b/spec/lib/tasks/rotate_rake_spec.rb
@@ -17,7 +17,7 @@
old_email = user.email
old_phone = user.phone_configurations.first.phone
old_encrypted_email = user.encrypted_email
- old_encrypted_email_address_email = user.email_address.encrypted_email
+ old_encrypted_email_address_email = user.email_addresses.first.encrypted_email
old_encrypted_phone = user.phone_configurations.first.encrypted_phone
rotate_attribute_encryption_key
@@ -28,9 +28,9 @@
user.phone_configurations.reload
expect(user.phone_configurations.first.phone).to eq old_phone
expect(user.email).to eq old_email
- expect(user.email_address.email).to eq old_email
+ expect(user.email_addresses.first.email).to eq old_email
expect(user.encrypted_email).to_not eq old_encrypted_email
- expect(user.email_address.encrypted_email).to_not eq old_encrypted_email_address_email
+ expect(user.email_addresses.first.encrypted_email).to_not eq old_encrypted_email_address_email
expect(user.phone_configurations.first.encrypted_phone).to_not eq old_encrypted_phone
end
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
index 521da6f800a..2ca18021e43 100644
--- a/spec/mailers/user_mailer_spec.rb
+++ b/spec/mailers/user_mailer_spec.rb
@@ -1,7 +1,8 @@
require 'rails_helper'
describe UserMailer, type: :mailer do
- let(:user) { build_stubbed(:user) }
+ let(:user) { build(:user, :with_email) }
+ let(:email_address) { user.email_addresses.first }
describe 'email_changed' do
let(:mail) { UserMailer.email_changed('old@email.com') }
@@ -25,12 +26,12 @@
end
describe 'password_changed' do
- let(:mail) { UserMailer.password_changed(user) }
+ let(:mail) { UserMailer.password_changed(email_address) }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
@@ -45,6 +46,26 @@
end
end
+ describe 'personal_key_sign_in' do
+ let(:mail) { UserMailer.personal_key_sign_in(user.email) }
+
+ it_behaves_like 'a system email'
+
+ it 'sends to the current email' do
+ expect(mail.to).to eq [user.email]
+ end
+
+ it 'renders the subject' do
+ expect(mail.subject).to eq t('user_mailer.personal_key_sign_in.subject')
+ end
+
+ it 'renders the body' do
+ expect(mail.html_part.body).to have_content(
+ t('user_mailer.personal_key_sign_in.intro')
+ )
+ end
+ end
+
describe 'signup_with_your_email' do
let(:mail) { UserMailer.signup_with_your_email(user.email) }
@@ -78,12 +99,12 @@
end
describe 'phone_changed' do
- let(:mail) { UserMailer.phone_changed(user) }
+ let(:mail) { UserMailer.phone_changed(email_address) }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
@@ -132,12 +153,13 @@ def expect_email_body_to_have_help_and_contact_links
end
describe 'account_reset_request' do
- let(:mail) { UserMailer.account_reset_request(user) }
+ let(:mail) { UserMailer.account_reset_request(email_address, account_reset) }
+ let(:account_reset) { user.account_reset_request }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
@@ -155,12 +177,12 @@ def expect_email_body_to_have_help_and_contact_links
end
describe 'account_reset_granted' do
- let(:mail) { UserMailer.account_reset_granted(user, user.account_reset_request) }
+ let(:mail) { UserMailer.account_reset_granted(email_address, user.account_reset_request) }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
@@ -174,12 +196,12 @@ def expect_email_body_to_have_help_and_contact_links
end
describe 'account_reset_complete' do
- let(:mail) { UserMailer.account_reset_complete(user.email) }
+ let(:mail) { UserMailer.account_reset_complete(email_address) }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
@@ -193,12 +215,12 @@ def expect_email_body_to_have_help_and_contact_links
end
describe 'please_reset_password' do
- let(:mail) { UserMailer.please_reset_password(user.email) }
+ let(:mail) { UserMailer.please_reset_password(email_address) }
it_behaves_like 'a system email'
it 'sends to the current email' do
- expect(mail.to).to eq [user.email]
+ expect(mail.to).to eq [email_address.email]
end
it 'renders the subject' do
diff --git a/spec/models/identity_spec.rb b/spec/models/identity_spec.rb
index d327c4fb468..196c20b6162 100644
--- a/spec/models/identity_spec.rb
+++ b/spec/models/identity_spec.rb
@@ -134,7 +134,7 @@
context 'when agency configured to support piv/cac' do
before(:each) do
allow(PivCacService).to receive(:piv_cac_available_for_agency?).with(
- service_provider.agency, identity_with_sp.user.email
+ service_provider.agency, identity_with_sp.user.email_addresses.map(&:email)
).and_return(true)
end
@@ -146,7 +146,7 @@
context 'when agency is not configured to support piv/cac' do
before(:each) do
allow(PivCacService).to receive(:piv_cac_available_for_agency?).with(
- service_provider.agency, identity_with_sp.user.email
+ service_provider.agency, identity_with_sp.user.email_addresses.map(&:email)
).and_return(false)
end
diff --git a/spec/models/service_provider_spec.rb b/spec/models/service_provider_spec.rb
index 995fc18535d..e39f6e40f7e 100644
--- a/spec/models/service_provider_spec.rb
+++ b/spec/models/service_provider_spec.rb
@@ -89,7 +89,7 @@
it 'calls with the user email' do
expect(PivCacService).to receive(
:piv_cac_available_for_agency?
- ).with(service_provider.agency, user.email)
+ ).with(service_provider.agency, user.email_addresses.map(&:email))
service_provider.piv_cac_available?(user)
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 8ea4fee2ec3..4e3c4226a0c 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -30,17 +30,17 @@
end
it 'mirrors the info from the user object on creation' do
- user = create(:user)
- email_address = user.email_address
+ user = create(:user, :with_email)
+ email_address = user.email_addresses.first
expect(email_address).to be_present
expect(email_address.encrypted_email).to eq user.encrypted_email
expect(email_address.email).to eq user.email
- expect(email_address.confirmed_at).to eq user.confirmed_at
+ expect(email_address.confirmed_at.to_i).to eq user.confirmed_at.to_i
end
it 'mirrors the info from an unconfirmed user object' do
- user = create(:user, :unconfirmed)
- email_address = user.email_address
+ user = create(:user, :unconfirmed, :with_email)
+ email_address = user.email_addresses.first
expect(email_address).to be_present
expect(email_address.encrypted_email).to eq user.encrypted_email
expect(email_address.email).to eq user.email
@@ -75,7 +75,7 @@
end
it 'uses a DB index to enforce uniqueness' do
- user1 = create(:user)
+ user1 = create(:user, :with_email)
user1.save
user2 = create(:user, email: "mkuniqu.#{user1.email}")
user2.uuid = user1.uuid
diff --git a/spec/presenters/openid_connect_user_info_presenter_spec.rb b/spec/presenters/openid_connect_user_info_presenter_spec.rb
index 7a011cabcb9..c4097721321 100644
--- a/spec/presenters/openid_connect_user_info_presenter_spec.rb
+++ b/spec/presenters/openid_connect_user_info_presenter_spec.rb
@@ -8,7 +8,7 @@
let(:identity) do
build(:identity,
rails_session_id: rails_session_id,
- user: build(:user),
+ user: build(:user, :with_email),
scope: scope)
end
@@ -21,7 +21,7 @@
aggregate_failures do
expect(user_info[:sub]).to eq(identity.uuid)
expect(user_info[:iss]).to eq(root_url)
- expect(user_info[:email]).to eq(identity.user.email)
+ expect(user_info[:email]).to eq(identity.user.email_addresses.first.email)
expect(user_info[:email_verified]).to eq(true)
end
end
@@ -127,7 +127,7 @@
it 'returns attributes allowed by the scope' do
aggregate_failures do
- expect(user_info[:email]).to eq(identity.user.email)
+ expect(user_info[:email]).to eq(identity.user.email_addresses.first.email)
expect(user_info[:email_verified]).to eq(true)
expect(user_info[:given_name]).to eq(nil)
expect(user_info[:family_name]).to eq(nil)
diff --git a/spec/requests/edit_user_spec.rb b/spec/requests/edit_user_spec.rb
index 057c8ed7894..a877e5185af 100644
--- a/spec/requests/edit_user_spec.rb
+++ b/spec/requests/edit_user_spec.rb
@@ -10,18 +10,9 @@ def user_session
session['warden.user.user.session']
end
- def sign_in_as_a_valid_user
- post new_user_session_path, params: { user: { email: user.email, password: user.password } }
- get otp_send_path, params: { otp_delivery_selection_form: { otp_delivery_preference: 'sms' } }
- follow_redirect!
- post login_two_factor_path, params: {
- otp_delivery_preference: 'sms', code: user.reload.direct_otp
- }
- end
-
context 'user changes email address' do
before do
- sign_in_as_a_valid_user
+ sign_in_user(user)
put manage_email_path, params: { update_user_email_form: { email: 'new_email@example.com' } }
end
@@ -51,7 +42,7 @@ def sign_in_as_a_valid_user
context 'user submits email address with invalid encoding' do
it 'returns a 400 error and logs the user uuid' do
- sign_in_as_a_valid_user
+ sign_in_user(user)
params = { update_user_email_form: { email: "test\xFFbar\xF8@test.com" } }
headers = { CONTENT_TYPE: 'application/x-www-form-urlencoded;foo' }
diff --git a/spec/requests/frontend_analytics_spec.rb b/spec/requests/frontend_analytics_spec.rb
new file mode 100644
index 00000000000..ab1dbb7d66f
--- /dev/null
+++ b/spec/requests/frontend_analytics_spec.rb
@@ -0,0 +1,72 @@
+require 'rails_helper'
+
+describe 'frontend analytics requests' do
+ describe 'platform authenticators' do
+ let(:analytics) { FakeAnalytics.new }
+
+ before do
+ allow(analytics).to receive(:track_event)
+ allow(Analytics).to receive(:new).and_return(analytics)
+ end
+
+ it 'does not log anything if the user is not authed' do
+ expect(analytics).to_not receive(:track_event).
+ with(Analytics::FRONTEND_BROWSER_CAPABILITIES, any_args)
+
+ post analytics_path, params: { platform_authenticator: { available: true } }
+ end
+
+ it 'logs true if the platform authenticator is available' do
+ sign_in_user
+
+ post analytics_path, params: { platform_authenticator: { available: true } }
+
+ expect(analytics).to have_received(:track_event).
+ with(Analytics::FRONTEND_BROWSER_CAPABILITIES, hash_including(platform_authenticator: true))
+ end
+
+ it 'logs false if the platform authenticator is not available' do
+ sign_in_user
+
+ post analytics_path, params: { platform_authenticator: { available: false } }
+
+ expect(analytics).to have_received(:track_event).
+ with(
+ Analytics::FRONTEND_BROWSER_CAPABILITIES,
+ hash_including(platform_authenticator: false)
+ )
+ end
+
+ it 'only logs 1 platform authenticator event per session' do
+ sign_in_user
+
+ post analytics_path, params: { platform_authenticator: { available: true } }
+ post analytics_path, params: { platform_authenticator: { available: true } }
+
+ expect(analytics).to have_received(:track_event).
+ with(
+ Analytics::FRONTEND_BROWSER_CAPABILITIES,
+ hash_including(platform_authenticator: true)
+ ).
+ once
+ end
+
+ it 'logs ignores garbage values' do
+ sign_in_user
+
+ post analytics_path, params: { platform_authenticator: { available: 'blah blah blah' } }
+
+ expect(analytics).to_not have_received(:track_event).
+ with(Analytics::FRONTEND_BROWSER_CAPABILITIES, any_args)
+ end
+
+ it 'supports the legacy API format' do
+ sign_in_user
+
+ post analytics_path, params: { available: true }
+
+ expect(analytics).to have_received(:track_event).
+ with(Analytics::FRONTEND_BROWSER_CAPABILITIES, hash_including(platform_authenticator: true))
+ end
+ end
+end
diff --git a/spec/services/account_reset/cancel_spec.rb b/spec/services/account_reset/cancel_spec.rb
index c34f82109b2..0d81d047b47 100644
--- a/spec/services/account_reset/cancel_spec.rb
+++ b/spec/services/account_reset/cancel_spec.rb
@@ -55,8 +55,10 @@
token = create_account_reset_request_for(user)
@mailer = instance_double(ActionMailer::MessageDelivery, deliver_later: true)
- expect(UserMailer).to receive(:account_reset_cancel).with(user.email).
- and_return(@mailer)
+ user.email_addresses.each do |email_address|
+ expect(UserMailer).to receive(:account_reset_cancel).with(email_address).
+ and_return(@mailer)
+ end
AccountReset::Cancel.new(token).call
end
diff --git a/spec/services/id_token_builder_spec.rb b/spec/services/id_token_builder_spec.rb
index 2148352beec..36400061e44 100644
--- a/spec/services/id_token_builder_spec.rb
+++ b/spec/services/id_token_builder_spec.rb
@@ -13,7 +13,7 @@
# this is a known value from an example developer guide
# https://developer.pingidentity.com/en/resources/openid-connect-developers-guide.html
access_token: 'dNZX1hEZ9wBCzNL40Upu646bdzQA',
- user: build(:user))
+ user: build(:user, :with_email))
end
let(:custom_expiration) { 5.minutes.from_now.to_i }
@@ -107,7 +107,7 @@
let(:scope) { 'openid email' }
it 'sets the email' do
- expect(decoded_payload[:email]).to eq(identity.user.email)
+ expect(decoded_payload[:email]).to eq(identity.user.email_addresses.first.email)
end
end
end
diff --git a/spec/services/piv_cac_service_spec.rb b/spec/services/piv_cac_service_spec.rb
index f94795b43ad..d40528635a2 100644
--- a/spec/services/piv_cac_service_spec.rb
+++ b/spec/services/piv_cac_service_spec.rb
@@ -160,7 +160,7 @@
end
describe '#piv_cac_available_for_agency?' do
- let(:subject) { PivCacService.piv_cac_available_for_agency?('foo', 'foo@example.com') }
+ let(:subject) { PivCacService.piv_cac_available_for_agency?('foo', ['foo@example.com']) }
context 'with an agency not encouraged to use piv/cac for anyone' do
before(:each) do
@@ -211,7 +211,7 @@
end
describe '#available_for_email?' do
- let(:subject) { PivCacService.send(:available_for_email?, 'foo', 'foo@bar.example.com') }
+ let(:subject) { PivCacService.send(:available_for_email?, 'foo', ['foo@bar.example.com']) }
context 'with the agency not configured to be available' do
before(:each) do
diff --git a/spec/services/populate_email_addresses_table_spec.rb b/spec/services/populate_email_addresses_table_spec.rb
index 10fe5e0abe5..395cfd32ca5 100644
--- a/spec/services/populate_email_addresses_table_spec.rb
+++ b/spec/services/populate_email_addresses_table_spec.rb
@@ -8,7 +8,7 @@
let!(:user) { create(:user, email: '', confirmed_at: nil) }
it 'migrates nothing' do
- expect(user.email_address).to be_nil
+ expect(user.email_addresses).to be_empty
expect { subject.call }.to change { EmailAddress.count }.by(0)
end
@@ -19,7 +19,7 @@
context 'and no email_address entry' do
before(:each) do
- user.email_address.delete
+ user.email_addresses.clear
user.reload
end
@@ -31,7 +31,7 @@
it 'migrates the email' do
expect { subject.call }.to change { EmailAddress.count }.by(1)
- address = user.reload.email_address
+ address = user.reload.email_addresses.first
expect(user.email).to eq address.email
expect(user.confirmed_at).to eq user.confirmed_at
expect(user.confirmation_sent_at).to eq user.confirmation_sent_at
diff --git a/spec/services/remember_device_cookie_spec.rb b/spec/services/remember_device_cookie_spec.rb
index d076b462fd7..8b90774bd0b 100644
--- a/spec/services/remember_device_cookie_spec.rb
+++ b/spec/services/remember_device_cookie_spec.rb
@@ -61,22 +61,32 @@
end
end
- describe '#valid_for_user?(user)' do
+ describe '#valid_for?(user:, expiration_interval:)' do
+ let(:expiration_interval) { 30.days }
+
+ subject do
+ cookie = described_class.new(user_id: user.id, created_at: created_at)
+ cookie.valid_for_user?(user: user, expiration_interval: expiration_interval)
+ end
+
context 'when the token is valid' do
- it { expect(subject.valid_for_user?(user)).to eq(true) }
+ it { expect(subject).to eq(true) }
end
context 'when the token is expired' do
- let(:created_at) { (Figaro.env.remember_device_expiration_days.to_i + 1).days.ago }
+ let(:created_at) { (expiration_interval + 1).days.ago }
- it { expect(subject.valid_for_user?(user)).to eq(false) }
+ it { expect(subject).to eq(false) }
end
context 'when the token does not refer to the current user' do
it 'returns false' do
other_user = create(:user, :with_phone, with: { confirmed_at: 90.days.ago })
+ cookie = described_class.new(user_id: user.id, created_at: created_at)
- expect(subject.valid_for_user?(other_user)).to eq(false)
+ expect(
+ cookie.valid_for_user?(user: other_user, expiration_interval: expiration_interval)
+ ).to eq(false)
end
end
@@ -84,7 +94,7 @@
let(:created_at) { 5.days.ago }
let(:phone_confirmed_at) { 4.days.ago }
- it { expect(subject.valid_for_user?(user)).to eq(false) }
+ it { expect(subject).to eq(false) }
end
end
end
diff --git a/spec/services/reset_user_password_and_send_email_spec.rb b/spec/services/reset_user_password_and_send_email_spec.rb
index e48b99cd375..74e5c4582ae 100644
--- a/spec/services/reset_user_password_and_send_email_spec.rb
+++ b/spec/services/reset_user_password_and_send_email_spec.rb
@@ -11,7 +11,8 @@
subject = ResetUserPasswordAndSendEmail.new(user_emails: 'test@test.com')
mailer = instance_double(ActionMailer::MessageDelivery, deliver_now: true)
- allow(UserMailer).to receive(:please_reset_password).with(email).and_return(mailer)
+ allow(UserMailer).to receive(:please_reset_password).
+ with(user.email_addresses.first).and_return(mailer)
expect(mailer).to receive(:deliver_now)
diff --git a/spec/support/controller_helper.rb b/spec/support/controller_helper.rb
index 2dd9b7464c4..40a5f1b18ff 100644
--- a/spec/support/controller_helper.rb
+++ b/spec/support/controller_helper.rb
@@ -21,6 +21,7 @@ def stub_sign_in(user = build(:user, password: VALID_PASSWORD))
allow(controller).to receive(:current_user).and_return(user)
allow(controller).to receive(:confirm_two_factor_authenticated).and_return(true)
allow(controller).to receive(:user_fully_authenticated?).and_return(true)
+ allow(controller).to receive(:remember_device_expired_for_sp?).and_return(false)
user
end
diff --git a/spec/support/features/session_helper.rb b/spec/support/features/session_helper.rb
index 0873b43dfba..68c4c634ce0 100644
--- a/spec/support/features/session_helper.rb
+++ b/spec/support/features/session_helper.rb
@@ -73,7 +73,7 @@ def sign_up_and_set_password
end
def sign_in_user(user = create(:user))
- signin(user.email, user.password)
+ signin(user.email_addresses.first.email, user.password)
user
end
@@ -420,7 +420,7 @@ def register_user_with_piv_cac(email = 'test@test.com')
expect(page).to have_current_path two_factor_options_path
expect(page).to have_content(
- t('two_factor_authentication.login_options.piv_cac')
+ t('two_factor_authentication.two_factor_choice_options.piv_cac')
)
set_up_2fa_with_piv_cac
diff --git a/spec/support/request_helper.rb b/spec/support/request_helper.rb
new file mode 100644
index 00000000000..1b706bf2606
--- /dev/null
+++ b/spec/support/request_helper.rb
@@ -0,0 +1,20 @@
+module RequestHelper
+ VALID_PASSWORD = 'Val!d Pass w0rd'.freeze
+
+ def user_with_2fa
+ create(:user, :signed_up, with: { phone: '+1 202-555-1212' }, password: VALID_PASSWORD)
+ end
+
+ def sign_in_user(user = user_with_2fa)
+ post new_user_session_path, params: { user: { email: user.email, password: user.password } }
+ get otp_send_path, params: { otp_delivery_selection_form: { otp_delivery_preference: 'sms' } }
+ follow_redirect!
+ post login_two_factor_path, params: {
+ otp_delivery_preference: 'sms', code: user.reload.direct_otp
+ }
+ end
+end
+
+RSpec.configure do |config|
+ config.include RequestHelper, type: :request
+end
diff --git a/spec/support/shared_examples/password_strength.rb b/spec/support/shared_examples/password_strength.rb
index 4fd536c1f4e..14c956def24 100644
--- a/spec/support/shared_examples/password_strength.rb
+++ b/spec/support/shared_examples/password_strength.rb
@@ -103,7 +103,7 @@
end
it 'does not allow a password that is the user email' do
- user = build_stubbed(:user, email: 'custom@benevolent.com', uuid: '123')
+ user = build(:user, :with_email, email: 'custom@benevolent.com', uuid: '123')
allow(user).to receive(:reset_password_period_valid?).and_return(true)
form = form_class.constantize.new(user)
password = 'custom@benevolent.com'
diff --git a/spec/support/shared_examples/remember_device.rb b/spec/support/shared_examples/remember_device.rb
index dbfa29aafd4..01fee25a868 100644
--- a/spec/support/shared_examples/remember_device.rb
+++ b/spec/support/shared_examples/remember_device.rb
@@ -9,7 +9,7 @@
it 'requires 2FA on sign in after expiration' do
user = remember_device_and_sign_out_user
- days_to_travel = (Figaro.env.remember_device_expiration_days.to_i + 1).days.from_now
+ days_to_travel = (Figaro.env.remember_device_expiration_hours_aal_1.to_i + 1).hours.from_now
Timecop.travel days_to_travel do
sign_in_user(user)
diff --git a/spec/support/shared_examples/sign_in.rb b/spec/support/shared_examples/sign_in.rb
index 9e165e77f8b..9bb44b599f7 100644
--- a/spec/support/shared_examples/sign_in.rb
+++ b/spec/support/shared_examples/sign_in.rb
@@ -52,6 +52,7 @@
shared_examples 'signing in as LOA3 with personal key' do |sp|
it 'redirects to the SP after acknowledging new personal key', :email do
+ stub_twilio_service
user = create_loa3_account_go_back_to_sp_and_sign_out(sp)
pii = { ssn: '666-66-1234', dob: '1920-01-01', first_name: 'alice' }
diff --git a/spec/view_models/account_show_spec.rb b/spec/view_models/account_show_spec.rb
index d4b541bae17..25c8dec550d 100644
--- a/spec/view_models/account_show_spec.rb
+++ b/spec/view_models/account_show_spec.rb
@@ -168,7 +168,7 @@
context 'AccountShow instance does not have decrypted_pii' do
it "returns the user's email" do
email = 'john@smith.com'
- user = build(:user, email: email).decorate
+ user = build(:user, :with_email, email: email).decorate
profile_index = AccountShow.new(decrypted_pii: {}, personal_key: '', decorated_user: user)
expect(profile_index.header_personalization).to eq email
diff --git a/spec/views/accounts/show.html.slim_spec.rb b/spec/views/accounts/show.html.slim_spec.rb
index a1d3bc3629a..8d598c732df 100644
--- a/spec/views/accounts/show.html.slim_spec.rb
+++ b/spec/views/accounts/show.html.slim_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
describe 'accounts/show.html.slim' do
- let(:user) { build_stubbed(:user, :signed_up) }
+ let(:user) { build(:user, :signed_up, :with_email) }
let(:decorated_user) { user.decorate }
before do
@@ -37,7 +37,7 @@
end
context 'when user is TOTP enabled' do
- let(:user) { build_stubbed(:user, :signed_up, otp_secret_key: '123') }
+ let(:user) { build(:user, :signed_up, :with_email, otp_secret_key: '123') }
before do
assign(
@@ -157,7 +157,7 @@
context 'user has no phone' do
let(:user) do
- record = build_stubbed(:user, :signed_up, :with_piv_or_cac)
+ record = build(:user, :signed_up, :with_piv_or_cac, :with_email)
record.phone_configurations = []
record
end
diff --git a/yarn.lock b/yarn.lock
index 5cdcc9f5abb..4259d8f7dca 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5,6 +5,7 @@
"@rails/webpacker@^3.5.5":
version "3.5.5"
resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-3.5.5.tgz#8911c66bcefc8bc6b91270e92f0d39e3c2d43116"
+ integrity sha512-R9kglLb/R9mMqf2BW91XJHYc0q00qAO67vfrbV52ifTSywPOixEka/7oU3cb6671u1ajd74kuGAsCSnBtdVHJg==
dependencies:
babel-core "^6.26.3"
babel-loader "^7.1.5"
@@ -35,10 +36,12 @@
abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
accepts@~1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
+ integrity sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=
dependencies:
mime-types "~2.1.16"
negotiator "0.6.1"
@@ -46,42 +49,51 @@ accepts@~1.3.4:
acorn-dynamic-import@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
+ integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=
dependencies:
acorn "^4.0.3"
acorn-jsx@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
dependencies:
acorn "^3.0.4"
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+ integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
acorn@^4.0.3:
version "4.0.13"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+ integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
acorn@^5.0.0, acorn@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"
+ integrity sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==
ajv-keywords@^1.0.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+ integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw=
ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
+ integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=
ajv-keywords@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
+ integrity sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=
ajv@^4.7.0, ajv@^4.9.1:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
dependencies:
co "^4.6.0"
json-stable-stringify "^1.0.1"
@@ -89,6 +101,7 @@ ajv@^4.7.0, ajv@^4.9.1:
ajv@^5.0.0, ajv@^5.1.0:
version "5.5.1"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.1.tgz#b38bb8876d9e86bee994956a04e721e88b248eb2"
+ integrity sha1-s4u4h22ehr7plJVqBOch6IskjrI=
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
@@ -98,6 +111,7 @@ ajv@^5.0.0, ajv@^5.1.0:
ajv@^6.1.0:
version "6.1.1"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e"
+ integrity sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=
dependencies:
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
@@ -106,6 +120,7 @@ ajv@^6.1.0:
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
dependencies:
kind-of "^3.0.2"
longest "^1.0.1"
@@ -114,40 +129,49 @@ align-text@^0.1.1, align-text@^0.1.3:
alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+ integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
ansi-escapes@^1.1.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+ integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+ integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
ansi-styles@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
+ integrity sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==
dependencies:
color-convert "^1.9.0"
anymatch@^1.3.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
+ integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
dependencies:
micromatch "^2.1.5"
normalize-path "^2.0.0"
@@ -155,6 +179,7 @@ anymatch@^1.3.0:
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
dependencies:
micromatch "^3.1.4"
normalize-path "^2.1.1"
@@ -162,10 +187,12 @@ anymatch@^2.0.0:
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
are-we-there-yet@~1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
+ integrity sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
@@ -173,42 +200,51 @@ are-we-there-yet@~1.1.2:
argparse@^1.0.7:
version "1.0.9"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ integrity sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=
dependencies:
sprintf-js "~1.0.2"
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
dependencies:
arr-flatten "^1.0.1"
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
array-find-index@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+ integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
array-flatten@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+ integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
+ integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
dependencies:
define-properties "^1.1.2"
es-abstract "^1.7.0"
@@ -216,28 +252,34 @@ array-includes@^3.0.3:
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"
array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+ integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
asn1.js@^4.0.0:
version "4.9.2"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a"
+ integrity sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==
dependencies:
bn.js "^4.0.0"
inherits "^2.0.1"
@@ -246,58 +288,71 @@ asn1.js@^4.0.0:
asn1@~0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+ integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
assert-plus@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+ integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
assert@^1.1.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
+ integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=
dependencies:
util "0.10.3"
assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
+ integrity sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+ integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+ integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=
async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+ integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@^2.1.2, async@^2.4.1:
version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
+ integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==
dependencies:
lodash "^4.14.0"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
atob@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d"
+ integrity sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=
autoprefixer@^6.3.1:
version "6.7.7"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
+ integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=
dependencies:
browserslist "^1.7.6"
caniuse-db "^1.0.30000634"
@@ -309,6 +364,7 @@ autoprefixer@^6.3.1:
autoprefixer@^7.1.1:
version "7.2.1"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.1.tgz#906b1447a0e6a9e13b371f7909bc4e36da5a5a79"
+ integrity sha512-lTbsa2X03maxG45xCNh30sJaRKDn8JPnanOeQOW3wvD9yPGmIsf041LHqlrZ1lXPF/1M3yTZKXqqYfmxU69xuQ==
dependencies:
browserslist "^2.9.1"
caniuse-lite "^1.0.30000777"
@@ -320,18 +376,22 @@ autoprefixer@^7.1.1:
aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
+ integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.2.1, aws4@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+ integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=
babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
dependencies:
chalk "^1.1.3"
esutils "^2.0.2"
@@ -340,6 +400,7 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
babel-core@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
+ integrity sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=
dependencies:
babel-code-frame "^6.26.0"
babel-generator "^6.26.0"
@@ -364,6 +425,7 @@ babel-core@^6.26.0:
babel-core@^6.26.3:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
+ integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
dependencies:
babel-code-frame "^6.26.0"
babel-generator "^6.26.0"
@@ -388,6 +450,7 @@ babel-core@^6.26.3:
babel-eslint@^7.2.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827"
+ integrity sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=
dependencies:
babel-code-frame "^6.22.0"
babel-traverse "^6.23.1"
@@ -397,6 +460,7 @@ babel-eslint@^7.2.3:
babel-generator@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
+ integrity sha1-rBriAHC3n248odMmlhMFN3TyDcU=
dependencies:
babel-messages "^6.23.0"
babel-runtime "^6.26.0"
@@ -410,6 +474,7 @@ babel-generator@^6.26.0:
babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
+ integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=
dependencies:
babel-helper-explode-assignable-expression "^6.24.1"
babel-runtime "^6.22.0"
@@ -418,6 +483,7 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
babel-helper-call-delegate@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
+ integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=
dependencies:
babel-helper-hoist-variables "^6.24.1"
babel-runtime "^6.22.0"
@@ -427,6 +493,7 @@ babel-helper-call-delegate@^6.24.1:
babel-helper-define-map@^6.24.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
+ integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=
dependencies:
babel-helper-function-name "^6.24.1"
babel-runtime "^6.26.0"
@@ -436,6 +503,7 @@ babel-helper-define-map@^6.24.1:
babel-helper-explode-assignable-expression@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
+ integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo=
dependencies:
babel-runtime "^6.22.0"
babel-traverse "^6.24.1"
@@ -444,6 +512,7 @@ babel-helper-explode-assignable-expression@^6.24.1:
babel-helper-function-name@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
+ integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=
dependencies:
babel-helper-get-function-arity "^6.24.1"
babel-runtime "^6.22.0"
@@ -454,6 +523,7 @@ babel-helper-function-name@^6.24.1:
babel-helper-get-function-arity@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
+ integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -461,6 +531,7 @@ babel-helper-get-function-arity@^6.24.1:
babel-helper-hoist-variables@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
+ integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -468,6 +539,7 @@ babel-helper-hoist-variables@^6.24.1:
babel-helper-optimise-call-expression@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
+ integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -475,6 +547,7 @@ babel-helper-optimise-call-expression@^6.24.1:
babel-helper-regex@^6.24.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
+ integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=
dependencies:
babel-runtime "^6.26.0"
babel-types "^6.26.0"
@@ -483,6 +556,7 @@ babel-helper-regex@^6.24.1:
babel-helper-remap-async-to-generator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
+ integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=
dependencies:
babel-helper-function-name "^6.24.1"
babel-runtime "^6.22.0"
@@ -493,6 +567,7 @@ babel-helper-remap-async-to-generator@^6.24.1:
babel-helper-replace-supers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
+ integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo=
dependencies:
babel-helper-optimise-call-expression "^6.24.1"
babel-messages "^6.23.0"
@@ -504,6 +579,7 @@ babel-helper-replace-supers@^6.24.1:
babel-helpers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
dependencies:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
@@ -511,6 +587,7 @@ babel-helpers@^6.24.1:
babel-loader@^7.1.5:
version "7.1.5"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68"
+ integrity sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==
dependencies:
find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
@@ -519,42 +596,51 @@ babel-loader@^7.1.5:
babel-messages@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-check-es2015-constants@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
+ integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
+ integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=
babel-plugin-syntax-class-properties@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
+ integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=
babel-plugin-syntax-dynamic-import@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
+ integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=
babel-plugin-syntax-exponentiation-operator@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
+ integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=
babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
+ integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
babel-plugin-syntax-trailing-function-commas@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
+ integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=
babel-plugin-transform-async-to-generator@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
+ integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=
dependencies:
babel-helper-remap-async-to-generator "^6.24.1"
babel-plugin-syntax-async-functions "^6.8.0"
@@ -563,6 +649,7 @@ babel-plugin-transform-async-to-generator@^6.22.0:
babel-plugin-transform-class-properties@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
+ integrity sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=
dependencies:
babel-helper-function-name "^6.24.1"
babel-plugin-syntax-class-properties "^6.8.0"
@@ -572,18 +659,21 @@ babel-plugin-transform-class-properties@^6.24.1:
babel-plugin-transform-es2015-arrow-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
+ integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
+ integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-block-scoping@^6.23.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
+ integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=
dependencies:
babel-runtime "^6.26.0"
babel-template "^6.26.0"
@@ -594,6 +684,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0:
babel-plugin-transform-es2015-classes@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
+ integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=
dependencies:
babel-helper-define-map "^6.24.1"
babel-helper-function-name "^6.24.1"
@@ -608,6 +699,7 @@ babel-plugin-transform-es2015-classes@^6.23.0:
babel-plugin-transform-es2015-computed-properties@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
+ integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=
dependencies:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
@@ -615,12 +707,14 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0:
babel-plugin-transform-es2015-destructuring@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
+ integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
+ integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -628,12 +722,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
babel-plugin-transform-es2015-for-of@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
+ integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-function-name@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
+ integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=
dependencies:
babel-helper-function-name "^6.24.1"
babel-runtime "^6.22.0"
@@ -642,12 +738,14 @@ babel-plugin-transform-es2015-function-name@^6.22.0:
babel-plugin-transform-es2015-literals@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
+ integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
+ integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=
dependencies:
babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
babel-runtime "^6.22.0"
@@ -656,6 +754,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015
babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
+ integrity sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=
dependencies:
babel-plugin-transform-strict-mode "^6.24.1"
babel-runtime "^6.26.0"
@@ -665,6 +764,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e
babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
+ integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=
dependencies:
babel-helper-hoist-variables "^6.24.1"
babel-runtime "^6.22.0"
@@ -673,6 +773,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
babel-plugin-transform-es2015-modules-umd@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
+ integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg=
dependencies:
babel-plugin-transform-es2015-modules-amd "^6.24.1"
babel-runtime "^6.22.0"
@@ -681,6 +782,7 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0:
babel-plugin-transform-es2015-object-super@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
+ integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40=
dependencies:
babel-helper-replace-supers "^6.24.1"
babel-runtime "^6.22.0"
@@ -688,6 +790,7 @@ babel-plugin-transform-es2015-object-super@^6.22.0:
babel-plugin-transform-es2015-parameters@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
+ integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=
dependencies:
babel-helper-call-delegate "^6.24.1"
babel-helper-get-function-arity "^6.24.1"
@@ -699,6 +802,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0:
babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
+ integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -706,12 +810,14 @@ babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
babel-plugin-transform-es2015-spread@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
+ integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-sticky-regex@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
+ integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw=
dependencies:
babel-helper-regex "^6.24.1"
babel-runtime "^6.22.0"
@@ -720,18 +826,21 @@ babel-plugin-transform-es2015-sticky-regex@^6.22.0:
babel-plugin-transform-es2015-template-literals@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
+ integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
+ integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-transform-es2015-unicode-regex@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
+ integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek=
dependencies:
babel-helper-regex "^6.24.1"
babel-runtime "^6.22.0"
@@ -740,6 +849,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0:
babel-plugin-transform-exponentiation-operator@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
+ integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=
dependencies:
babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
babel-plugin-syntax-exponentiation-operator "^6.8.0"
@@ -748,6 +858,7 @@ babel-plugin-transform-exponentiation-operator@^6.22.0:
babel-plugin-transform-object-rest-spread@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
+ integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
dependencies:
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.26.0"
@@ -755,12 +866,14 @@ babel-plugin-transform-object-rest-spread@^6.26.0:
babel-plugin-transform-regenerator@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
+ integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=
dependencies:
regenerator-transform "^0.10.0"
babel-plugin-transform-strict-mode@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
+ integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
@@ -768,6 +881,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-polyfill@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
+ integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
dependencies:
babel-runtime "^6.26.0"
core-js "^2.5.0"
@@ -776,6 +890,7 @@ babel-polyfill@^6.26.0:
babel-preset-env@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
+ integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==
dependencies:
babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-syntax-trailing-function-commas "^6.22.0"
@@ -811,6 +926,7 @@ babel-preset-env@^1.7.0:
babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
dependencies:
babel-core "^6.26.0"
babel-runtime "^6.26.0"
@@ -823,6 +939,7 @@ babel-register@^6.26.0:
babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
@@ -830,6 +947,7 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runti
babel-template@^6.24.1, babel-template@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
dependencies:
babel-runtime "^6.26.0"
babel-traverse "^6.26.0"
@@ -840,6 +958,7 @@ babel-template@^6.24.1, babel-template@^6.26.0:
babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
dependencies:
babel-code-frame "^6.26.0"
babel-messages "^6.23.0"
@@ -854,6 +973,7 @@ babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
dependencies:
babel-runtime "^6.26.0"
esutils "^2.0.2"
@@ -863,32 +983,39 @@ babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26
babylon@^6.17.0, babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+ integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
balanced-match@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a"
+ integrity sha1-tQS9BYabOSWd0MXvw12EMXbczEo=
balanced-match@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+ integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base32-crockford-browser@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/base32-crockford-browser/-/base32-crockford-browser-1.0.0.tgz#3684970a5826ba1430f01e719cf923b00d773dd8"
+ integrity sha1-NoSXClgmuhQw8B5xnPkjsA13Pdg=
dependencies:
optimist ">=0.1.0"
base64-js@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
+ integrity sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
dependencies:
cache-base "^1.0.1"
class-utils "^0.3.5"
@@ -901,144 +1028,172 @@ base@^0.11.1:
basscss-align@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/basscss-align/-/basscss-align-1.0.2.tgz#294aa689d6f99da86e4af4c5c2892870855c1c37"
+ integrity sha1-KUqmidb5nahuSvTFwokocIVcHDc=
basscss-background-colors@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/basscss-background-colors/-/basscss-background-colors-1.1.3.tgz#54a283651c4092565324a4ef5bc25d70be7621d6"
+ integrity sha1-VKKDZRxAklZTJKTvW8JdcL52IdY=
dependencies:
basscss-defaults "^2.1.1"
basscss-base-forms@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/basscss-base-forms/-/basscss-base-forms-2.0.2.tgz#1608b99ff486dd6b891192ca8d25e2ed575859aa"
+ integrity sha1-Fgi5n/SG3WuJEZLKjSXi7VdYWao=
dependencies:
basscss-defaults "^2.0.1"
basscss-base-reset@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/basscss-base-reset/-/basscss-base-reset-2.0.3.tgz#592716179e497e0b4e7c9add1f1c4c34017c572d"
+ integrity sha1-WScWF55JfgtOfJrdHxxMNAF8Vy0=
basscss-base-tables@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/basscss-base-tables/-/basscss-base-tables-1.0.2.tgz#b850ea1d64b06f91922bfcf4014baaa0836abb30"
+ integrity sha1-uFDqHWSwb5GSK/z0AUuqoINquzA=
dependencies:
basscss-defaults "^2.0.1"
basscss-base-typography@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/basscss-base-typography/-/basscss-base-typography-2.0.3.tgz#1f4bf3457124828208f686bc385cd330ae7e7a72"
+ integrity sha1-H0vzRXEkgoII9oa8OFzTMK5+enI=
dependencies:
basscss-defaults "^2.0.1"
basscss-border-colors@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/basscss-border-colors/-/basscss-border-colors-1.1.3.tgz#9eb2326b479eaa97bf9bd6c4eebc1fd824d809fe"
+ integrity sha1-nrIya0eeqpe/m9bE7rwf2CTYCf4=
dependencies:
basscss-defaults "^2.1.1"
basscss-border@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/basscss-border/-/basscss-border-3.0.4.tgz#65993568da0867eb75d96b709f97e33b2b902486"
+ integrity sha1-ZZk1aNoIZ+t12Wtwn5fjOyuQJIY=
dependencies:
basscss-defaults "^2.1.3"
basscss-borders@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/basscss-borders/-/basscss-borders-2.0.5.tgz#3d8470fba90ece892705e1a5b24c276b739eeb8e"
+ integrity sha1-PYRw+6kOzoknBeGlskwna3Oe644=
dependencies:
basscss-defaults "^2.0.1"
basscss-btn-outline@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/basscss-btn-outline/-/basscss-btn-outline-1.1.0.tgz#b8444ea9d3d508cd00760a9d6fdff4baf5d42758"
+ integrity sha1-uEROqdPVCM0Adgqdb9/0uvXUJ1g=
basscss-btn-primary@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/basscss-btn-primary/-/basscss-btn-primary-1.1.0.tgz#0c12492971e216e42bdf134411afc3802c3d8bf7"
+ integrity sha1-DBJJKXHiFuQr3xNEEa/DgCw9i/c=
basscss-btn@^1.0.4:
version "1.1.1"
resolved "https://registry.yarnpkg.com/basscss-btn/-/basscss-btn-1.1.1.tgz#c42157f201bd95db9a251568c542e740b2a3d7bf"
+ integrity sha1-xCFX8gG9lduaJRVoxULnQLKj178=
basscss-color-base@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/basscss-color-base/-/basscss-color-base-2.0.2.tgz#ed848bfce391ab535a6d14a702a14fa4c4f3242d"
+ integrity sha1-7YSL/OORq1NabRSnAqFPpMTzJC0=
dependencies:
basscss-defaults "^2.0.1"
basscss-color-forms@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/basscss-color-forms/-/basscss-color-forms-3.0.2.tgz#8f2d1d07d5fcb664556cd354bef98cebb2d5e0cb"
+ integrity sha1-jy0dB9X8tmRVbNNUvvmM67LV4Ms=
dependencies:
basscss-defaults "^2.0.1"
basscss-color-tables@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/basscss-color-tables/-/basscss-color-tables-1.0.4.tgz#d435ec7c5f210fa17de7d1b8813debbca6a543e1"
+ integrity sha1-1DXsfF8hD6F959G4gT3rvKalQ+E=
dependencies:
basscss-defaults "^2.0.1"
basscss-colors@^2.0.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/basscss-colors/-/basscss-colors-2.2.0.tgz#dccb773e272efe45df4a480962c8bd88b6a6b3e1"
+ integrity sha1-3Mt3Picu/kXfSkgJYsi9iLams+E=
dependencies:
colors.css "^3.0.0"
basscss-defaults@^2.0.1, basscss-defaults@^2.1.1, basscss-defaults@^2.1.2, basscss-defaults@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/basscss-defaults/-/basscss-defaults-2.1.3.tgz#b4ea634e815c6923f0c7665b148a4cc8b3b43927"
+ integrity sha1-tOpjToFcaSPwx2ZbFIpMyLO0OSc=
dependencies:
colors.css "^2.0.4"
basscss-grid@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/basscss-grid/-/basscss-grid-1.0.6.tgz#1a512c73b8743305e47a36a7432aad5c26cc2867"
+ integrity sha1-GlEsc7h0MwXkejanQyqtXCbMKGc=
dependencies:
basscss-defaults "^2.0.1"
basscss-layout@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/basscss-layout/-/basscss-layout-3.1.0.tgz#f9f392e480da66657d9fe5de9ca4c07c579c3a4e"
+ integrity sha1-+fOS5IDaZmV9n+XenKTAfFecOk4=
basscss-margin@^1.0.1:
version "1.0.7"
resolved "https://registry.yarnpkg.com/basscss-margin/-/basscss-margin-1.0.7.tgz#5a92d8cda98ef391c73a15ede97b34b48886417c"
+ integrity sha1-WpLYzamO85HHOhXt6Xs0tIiGQXw=
basscss-padding@^1.0.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/basscss-padding/-/basscss-padding-1.1.3.tgz#69db799414e6dd58bed83776952cc299e2e6874e"
+ integrity sha1-adt5lBTm3Vi+2Dd2lSzCmeLmh04=
basscss-position@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/basscss-position/-/basscss-position-2.0.3.tgz#467180a1f8f386e9072ed8d08294d2a6e0ba4305"
+ integrity sha1-RnGAofjzhukHLtjQgpTSpuC6QwU=
basscss-positions@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/basscss-positions/-/basscss-positions-1.0.5.tgz#e4fdfb6d031cf258c61117f93371f3abbb93881a"
+ integrity sha1-5P37bQMc8ljGERf5M3Hzq7uTiBo=
basscss-responsive-states@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/basscss-responsive-states/-/basscss-responsive-states-1.0.6.tgz#d892343e1799885c03e4f1c702cd7c1ab528f002"
+ integrity sha1-2JI0PheZiFwD5PHHAs18GrUo8AI=
dependencies:
basscss-defaults "^2.0.1"
basscss-sass@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/basscss-sass/-/basscss-sass-3.0.0.tgz#9f1be85fa8ea69f9944153762268c46af30bc4cd"
+ integrity sha1-nxvoX6jqafmUQVN2ImjEavMLxM0=
dependencies:
basscss "^7.0.4"
basscss-type-scale@^1.0.3:
version "1.0.5"
resolved "https://registry.yarnpkg.com/basscss-type-scale/-/basscss-type-scale-1.0.5.tgz#23bf5e41c9d142c8061cf9829ccf23e9b3258ec7"
+ integrity sha1-I79eQcnRQsgGHPmCnM8j6bMljsc=
basscss-typography@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/basscss-typography/-/basscss-typography-3.0.3.tgz#182cf43df7c4ebed02750dc748041cbadff60d43"
+ integrity sha1-GCz0PffE6+0CdQ3HSAQcut/2DUM=
basscss@^7.0.4:
version "7.1.1"
resolved "https://registry.yarnpkg.com/basscss/-/basscss-7.1.1.tgz#7bf31203197a29df0eee551f425617a8be7c777b"
+ integrity sha1-e/MSAxl6Kd8O7lUfQlYXqL58d3s=
dependencies:
basscss-align "^1.0.1"
basscss-background-colors "^1.1.2"
@@ -1071,38 +1226,46 @@ basscss@^7.0.4:
batch@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+ integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
bcrypt-pbkdf@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=
dependencies:
tweetnacl "^0.14.3"
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
binary-extensions@^1.0.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
+ integrity sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+ integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
dependencies:
inherits "~2.0.0"
bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+ integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
body-parser@1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+ integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
@@ -1118,6 +1281,7 @@ body-parser@1.18.2:
bonjour@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
dependencies:
array-flatten "^2.1.0"
deep-equal "^1.0.1"
@@ -1129,24 +1293,28 @@ bonjour@^3.5.0:
boom@2.x.x:
version "2.10.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
+ integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
dependencies:
hoek "2.x.x"
boom@4.x.x:
version "4.3.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE=
dependencies:
hoek "4.x.x"
boom@5.x.x:
version "5.2.0"
resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==
dependencies:
hoek "4.x.x"
brace-expansion@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
+ integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI=
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -1154,6 +1322,7 @@ brace-expansion@^1.1.7:
braces@^1.8.2:
version "1.8.5"
resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
dependencies:
expand-range "^1.8.1"
preserve "^0.2.0"
@@ -1162,6 +1331,7 @@ braces@^1.8.2:
braces@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e"
+ integrity sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==
dependencies:
arr-flatten "^1.1.0"
array-unique "^0.3.2"
@@ -1178,14 +1348,17 @@ braces@^2.3.0:
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-stdout@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
+ integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8=
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.1.1"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f"
+ integrity sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==
dependencies:
buffer-xor "^1.0.3"
cipher-base "^1.0.0"
@@ -1197,6 +1370,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4:
browserify-cipher@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
+ integrity sha1-mYgkSHS/XtTijalWZtzWasj8Njo=
dependencies:
browserify-aes "^1.0.4"
browserify-des "^1.0.0"
@@ -1205,6 +1379,7 @@ browserify-cipher@^1.0.0:
browserify-des@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
+ integrity sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=
dependencies:
cipher-base "^1.0.1"
des.js "^1.0.0"
@@ -1213,6 +1388,7 @@ browserify-des@^1.0.0:
browserify-rsa@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
dependencies:
bn.js "^4.1.0"
randombytes "^2.0.1"
@@ -1220,6 +1396,7 @@ browserify-rsa@^4.0.0:
browserify-sign@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+ integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
dependencies:
bn.js "^4.1.1"
browserify-rsa "^4.0.0"
@@ -1232,12 +1409,14 @@ browserify-sign@^4.0.0:
browserify-zlib@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
dependencies:
pako "~1.0.5"
browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
version "1.7.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
+ integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=
dependencies:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
@@ -1245,6 +1424,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
browserslist@^2.0.0, browserslist@^2.9.1:
version "2.9.1"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.9.1.tgz#b72d3982ab01b5cd24da62ff6d45573886aff275"
+ integrity sha512-3n3nPdbUqn3nWmsy4PeSQthz2ja1ndpoXta+dwFFNhveGjMg6FXpWYe12vsTpNoXJbzx3j7GZXdtoVIdvh3JbA==
dependencies:
caniuse-lite "^1.0.30000770"
electron-to-chromium "^1.3.27"
@@ -1252,6 +1432,7 @@ browserslist@^2.0.0, browserslist@^2.9.1:
browserslist@^3.2.6:
version "3.2.8"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
+ integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==
dependencies:
caniuse-lite "^1.0.30000844"
electron-to-chromium "^1.3.47"
@@ -1259,14 +1440,17 @@ browserslist@^3.2.6:
buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+ integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+ integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
buffer@^4.3.0:
version "4.9.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+ integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
@@ -1275,18 +1459,22 @@ buffer@^4.3.0:
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+ integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
cacache@^10.0.1:
version "10.0.2"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.2.tgz#105a93a162bbedf3a25da42e1939ed99ffb145f8"
+ integrity sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==
dependencies:
bluebird "^3.5.0"
chownr "^1.0.1"
@@ -1305,6 +1493,7 @@ cacache@^10.0.1:
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+ integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
dependencies:
bluebird "^3.5.1"
chownr "^1.0.1"
@@ -1323,6 +1512,7 @@ cacache@^10.0.4:
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
dependencies:
collection-visit "^1.0.0"
component-emitter "^1.2.1"
@@ -1337,16 +1527,19 @@ cache-base@^1.0.1:
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
dependencies:
callsites "^0.2.0"
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+ integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
camelcase-keys@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
dependencies:
camelcase "^2.0.0"
map-obj "^1.0.0"
@@ -1354,22 +1547,27 @@ camelcase-keys@^2.0.0:
camelcase@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+ integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
camelcase@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+ integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+ integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
caniuse-api@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
+ integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=
dependencies:
browserslist "^1.3.6"
caniuse-db "^1.0.30000529"
@@ -1379,6 +1577,7 @@ caniuse-api@^1.5.2:
caniuse-api@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-2.0.0.tgz#b1ddb5a5966b16f48dc4998444d4bbc6c7d9d834"
+ integrity sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ=
dependencies:
browserslist "^2.0.0"
caniuse-lite "^1.0.0"
@@ -1388,26 +1587,32 @@ caniuse-api@^2.0.0:
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000778"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000778.tgz#167c60e9542a2aa60537c446fb3881d853a3072a"
+ integrity sha1-Fnxg6VQqKqYFN8RG+ziB2FOjByo=
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000770, caniuse-lite@^1.0.30000777:
version "1.0.30000778"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000778.tgz#f1e7cb8b13b1f6744402291d75f0bcd4c3160369"
+ integrity sha1-8efLixOx9nREAikddfC81MMWA2k=
caniuse-lite@^1.0.30000844:
version "1.0.30000865"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz#70026616e8afe6e1442f8bb4e1092987d81a2f25"
+ integrity sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==
case-sensitive-paths-webpack-plugin@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192"
+ integrity sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
center-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
dependencies:
align-text "^0.1.3"
lazy-cache "^1.0.3"
@@ -1415,6 +1620,7 @@ center-align@^0.1.1:
chai@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
+ integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=
dependencies:
assertion-error "^1.0.1"
deep-eql "^0.1.3"
@@ -1423,6 +1629,7 @@ chai@^3.5.0:
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
@@ -1433,6 +1640,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
chalk@^2.0.1, chalk@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
+ integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==
dependencies:
ansi-styles "^3.1.0"
escape-string-regexp "^1.0.5"
@@ -1441,6 +1649,7 @@ chalk@^2.0.1, chalk@^2.3.0:
chokidar@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+ integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
dependencies:
anymatch "^1.3.0"
async-each "^1.0.0"
@@ -1456,6 +1665,7 @@ chokidar@^1.7.0:
chokidar@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.1.tgz#6e67e9998fe10e8f651e975ca62460456ff8e297"
+ integrity sha512-rv5iP8ENhpqvDWr677rAXcB+SMoPQ1urd4ch79+PhM4lQwbATdJUQK69t0lJIKNB+VXpqxt5V1gvqs59XEPKnw==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.0"
@@ -1474,10 +1684,12 @@ chokidar@^2.0.0:
chownr@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
+ integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+ integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
@@ -1485,16 +1697,19 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+ integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
clap@^1.0.9:
version "1.2.3"
resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
+ integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
dependencies:
chalk "^1.1.3"
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
dependencies:
arr-union "^3.1.0"
define-property "^0.2.5"
@@ -1504,20 +1719,24 @@ class-utils@^0.3.5:
classlist.js@^1.1.20150312:
version "1.1.20150312"
resolved "https://registry.yarnpkg.com/classlist.js/-/classlist.js-1.1.20150312.tgz#1d70842f7022f08d9ac086ce69e5b250f2c57789"
+ integrity sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=
cli-cursor@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
dependencies:
restore-cursor "^1.0.1"
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
clipboard@^1.6.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz#360d6d6946e99a7a1fef395e42ba92b5e9b5a16b"
+ integrity sha1-Ng1taUbpmnof7zleQrqStem1oWs=
dependencies:
good-listener "^1.2.2"
select "^1.1.2"
@@ -1526,6 +1745,7 @@ clipboard@^1.6.1:
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
dependencies:
center-align "^0.1.1"
right-align "^0.1.1"
@@ -1534,6 +1754,7 @@ cliui@^2.1.0:
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
@@ -1542,6 +1763,7 @@ cliui@^3.2.0:
clone-deep@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
+ integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==
dependencies:
for-own "^1.0.0"
is-plain-object "^2.0.4"
@@ -1551,28 +1773,34 @@ clone-deep@^2.0.1:
clone@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
+ integrity sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
coa@~1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
+ integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=
dependencies:
q "^1.1.2"
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
coffeescript@1.12.7:
version "1.12.7"
resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27"
+ integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
dependencies:
map-visit "^1.0.0"
object-visit "^1.0.0"
@@ -1580,22 +1808,26 @@ collection-visit@^1.0.0:
color-convert@^1.3.0, color-convert@^1.8.2, color-convert@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
+ integrity sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==
dependencies:
color-name "^1.1.1"
color-name@^1.0.0, color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-string@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
+ integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=
dependencies:
color-name "^1.0.0"
color-string@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.2.tgz#26e45814bc3c9a7cbd6751648a41434514a773a9"
+ integrity sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
@@ -1603,6 +1835,7 @@ color-string@^1.4.0:
color@^0.11.0:
version "0.11.4"
resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
+ integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=
dependencies:
clone "^1.0.2"
color-convert "^1.3.0"
@@ -1611,6 +1844,7 @@ color@^0.11.0:
color@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/color/-/color-1.0.3.tgz#e48e832d85f14ef694fb468811c2d5cfe729b55d"
+ integrity sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=
dependencies:
color-convert "^1.8.2"
color-string "^1.4.0"
@@ -1618,6 +1852,7 @@ color@^1.0.3:
colormin@^1.0.5:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
+ integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=
dependencies:
color "^0.11.0"
css-color-names "0.0.4"
@@ -1626,46 +1861,56 @@ colormin@^1.0.5:
colors.css@^2.0.4:
version "2.3.0"
resolved "https://registry.yarnpkg.com/colors.css/-/colors.css-2.3.0.tgz#e8953837543e19d98e2917ff0b998f6db286213b"
+ integrity sha1-6JU4N1Q+GdmOKRf/C5mPbbKGITs=
colors.css@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/colors.css/-/colors.css-3.0.0.tgz#511cf42fb8a7199a8cbef49c88a4ea4f1d8f9efc"
+ integrity sha1-URz0L7inGZqMvvSciKTqTx2Pnvw=
colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+ integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+ integrity sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=
dependencies:
delayed-stream "~1.0.0"
commander@2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+ integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==
commander@~2.14.1:
version "2.14.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
+ integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
compressible@~2.0.11:
version "2.0.12"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66"
+ integrity sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=
dependencies:
mime-db ">= 1.30.0 < 2"
compression-webpack-plugin@^1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-1.1.11.tgz#8384c7a6ead1d2e2efb190bdfcdcf35878ed8266"
+ integrity sha512-ZVWKrTQhtOP7rDx3M/koXTnRm/iwcYbuCdV+i4lZfAIe32Mov7vUVM0+8Vpz4q0xH+TBUZxq+rM8nhtkDH50YQ==
dependencies:
cacache "^10.0.1"
find-cache-dir "^1.0.0"
@@ -1676,6 +1921,7 @@ compression-webpack-plugin@^1.1.11:
compression@^1.5.2:
version "1.7.1"
resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db"
+ integrity sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=
dependencies:
accepts "~1.3.4"
bytes "3.0.0"
@@ -1688,10 +1934,12 @@ compression@^1.5.2:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.5.0, concat-stream@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
+ integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=
dependencies:
inherits "^2.0.3"
readable-stream "^2.2.2"
@@ -1700,48 +1948,59 @@ concat-stream@^1.5.0, concat-stream@^1.5.2:
connect-history-api-fallback@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
+ integrity sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=
console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
dependencies:
date-now "^0.1.4"
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+ integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
contains-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+ integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=
content-disposition@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+ integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
convert-source-map@^1.5.0, convert-source-map@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+ integrity sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=
cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+ integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
dependencies:
aproba "^1.1.1"
fs-write-stream-atomic "^1.0.8"
@@ -1753,18 +2012,22 @@ copy-concurrently@^1.0.0:
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
core-js@^2.4.0, core-js@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
+ integrity sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cosmiconfig@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
+ integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
dependencies:
is-directory "^0.3.1"
js-yaml "^3.9.0"
@@ -1774,6 +2037,7 @@ cosmiconfig@^4.0.0:
create-ecdh@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
+ integrity sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=
dependencies:
bn.js "^4.1.0"
elliptic "^6.0.0"
@@ -1781,6 +2045,7 @@ create-ecdh@^4.0.0:
create-hash@^1.1.0, create-hash@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
+ integrity sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=
dependencies:
cipher-base "^1.0.1"
inherits "^2.0.1"
@@ -1790,6 +2055,7 @@ create-hash@^1.1.0, create-hash@^1.1.2:
create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
version "1.1.6"
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
+ integrity sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=
dependencies:
cipher-base "^1.0.3"
create-hash "^1.1.0"
@@ -1801,6 +2067,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
cross-spawn@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
+ integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI=
dependencies:
lru-cache "^4.0.1"
which "^1.2.9"
@@ -1808,6 +2075,7 @@ cross-spawn@^3.0.0:
cross-spawn@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
dependencies:
lru-cache "^4.0.1"
shebang-command "^1.2.0"
@@ -1816,18 +2084,21 @@ cross-spawn@^5.0.1:
cryptiles@2.x.x:
version "2.0.5"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+ integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
dependencies:
boom "2.x.x"
cryptiles@3.x.x:
version "3.1.2"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ integrity sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=
dependencies:
boom "5.x.x"
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
dependencies:
browserify-cipher "^1.0.0"
browserify-sign "^4.0.0"
@@ -1844,6 +2115,7 @@ crypto-browserify@^3.11.0:
css-color-function@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.3.tgz#8ed24c2c0205073339fafa004bc8c141fccb282e"
+ integrity sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=
dependencies:
balanced-match "0.1.0"
color "^0.11.0"
@@ -1853,10 +2125,12 @@ css-color-function@~1.3.3:
css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+ integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
css-loader@^0.28.11:
version "0.28.11"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
+ integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
dependencies:
babel-code-frame "^6.26.0"
css-selector-tokenizer "^0.7.0"
@@ -1876,6 +2150,7 @@ css-loader@^0.28.11:
css-selector-tokenizer@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86"
+ integrity sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=
dependencies:
cssesc "^0.1.0"
fastparse "^1.1.1"
@@ -1884,14 +2159,17 @@ css-selector-tokenizer@^0.7.0:
css-unit-converter@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
+ integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
cssesc@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
+ integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
cssnano@^3.10.0, cssnano@^3.4.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
+ integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=
dependencies:
autoprefixer "^6.3.1"
decamelize "^1.1.2"
@@ -1929,6 +2207,7 @@ cssnano@^3.10.0, cssnano@^3.4.0:
csso@~2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
+ integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=
dependencies:
clap "^1.0.9"
source-map "^0.5.3"
@@ -1936,70 +2215,84 @@ csso@~2.3.1:
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
dependencies:
array-find-index "^1.0.1"
cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
+ integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=
dependencies:
es5-ext "^0.10.9"
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+ integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
debug@3.1.0, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
deep-eql@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
+ integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=
dependencies:
type-detect "0.1.1"
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+ integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
+ integrity sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
+ integrity sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=
dependencies:
foreach "^2.0.5"
object-keys "^1.0.8"
@@ -2007,22 +2300,26 @@ define-properties@^1.1.2:
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
dependencies:
is-descriptor "^0.1.0"
define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
dependencies:
is-descriptor "^1.0.0"
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
dependencies:
globby "^5.0.0"
is-path-cwd "^1.0.0"
@@ -2035,6 +2332,7 @@ del@^2.0.2:
del@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+ integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
dependencies:
globby "^6.1.0"
is-path-cwd "^1.0.0"
@@ -2046,26 +2344,32 @@ del@^3.0.0:
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
delegate@^3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.1.3.tgz#9a8251a777d7025faa55737bc3b071742127a9fd"
+ integrity sha1-moJRp3fXAl+qVXN7w7BxdCEnqf0=
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
depd@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
+ integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
depd@~1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
des.js@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
+ integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
dependencies:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
@@ -2073,28 +2377,34 @@ des.js@^1.0.0:
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
dependencies:
repeating "^2.0.0"
detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-node@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
+ integrity sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=
diff@3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
+ integrity sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==
diffie-hellman@^5.0.0:
version "5.0.2"
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
+ integrity sha1-tYNXOScM/ias9jIJn97SoH8gnl4=
dependencies:
bn.js "^4.1.0"
miller-rabin "^4.0.0"
@@ -2103,14 +2413,17 @@ diffie-hellman@^5.0.0:
dirty-chai@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/dirty-chai/-/dirty-chai-1.2.2.tgz#78495e619635f7fe44219aa4c837849bf183142e"
+ integrity sha1-eEleYZY19/5EIZqkyDeEm/GDFC4=
dns-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+ integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
dns-packet@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
+ integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
dependencies:
ip "^1.1.0"
safe-buffer "^5.0.1"
@@ -2118,12 +2431,14 @@ dns-packet@^1.3.1:
dns-txt@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
dependencies:
buffer-indexof "^1.0.0"
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
dependencies:
esutils "^2.0.2"
isarray "^1.0.0"
@@ -2131,16 +2446,19 @@ doctrine@1.5.0:
doctrine@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075"
+ integrity sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==
dependencies:
esutils "^2.0.2"
domain-browser@^1.1.1:
version "1.1.7"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
+ integrity sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=
duplexify@^3.4.2, duplexify@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e"
+ integrity sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==
dependencies:
end-of-stream "^1.0.0"
inherits "^2.0.1"
@@ -2150,24 +2468,29 @@ duplexify@^3.4.2, duplexify@^3.5.3:
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=
dependencies:
jsbn "~0.1.0"
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.27:
version "1.3.27"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d"
+ integrity sha1-eOy4o5kGYYe7N07t412ccFZagD0=
electron-to-chromium@^1.3.47:
version "1.3.52"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz#d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0"
+ integrity sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
+ integrity sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
@@ -2180,20 +2503,24 @@ elliptic@^6.0.0:
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
encodeurl@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
dependencies:
once "^1.4.0"
enhanced-resolve@^3.4.0:
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
+ integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
@@ -2203,30 +2530,35 @@ enhanced-resolve@^3.4.0:
errno@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
+ integrity sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=
dependencies:
prr "~0.0.0"
errno@^0.1.4:
version "0.1.6"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026"
+ integrity sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==
dependencies:
prr "~1.0.1"
error-ex@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ integrity sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=
dependencies:
is-arrayish "^0.2.1"
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
es-abstract@^1.7.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
+ integrity sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
@@ -2237,6 +2569,7 @@ es-abstract@^1.7.0:
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+ integrity sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
@@ -2245,6 +2578,7 @@ es-to-primitive@^1.1.1:
es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.37"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.37.tgz#0ee741d148b80069ba27d020393756af257defc3"
+ integrity sha1-DudB0Ui4AGm6J9AgOTdWryV978M=
dependencies:
es6-iterator "~2.0.1"
es6-symbol "~3.1.1"
@@ -2252,6 +2586,7 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
es6-iterator@^2.0.1, es6-iterator@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
dependencies:
d "1"
es5-ext "^0.10.35"
@@ -2260,6 +2595,7 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.1:
es6-map@^0.1.3:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
dependencies:
d "1"
es5-ext "~0.10.14"
@@ -2271,6 +2607,7 @@ es6-map@^0.1.3:
es6-set@~0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=
dependencies:
d "1"
es5-ext "~0.10.14"
@@ -2281,6 +2618,7 @@ es6-set@~0.1.5:
es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+ integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
dependencies:
d "1"
es5-ext "~0.10.14"
@@ -2288,6 +2626,7 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
es6-weak-map@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+ integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=
dependencies:
d "1"
es5-ext "^0.10.14"
@@ -2297,14 +2636,17 @@ es6-weak-map@^2.0.1:
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escope@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=
dependencies:
es6-map "^0.1.3"
es6-weak-map "^2.0.1"
@@ -2314,12 +2656,14 @@ escope@^3.6.0:
eslint-config-airbnb-base@^11.2.0:
version "11.3.2"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
+ integrity sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==
dependencies:
eslint-restricted-globals "^0.1.1"
eslint-import-resolver-node@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
+ integrity sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==
dependencies:
debug "^2.6.8"
resolve "^1.2.0"
@@ -2327,6 +2671,7 @@ eslint-import-resolver-node@^0.3.1:
eslint-module-utils@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
+ integrity sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==
dependencies:
debug "^2.6.8"
pkg-dir "^1.0.0"
@@ -2334,6 +2679,7 @@ eslint-module-utils@^2.1.1:
eslint-plugin-import@^2.2.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894"
+ integrity sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==
dependencies:
builtin-modules "^1.1.1"
contains-path "^0.1.0"
@@ -2349,10 +2695,12 @@ eslint-plugin-import@^2.2.0:
eslint-restricted-globals@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
+ integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=
eslint@^3.19.0:
version "3.19.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
+ integrity sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=
dependencies:
babel-code-frame "^6.16.0"
chalk "^1.1.3"
@@ -2393,6 +2741,7 @@ eslint@^3.19.0:
espree@^3.4.0:
version "3.5.2"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca"
+ integrity sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==
dependencies:
acorn "^5.2.1"
acorn-jsx "^3.0.0"
@@ -2400,20 +2749,24 @@ espree@^3.4.0:
esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
esprima@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+ integrity sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==
esquery@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
+ integrity sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=
dependencies:
estraverse "^4.0.0"
esrecurse@^4.1.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
+ integrity sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=
dependencies:
estraverse "^4.1.0"
object-assign "^4.0.1"
@@ -2421,18 +2774,22 @@ esrecurse@^4.1.0:
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+ integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+ integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
event-emitter@~0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
dependencies:
d "1"
es5-ext "~0.10.14"
@@ -2440,20 +2797,24 @@ event-emitter@~0.3.5:
eventemitter3@1.x.x:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
+ integrity sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=
events@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+ integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
eventsource@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
+ integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=
dependencies:
original ">=0.0.5"
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
dependencies:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
@@ -2461,6 +2822,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
@@ -2473,16 +2835,19 @@ execa@^0.7.0:
exit-hook@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+ integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
dependencies:
is-posix-bracket "^0.1.0"
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
dependencies:
debug "^2.3.3"
define-property "^0.2.5"
@@ -2495,12 +2860,14 @@ expand-brackets@^2.1.4:
expand-range@^1.8.1:
version "1.8.2"
resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
dependencies:
fill-range "^2.1.0"
express@^4.16.2:
version "4.16.2"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
+ integrity sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=
dependencies:
accepts "~1.3.4"
array-flatten "1.1.1"
@@ -2536,12 +2903,14 @@ express@^4.16.2:
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
dependencies:
is-extendable "^0.1.0"
extend-shallow@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
dependencies:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
@@ -2549,16 +2918,19 @@ extend-shallow@^3.0.0:
extend@~3.0.0, extend@~3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+ integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=
extglob@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
dependencies:
is-extglob "^1.0.0"
extglob@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
dependencies:
array-unique "^0.3.2"
define-property "^1.0.0"
@@ -2572,6 +2944,7 @@ extglob@^2.0.2:
extract-text-webpack-plugin@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7"
+ integrity sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==
dependencies:
async "^2.4.1"
loader-utils "^1.1.0"
@@ -2581,42 +2954,51 @@ extract-text-webpack-plugin@^3.0.2:
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
fast-deep-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+ integrity sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
+ integrity sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=
faye-websocket@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+ integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
dependencies:
websocket-driver ">=0.5.1"
faye-websocket@~0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
+ integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
dependencies:
websocket-driver ">=0.5.1"
field-kit@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/field-kit/-/field-kit-2.1.0.tgz#e68ede5f4e3051b2dc4258105a495c541a3b2d7f"
+ integrity sha1-5o7eX04wUbLcQlgQWklcVBo7LX8=
dependencies:
input-sim "^3.0.1"
stround "0.3.1"
@@ -2624,6 +3006,7 @@ field-kit@^2.1.0:
figures@^1.3.5:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
dependencies:
escape-string-regexp "^1.0.5"
object-assign "^4.1.0"
@@ -2631,6 +3014,7 @@ figures@^1.3.5:
file-entry-cache@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
+ integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=
dependencies:
flat-cache "^1.2.1"
object-assign "^4.0.1"
@@ -2638,6 +3022,7 @@ file-entry-cache@^2.0.0:
file-loader@^1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8"
+ integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==
dependencies:
loader-utils "^1.0.2"
schema-utils "^0.4.5"
@@ -2645,10 +3030,12 @@ file-loader@^1.1.11:
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+ integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
fill-keys@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20"
+ integrity sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=
dependencies:
is-object "~1.0.1"
merge-descriptors "~1.0.0"
@@ -2656,6 +3043,7 @@ fill-keys@^1.0.2:
fill-range@^2.1.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ integrity sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
@@ -2666,6 +3054,7 @@ fill-range@^2.1.0:
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
dependencies:
extend-shallow "^2.0.1"
is-number "^3.0.0"
@@ -2675,6 +3064,7 @@ fill-range@^4.0.0:
finalhandler@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
+ integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=
dependencies:
debug "2.6.9"
encodeurl "~1.0.1"
@@ -2687,6 +3077,7 @@ finalhandler@1.1.0:
find-cache-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+ integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
dependencies:
commondir "^1.0.1"
make-dir "^1.0.0"
@@ -2695,6 +3086,7 @@ find-cache-dir@^1.0.0:
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
@@ -2702,12 +3094,14 @@ find-up@^1.0.0:
find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
dependencies:
locate-path "^2.0.0"
flat-cache@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
+ integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
@@ -2717,16 +3111,19 @@ flat-cache@^1.2.1:
flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
+ integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
flex-object@^2.0.4:
version "2.0.5"
resolved "https://registry.yarnpkg.com/flex-object/-/flex-object-2.0.5.tgz#11b9bbc0f4f864e9dc607e98ce2c670442bdc851"
+ integrity sha1-Ebm7wPT4ZOncYH6YzixnBEK9yFE=
dependencies:
basscss-defaults "^2.0.1"
flush-write-stream@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417"
+ integrity sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.4"
@@ -2734,40 +3131,48 @@ flush-write-stream@^1.0.0:
focus-trap@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-2.3.1.tgz#f4fb86cfe6da38dc652b373e9f42ba476eab1c14"
+ integrity sha512-DR30Bcd5NqNaP1Pb3OsIEe/C1FaWqjxrjDUP6CCglF2N5e+ySDzmFCNEqJAQaskQttlJ1DAgWbVMlOXh4Etb8A==
dependencies:
tabbable "^1.0.3"
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
+ integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
dependencies:
for-in "^1.0.1"
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
+ integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
dependencies:
for-in "^1.0.1"
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+ integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@~2.1.1:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
+ integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.5"
@@ -2776,6 +3181,7 @@ form-data@~2.1.1:
form-data@~2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ integrity sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.5"
@@ -2784,26 +3190,31 @@ form-data@~2.3.1:
formatio@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9"
+ integrity sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=
dependencies:
samsam "~1.1"
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+ integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
dependencies:
map-cache "^0.2.2"
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
from2@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.0"
@@ -2811,6 +3222,7 @@ from2@^2.1.0:
fs-extra@^0.30.0:
version "0.30.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
+ integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=
dependencies:
graceful-fs "^4.1.2"
jsonfile "^2.1.0"
@@ -2821,6 +3233,7 @@ fs-extra@^0.30.0:
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
dependencies:
graceful-fs "^4.1.2"
iferr "^0.1.5"
@@ -2830,10 +3243,12 @@ fs-write-stream-atomic@^1.0.8:
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
+ integrity sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==
dependencies:
nan "^2.3.0"
node-pre-gyp "^0.6.39"
@@ -2841,6 +3256,7 @@ fsevents@^1.0.0:
fstream-ignore@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
+ integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=
dependencies:
fstream "^1.0.0"
inherits "2"
@@ -2849,6 +3265,7 @@ fstream-ignore@^1.0.5:
fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
version "1.0.11"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
+ integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
@@ -2858,10 +3275,12 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
@@ -2875,44 +3294,53 @@ gauge@~2.7.3:
gaze@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
+ integrity sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=
dependencies:
globule "^1.0.0"
generate-function@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
+ integrity sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=
generate-object-property@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
dependencies:
is-property "^1.0.0"
get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+ integrity sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+ integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
dependencies:
glob-parent "^2.0.0"
is-glob "^2.0.0"
@@ -2920,12 +3348,14 @@ glob-base@^0.3.0:
glob-parent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
dependencies:
is-glob "^2.0.0"
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
dependencies:
is-glob "^3.1.0"
path-dirname "^1.0.0"
@@ -2933,6 +3363,7 @@ glob-parent@^3.1.0:
glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -2944,6 +3375,7 @@ glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
glob@^6.0.4:
version "6.0.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+ integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
dependencies:
inflight "^1.0.4"
inherits "2"
@@ -2954,10 +3386,12 @@ glob@^6.0.4:
globals@^9.14.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+ integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
dependencies:
array-union "^1.0.1"
arrify "^1.0.0"
@@ -2969,6 +3403,7 @@ globby@^5.0.0:
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
dependencies:
array-union "^1.0.1"
glob "^7.0.3"
@@ -2979,6 +3414,7 @@ globby@^6.1.0:
globule@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
+ integrity sha1-HcScaCLdnoovoAuiopUAboZkvQk=
dependencies:
glob "~7.1.1"
lodash "~4.17.4"
@@ -2987,32 +3423,39 @@ globule@^1.0.0:
good-listener@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
dependencies:
delegate "^3.1.2"
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+ integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
growl@1.10.3:
version "1.10.3"
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
+ integrity sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
+ integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=
har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
+ integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
+ integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio=
dependencies:
ajv "^4.9.1"
har-schema "^1.0.5"
@@ -3020,6 +3463,7 @@ har-validator@~4.2.1:
har-validator@~5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
dependencies:
ajv "^5.1.0"
har-schema "^2.0.0"
@@ -3027,28 +3471,34 @@ har-validator@~5.0.3:
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
dependencies:
ansi-regex "^2.0.0"
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+ integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
has-flag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
dependencies:
get-value "^2.0.3"
has-values "^0.1.4"
@@ -3057,6 +3507,7 @@ has-value@^0.3.1:
has-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
dependencies:
get-value "^2.0.6"
has-values "^1.0.0"
@@ -3065,10 +3516,12 @@ has-value@^1.0.0:
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
has-values@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
dependencies:
is-number "^3.0.0"
kind-of "^4.0.0"
@@ -3076,18 +3529,21 @@ has-values@^1.0.0:
has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ integrity sha1-hGFzP1OLCDfJNh45qauelwTcLyg=
dependencies:
function-bind "^1.0.2"
hash-base@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
+ integrity sha1-ZuodhW206KVHDK32/OI65SRO8uE=
dependencies:
inherits "^2.0.1"
hash-base@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
@@ -3095,6 +3551,7 @@ hash-base@^3.0.0:
hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
+ integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==
dependencies:
inherits "^2.0.3"
minimalistic-assert "^1.0.0"
@@ -3102,6 +3559,7 @@ hash.js@^1.0.0, hash.js@^1.0.3:
hawk@3.1.3, hawk@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
+ integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=
dependencies:
boom "2.x.x"
cryptiles "2.x.x"
@@ -3111,6 +3569,7 @@ hawk@3.1.3, hawk@~3.1.3:
hawk@~6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==
dependencies:
boom "4.x.x"
cryptiles "3.x.x"
@@ -3120,14 +3579,17 @@ hawk@~6.0.2:
he@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+ integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
hint.css@^2.3.2:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hint.css/-/hint.css-2.5.0.tgz#38cae3667e42d91dfddbe503100ab34932f6fd65"
+ integrity sha1-OMrjZn5C2R392+UDEAqzSTL2/WU=
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
dependencies:
hash.js "^1.0.3"
minimalistic-assert "^1.0.0"
@@ -3136,14 +3598,17 @@ hmac-drbg@^1.0.0:
hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+ integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
hoek@4.x.x:
version "4.2.0"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+ integrity sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
+ integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg=
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
@@ -3151,10 +3616,12 @@ home-or-tmp@^2.0.0:
hosted-git-info@^2.1.4:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+ integrity sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==
hpack.js@^2.1.6:
version "2.1.6"
resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
dependencies:
inherits "^2.0.1"
obuf "^1.0.0"
@@ -3164,18 +3631,22 @@ hpack.js@^2.1.6:
html-comment-regex@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
+ integrity sha1-ZouTd26q5V696POtRkswekljYl4=
html-entities@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
+ integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
http-deceiver@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+ integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
http-errors@1.6.2, http-errors@~1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
+ integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
dependencies:
depd "1.1.1"
inherits "2.0.3"
@@ -3185,10 +3656,12 @@ http-errors@1.6.2, http-errors@~1.6.2:
http-parser-js@>=0.4.0:
version "0.4.10"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
+ integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=
http-proxy-middleware@~0.17.4:
version "0.17.4"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833"
+ integrity sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=
dependencies:
http-proxy "^1.16.2"
is-glob "^3.1.0"
@@ -3198,6 +3671,7 @@ http-proxy-middleware@~0.17.4:
http-proxy@^1.16.2:
version "1.16.2"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742"
+ integrity sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=
dependencies:
eventemitter3 "1.x.x"
requires-port "1.x.x"
@@ -3205,6 +3679,7 @@ http-proxy@^1.16.2:
http-signature@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
+ integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
dependencies:
assert-plus "^0.2.0"
jsprim "^1.2.2"
@@ -3213,6 +3688,7 @@ http-signature@~1.1.0:
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
@@ -3221,48 +3697,58 @@ http-signature@~1.2.0:
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+ integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
iconv-lite@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+ integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
icss-replace-symbols@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+ integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
icss-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+ integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
dependencies:
postcss "^6.0.1"
ieee754@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
+ integrity sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=
iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
ignore@^3.2.0:
version "3.3.7"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
+ integrity sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==
import-cwd@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+ integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
dependencies:
import-from "^2.1.0"
import-from@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
+ integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
dependencies:
resolve-from "^3.0.0"
import-local@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
+ integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==
dependencies:
pkg-dir "^2.0.0"
resolve-cwd "^2.0.0"
@@ -3270,28 +3756,34 @@ import-local@^1.0.0:
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
in-publish@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
+ integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
dependencies:
repeating "^2.0.0"
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+ integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+ integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
@@ -3299,22 +3791,27 @@ inflight@^1.0.4:
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
inherits@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
input-sim@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/input-sim/-/input-sim-3.1.0.tgz#83f9c214f4d6d8c8e9094d3457979591ea88cc2c"
+ integrity sha1-g/nCFPTW2MjpCU00V5eVkeqIzCw=
inquirer@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+ integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=
dependencies:
ansi-escapes "^1.1.0"
ansi-regex "^2.0.0"
@@ -3333,98 +3830,118 @@ inquirer@^0.12.0:
internal-ip@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
+ integrity sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=
dependencies:
meow "^3.3.0"
interpret@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
+ integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=
intl-tel-input@^12.1.15:
version "12.1.15"
resolved "https://registry.yarnpkg.com/intl-tel-input/-/intl-tel-input-12.1.15.tgz#7393e6b77572731bbc65ca4585782e8ba3d74de4"
+ integrity sha512-9TN9x6aGdO1eL6iGFpobuLU4UymZqjSnS9UnsOSi//LU3A8nkLOcokSYBYjak18Uu8OM59HsGYDd1jKmwRsskw==
invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
+ integrity sha1-nh9WrArNtr8wMwbzOL47IErmA2A=
dependencies:
loose-envify "^1.0.0"
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
ipaddr.js@1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0"
+ integrity sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=
is-absolute-url@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+ integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
is-accessor-descriptor@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
dependencies:
kind-of "^3.0.2"
is-accessor-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
dependencies:
kind-of "^6.0.0"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-arrayish@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.1.tgz#c2dfc386abaa0c3e33c48db3fe87059e69065efd"
+ integrity sha1-wt/DhquqDD4zxI2z/ocFnmkGXv0=
is-binary-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
dependencies:
binary-extensions "^1.0.0"
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
dependencies:
builtin-modules "^1.0.0"
is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
+ integrity sha1-hut1OSgF3cM69xySoO7fdO52BLI=
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
dependencies:
kind-of "^3.0.2"
is-data-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
dependencies:
kind-of "^6.0.0"
is-date-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+ integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
is-descriptor@^0.1.0:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
dependencies:
is-accessor-descriptor "^0.1.6"
is-data-descriptor "^0.1.4"
@@ -3433,6 +3950,7 @@ is-descriptor@^0.1.0:
is-descriptor@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
dependencies:
is-accessor-descriptor "^1.0.0"
is-data-descriptor "^1.0.0"
@@ -3441,72 +3959,86 @@ is-descriptor@^1.0.0:
is-directory@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+ integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
is-equal-shallow@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
dependencies:
is-primitive "^2.0.0"
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
is-extglob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+ integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
is-finite@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
dependencies:
is-extglob "^1.0.0"
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
dependencies:
is-extglob "^2.1.0"
is-glob@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+ integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
dependencies:
is-extglob "^2.1.1"
is-my-json-valid@^2.10.0:
version "2.16.1"
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
+ integrity sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==
dependencies:
generate-function "^2.0.0"
generate-object-property "^1.1.0"
@@ -3516,142 +4048,172 @@ is-my-json-valid@^2.10.0:
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
dependencies:
kind-of "^3.0.2"
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
dependencies:
kind-of "^3.0.2"
is-object@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
+ integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA=
is-odd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088"
+ integrity sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=
dependencies:
is-number "^3.0.0"
is-path-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+ integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
is-path-in-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
+ integrity sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=
dependencies:
is-path-inside "^1.0.0"
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
dependencies:
path-is-inside "^1.0.1"
is-plain-obj@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+ integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+ integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
is-primitive@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+ integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
is-property@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+ integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
dependencies:
has "^1.0.1"
is-resolvable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
+ integrity sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=
dependencies:
tryit "^1.0.1"
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
is-svg@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
+ integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=
dependencies:
html-comment-regex "^1.1.0"
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+ integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+ integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
is-wsl@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isnumeric@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/isnumeric/-/isnumeric-0.2.0.tgz#a2347ba360de19e33d0ffd590fddf7755cbf2e64"
+ integrity sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
dependencies:
isarray "1.0.0"
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
jquery@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
+ integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
js-base64@^2.1.8, js-base64@^2.1.9:
version "2.4.0"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.0.tgz#9e566fee624751a1d720c966cd6226d29d4025aa"
+ integrity sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==
js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@^3.12.0, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+ integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -3659,6 +4221,7 @@ js-yaml@^3.12.0, js-yaml@^3.9.0:
js-yaml@^3.5.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ integrity sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -3666,6 +4229,7 @@ js-yaml@^3.5.1:
js-yaml@~3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
+ integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=
dependencies:
argparse "^1.0.7"
esprima "^2.6.0"
@@ -3673,66 +4237,81 @@ js-yaml@~3.7.0:
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+ integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
json-loader@^0.5.4:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
+ integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
json-parse-better-errors@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+ integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
dependencies:
jsonify "~0.0.0"
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
json3@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+ integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
json5@^0.5.0, json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
jsonfile@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
optionalDependencies:
graceful-fs "^4.1.6"
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
jsonpointer@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+ integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
@@ -3742,36 +4321,43 @@ jsprim@^1.2.2:
killable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b"
+ integrity sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
dependencies:
is-buffer "^1.1.5"
kind-of@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
dependencies:
is-buffer "^1.1.5"
kind-of@^5.0.0, kind-of@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
klaw@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
optionalDependencies:
graceful-fs "^4.1.9"
last-call-webpack-plugin@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.2.tgz#ad80c6e310998294d2ed2180a68e9589e4768c44"
+ integrity sha512-CZc+m2xZm51J8qSwdODeiiNeqh8CYkKEq6Rw8IkE4i/4yqf2cJhjQPsA6BtAV970ePRNhwEOXhy2U5xc5Jwh9Q==
dependencies:
lodash "^4.17.4"
webpack-sources "^1.0.1"
@@ -3779,22 +4365,26 @@ last-call-webpack-plugin@^2.1.2:
lazy-cache@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+ integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
lazy-cache@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
+ integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=
dependencies:
set-getter "^0.1.0"
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
dependencies:
invert-kv "^1.0.0"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
@@ -3802,6 +4392,7 @@ levn@^0.3.0, levn@~0.3.0:
libphonenumber-js@^0.4.23:
version "0.4.43"
resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-0.4.43.tgz#3415e1756a23d5f0a79985ae64a8647905b059cc"
+ integrity sha512-HIu7yu9RkgU2/9GirXAiFv1KvO2UsFakB0nz5uqRLTlMbAT8lHeKb5y+XT1Os5jJ0LUem0lUsq29H3OFsoed3A==
dependencies:
babel-runtime "^6.6.1"
bluebird "^3.4.6"
@@ -3811,6 +4402,7 @@ libphonenumber-js@^0.4.23:
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
@@ -3821,6 +4413,7 @@ load-json-file@^1.0.0:
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
@@ -3830,10 +4423,12 @@ load-json-file@^2.0.0:
loader-runner@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
+ integrity sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=
loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+ integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=
dependencies:
big.js "^3.1.3"
emojis-list "^2.0.0"
@@ -3842,6 +4437,7 @@ loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0:
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
@@ -3849,38 +4445,47 @@ locate-path@^2.0.0:
lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash.assign@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+ integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
lodash.clonedeep@^4.3.2:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+ integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
lodash.cond@^4.3.0:
version "4.5.2"
resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
+ integrity sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
lodash.mergewith@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
+ integrity sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=
lodash.tail@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
+ integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
lodash.template@^4.2.4:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
+ integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=
dependencies:
lodash._reinterpolate "~3.0.0"
lodash.templatesettings "^4.0.0"
@@ -3888,46 +4493,56 @@ lodash.template@^4.2.4:
lodash.templatesettings@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
+ integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=
dependencies:
lodash._reinterpolate "~3.0.0"
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@3.x:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
+ integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+ integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=
lodash@^4.17.2:
version "4.17.5"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+ integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
+ integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
lolex@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31"
+ integrity sha1-fD2mL/yzDw9agKJWbKJORdigHzE=
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+ integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
loose-envify@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ integrity sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=
dependencies:
js-tokens "^3.0.0"
loud-rejection@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
dependencies:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
@@ -3935,6 +4550,7 @@ loud-rejection@^1.0.0:
lru-cache@^4.0.1, lru-cache@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
+ integrity sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
@@ -3942,34 +4558,41 @@ lru-cache@^4.0.1, lru-cache@^4.1.1:
macaddress@^0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
+ integrity sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=
make-dir@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
+ integrity sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==
dependencies:
pify "^3.0.0"
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+ integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
dependencies:
object-visit "^1.0.0"
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
+ integrity sha1-3oGf282E3M2PrlnGrreWFbnSZqw=
md5.js@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
+ integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0=
dependencies:
hash-base "^3.0.0"
inherits "^2.0.1"
@@ -3977,16 +4600,19 @@ md5.js@^1.3.4:
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
mem@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
dependencies:
mimic-fn "^1.0.0"
memory-fs@^0.4.0, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
dependencies:
errno "^0.1.3"
readable-stream "^2.0.1"
@@ -3994,6 +4620,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
meow@^3.3.0, meow@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
dependencies:
camelcase-keys "^2.0.0"
decamelize "^1.1.2"
@@ -4009,14 +4636,17 @@ meow@^3.3.0, meow@^3.7.0:
merge-descriptors@1.0.1, merge-descriptors@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
micromatch@^2.1.5, micromatch@^2.3.11:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
dependencies:
arr-diff "^2.0.0"
array-unique "^0.2.1"
@@ -4035,6 +4665,7 @@ micromatch@^2.1.5, micromatch@^2.3.11:
micromatch@^3.1.4:
version "3.1.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba"
+ integrity sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
@@ -4053,6 +4684,7 @@ micromatch@^3.1.4:
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
dependencies:
bn.js "^4.0.0"
brorand "^1.0.1"
@@ -4060,58 +4692,71 @@ miller-rabin@^4.0.0:
"mime-db@>= 1.30.0 < 2":
version "1.32.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.32.0.tgz#485b3848b01a3cda5f968b4882c0771e58e09414"
+ integrity sha512-+ZWo/xZN40Tt6S+HyakUxnSOgff+JEdaneLWIm0Z6LmpCn5DMcZntLyUY5c/rTDog28LhXLKOUZKoTxTCAdBVw==
mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+ integrity sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=
mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7:
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ integrity sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=
dependencies:
mime-db "~1.30.0"
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
+ integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
mime@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+ integrity sha1-5md4PZLonb00KBi1IwudYqZyrRg=
minimalistic-assert@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
+ integrity sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
mississippi@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e"
+ integrity sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
@@ -4127,6 +4772,7 @@ mississippi@^1.3.0:
mississippi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
@@ -4142,6 +4788,7 @@ mississippi@^2.0.0:
mixin-deep@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
@@ -4149,6 +4796,7 @@ mixin-deep@^1.2.0:
mixin-object@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
+ integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
dependencies:
for-in "^0.1.3"
is-extendable "^0.1.1"
@@ -4156,12 +4804,14 @@ mixin-object@^2.0.1:
mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
mocha@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.0.1.tgz#0aee5a95cf69a4618820f5e51fa31717117daf1b"
+ integrity sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==
dependencies:
browser-stdout "1.3.0"
commander "2.11.0"
@@ -4177,10 +4827,12 @@ mocha@^4.0.1:
module-not-found-error@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0"
+ integrity sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
dependencies:
aproba "^1.1.1"
copy-concurrently "^1.0.0"
@@ -4192,14 +4844,17 @@ move-concurrently@^1.0.1:
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
multicast-dns-service-types@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+ integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
multicast-dns@^6.0.1:
version "6.2.3"
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+ integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
dependencies:
dns-packet "^1.3.1"
thunky "^1.0.2"
@@ -4207,18 +4862,22 @@ multicast-dns@^6.0.1:
mute-stream@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+ integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=
nan@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
+ integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==
nan@^2.3.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
+ integrity sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=
nanomatch@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79"
+ integrity sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
@@ -4235,22 +4894,27 @@ nanomatch@^1.2.5:
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+ integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
neo-async@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee"
+ integrity sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==
node-forge@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300"
+ integrity sha1-naYR6giYL0uUIGs760zJZl8gwwA=
node-gyp@^3.3.1:
version "3.6.2"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
+ integrity sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
@@ -4269,6 +4933,7 @@ node-gyp@^3.3.1:
node-libs-browser@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
+ integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==
dependencies:
assert "^1.1.1"
browserify-zlib "^0.2.0"
@@ -4297,6 +4962,7 @@ node-libs-browser@^2.0.0:
node-pre-gyp@^0.6.39:
version "0.6.39"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
+ integrity sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==
dependencies:
detect-libc "^1.0.2"
hawk "3.1.3"
@@ -4313,6 +4979,7 @@ node-pre-gyp@^0.6.39:
node-sass@^4.9.2:
version "4.9.2"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437"
+ integrity sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
@@ -4337,12 +5004,14 @@ node-sass@^4.9.2:
"nopt@2 || 3":
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
dependencies:
abbrev "1"
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
dependencies:
abbrev "1"
osenv "^0.1.4"
@@ -4350,6 +5019,7 @@ nopt@^4.0.1:
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
@@ -4359,16 +5029,19 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
dependencies:
remove-trailing-separator "^1.0.1"
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
normalize-url@^1.4.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
dependencies:
object-assign "^4.0.1"
prepend-http "^1.0.0"
@@ -4378,16 +5051,19 @@ normalize-url@^1.4.0:
normalize.css@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-4.2.0.tgz#21d66cc557154d4379fd1e079ec7de58a379b099"
+ integrity sha1-IdZsxVcVTUN5/R4HnsfeWKN5sJk=
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
dependencies:
path-key "^2.0.0"
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
@@ -4397,22 +5073,27 @@ npm-run-path@^2.0.0:
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+ integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
dependencies:
copy-descriptor "^0.1.0"
define-property "^0.2.5"
@@ -4421,16 +5102,19 @@ object-copy@^0.1.0:
object-keys@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+ integrity sha1-xUYBd4rVYPEULODgG8yotW0TQm0=
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
dependencies:
isobject "^3.0.0"
object.omit@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
dependencies:
for-own "^0.1.4"
is-extendable "^0.1.1"
@@ -4438,46 +5122,55 @@ object.omit@^2.0.0:
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
dependencies:
isobject "^3.0.1"
obuf@^1.0.0, obuf@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e"
+ integrity sha1-EEEktsYCxnlogaBCVB0220OlJk4=
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
dependencies:
ee-first "1.1.1"
on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
+ integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
onecolor@^3.0.4:
version "3.0.5"
resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.5.tgz#36eff32201379efdf1180fb445e51a8e2425f9f6"
+ integrity sha1-Nu/zIgE3nv3xGA+0ReUajiQl+fY=
onetime@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+ integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
opn@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225"
+ integrity sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==
dependencies:
is-wsl "^1.1.0"
optimist@>=0.1.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
@@ -4485,6 +5178,7 @@ optimist@>=0.1.0:
optimize-css-assets-webpack-plugin@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-3.2.0.tgz#09a40c4cefde1dd0142444a873c56aa29eb18e6f"
+ integrity sha512-Fjn7wyyadPAriuH2DHamDQw5B8GohEWbroBkKoPeP+vSF2PIAPI7WDihi8WieMRb/At4q7Ea7zTKaMDuSoIAAg==
dependencies:
cssnano "^3.4.0"
last-call-webpack-plugin "^2.1.2"
@@ -4492,6 +5186,7 @@ optimize-css-assets-webpack-plugin@^3.2.0:
optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
@@ -4503,26 +5198,31 @@ optionator@^0.8.2:
original@>=0.0.5:
version "1.0.0"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
+ integrity sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=
dependencies:
url-parse "1.0.x"
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+ integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
os-locale@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+ integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
dependencies:
lcid "^1.0.0"
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
dependencies:
execa "^0.7.0"
lcid "^1.0.0"
@@ -4531,10 +5231,12 @@ os-locale@^2.0.0:
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
osenv@0, osenv@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
+ integrity sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
@@ -4542,28 +5244,34 @@ osenv@0, osenv@^0.1.4:
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
p-limit@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+ integrity sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
dependencies:
p-limit "^1.1.0"
p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+ integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
pako@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
+ integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==
parallel-transform@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+ integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
dependencies:
cyclist "~0.2.2"
inherits "^2.0.3"
@@ -4572,6 +5280,7 @@ parallel-transform@^1.1.0:
parse-asn1@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
+ integrity sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=
dependencies:
asn1.js "^4.0.0"
browserify-aes "^1.0.0"
@@ -4582,6 +5291,7 @@ parse-asn1@^5.0.0:
parse-glob@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
dependencies:
glob-base "^0.3.0"
is-dotfile "^1.0.0"
@@ -4591,12 +5301,14 @@ parse-glob@^3.0.4:
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
dependencies:
error-ex "^1.2.0"
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
dependencies:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
@@ -4604,56 +5316,69 @@ parse-json@^4.0.0:
parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+ integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
path-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
+ integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=
path-complete-extname@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b"
+ integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg==
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
dependencies:
pinkie-promise "^2.0.0"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
path-key@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+ integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
dependencies:
graceful-fs "^4.1.2"
pify "^2.0.0"
@@ -4662,12 +5387,14 @@ path-type@^1.0.0:
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
dependencies:
pify "^2.0.0"
pbkdf2@^3.0.3:
version "3.0.14"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
+ integrity sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
@@ -4678,32 +5405,39 @@ pbkdf2@^3.0.3:
performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
+ integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
dependencies:
pinkie "^2.0.0"
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
pixrem@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-4.0.1.tgz#2da4a1de6ec4423c5fc3794e930b81d4490ec686"
+ integrity sha1-LaSh3m7EQjxfw3lOkwuB1EkOxoY=
dependencies:
browserslist "^2.0.0"
postcss "^6.0.0"
@@ -4712,18 +5446,21 @@ pixrem@^4.0.0:
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
dependencies:
find-up "^1.0.0"
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
dependencies:
find-up "^2.1.0"
pleeease-filters@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-4.0.0.tgz#6632b2fb05648d2758d865384fbced79e1ccaec7"
+ integrity sha1-ZjKy+wVkjSdY2GU4T7zteeHMrsc=
dependencies:
onecolor "^3.0.4"
postcss "^6.0.1"
@@ -4731,10 +5468,12 @@ pleeease-filters@^4.0.0:
pluralize@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+ integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=
portfinder@^1.0.9:
version "1.0.13"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9"
+ integrity sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=
dependencies:
async "^1.5.2"
debug "^2.2.0"
@@ -4743,10 +5482,12 @@ portfinder@^1.0.9:
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss-apply@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.8.0.tgz#14e544bbb5cb6f1c1e048857965d79ae066b1343"
+ integrity sha1-FOVEu7XLbxweBIhXll15rgZrE0M=
dependencies:
babel-runtime "^6.23.0"
balanced-match "^0.4.2"
@@ -4755,6 +5496,7 @@ postcss-apply@^0.8.0:
postcss-attribute-case-insensitive@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz#94dc422c8f90997f16bd33a3654bbbec084963b4"
+ integrity sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=
dependencies:
postcss "^6.0.0"
postcss-selector-parser "^2.2.3"
@@ -4762,6 +5504,7 @@ postcss-attribute-case-insensitive@^2.0.0:
postcss-calc@^5.2.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
+ integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14=
dependencies:
postcss "^5.0.2"
postcss-message-helpers "^2.0.0"
@@ -4770,6 +5513,7 @@ postcss-calc@^5.2.0:
postcss-calc@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.1.tgz#3d24171bbf6e7629d422a436ebfe6dd9511f4330"
+ integrity sha1-PSQXG79udinUIqQ26/5t2VEfQzA=
dependencies:
css-unit-converter "^1.1.1"
postcss "^6.0.0"
@@ -4779,6 +5523,7 @@ postcss-calc@^6.0.0:
postcss-color-function@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-4.0.1.tgz#402b3f2cebc3f6947e618fb6be3654fbecef6444"
+ integrity sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ=
dependencies:
css-color-function "~1.3.3"
postcss "^6.0.1"
@@ -4788,6 +5533,7 @@ postcss-color-function@^4.0.0:
postcss-color-gray@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-4.0.0.tgz#681bf305097dd66bfef0e1e6282d5d99b5acc95d"
+ integrity sha1-aBvzBQl91mv+8OHmKC1dmbWsyV0=
dependencies:
color "^1.0.3"
postcss "^6.0.1"
@@ -4797,6 +5543,7 @@ postcss-color-gray@^4.0.0:
postcss-color-hex-alpha@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz#1e53e6c8acb237955e8fd08b7ecdb1b8b8309f95"
+ integrity sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=
dependencies:
color "^1.0.3"
postcss "^6.0.1"
@@ -4805,6 +5552,7 @@ postcss-color-hex-alpha@^3.0.0:
postcss-color-hsl@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz#12703666fa310430e3f30a454dac1386317d5844"
+ integrity sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ=
dependencies:
postcss "^6.0.1"
postcss-value-parser "^3.3.0"
@@ -4813,6 +5561,7 @@ postcss-color-hsl@^2.0.0:
postcss-color-hwb@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz#3402b19ef4d8497540c1fb5072be9863ca95571e"
+ integrity sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4=
dependencies:
color "^1.0.3"
postcss "^6.0.1"
@@ -4822,6 +5571,7 @@ postcss-color-hwb@^3.0.0:
postcss-color-rebeccapurple@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.0.0.tgz#eebaf03d363b4300b96792bd3081c19ed66513d3"
+ integrity sha1-7rrwPTY7QwC5Z5K9MIHBntZlE9M=
dependencies:
postcss "^6.0.1"
postcss-value-parser "^3.3.0"
@@ -4829,6 +5579,7 @@ postcss-color-rebeccapurple@^3.0.0:
postcss-color-rgb@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz#14539c8a7131494b482e0dd1cc265ff6514b5263"
+ integrity sha1-FFOcinExSUtILg3RzCZf9lFLUmM=
dependencies:
postcss "^6.0.1"
postcss-value-parser "^3.3.0"
@@ -4836,6 +5587,7 @@ postcss-color-rgb@^2.0.0:
postcss-color-rgba-fallback@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz#37d5c9353a07a09270912a82606bb42a0d702c04"
+ integrity sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=
dependencies:
postcss "^6.0.6"
postcss-value-parser "^3.3.0"
@@ -4844,6 +5596,7 @@ postcss-color-rgba-fallback@^3.0.0:
postcss-colormin@^2.1.8:
version "2.2.2"
resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
+ integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=
dependencies:
colormin "^1.0.5"
postcss "^5.0.13"
@@ -4852,6 +5605,7 @@ postcss-colormin@^2.1.8:
postcss-convert-values@^2.3.4:
version "2.6.1"
resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
+ integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=
dependencies:
postcss "^5.0.11"
postcss-value-parser "^3.1.2"
@@ -4859,6 +5613,7 @@ postcss-convert-values@^2.3.4:
postcss-cssnext@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz#927dc29341a938254cde38ea60a923b9dfedead9"
+ integrity sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA==
dependencies:
autoprefixer "^7.1.1"
caniuse-api "^2.0.0"
@@ -4895,12 +5650,14 @@ postcss-cssnext@^3.1.0:
postcss-custom-media@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz#be532784110ecb295044fb5395a18006eb21a737"
+ integrity sha1-vlMnhBEOyylQRPtTlaGABushpzc=
dependencies:
postcss "^6.0.1"
postcss-custom-properties@^6.1.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-6.2.0.tgz#5d929a7f06e9b84e0f11334194c0ba9a30acfbe9"
+ integrity sha512-eNR2h9T9ciKMoQEORrPjH33XeN/nuvVuxArOKmHtsFbGbNss631tgTrKou3/pmjAZbA4QQkhLIkPQkIk3WW+8w==
dependencies:
balanced-match "^1.0.0"
postcss "^6.0.13"
@@ -4908,6 +5665,7 @@ postcss-custom-properties@^6.1.0:
postcss-custom-selectors@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz#781382f94c52e727ef5ca4776ea2adf49a611382"
+ integrity sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=
dependencies:
postcss "^6.0.1"
postcss-selector-matches "^3.0.0"
@@ -4915,30 +5673,35 @@ postcss-custom-selectors@^4.0.1:
postcss-discard-comments@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
+ integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=
dependencies:
postcss "^5.0.14"
postcss-discard-duplicates@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
+ integrity sha1-uavye4isGIFYpesSq8riAmO5GTI=
dependencies:
postcss "^5.0.4"
postcss-discard-empty@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
+ integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=
dependencies:
postcss "^5.0.14"
postcss-discard-overridden@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
+ integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=
dependencies:
postcss "^5.0.16"
postcss-discard-unused@^2.2.1:
version "2.2.3"
resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
+ integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=
dependencies:
postcss "^5.0.14"
uniqs "^2.0.0"
@@ -4946,6 +5709,7 @@ postcss-discard-unused@^2.2.1:
postcss-filter-plugins@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c"
+ integrity sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=
dependencies:
postcss "^5.0.4"
uniqid "^4.0.0"
@@ -4953,18 +5717,21 @@ postcss-filter-plugins@^2.0.0:
postcss-font-family-system-ui@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz#675fe7a9e029669f05f8dba2e44c2225ede80623"
+ integrity sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==
dependencies:
postcss "^6.0"
postcss-font-variant@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz#08ccc88f6050ba82ed8ef2cc76c0c6a6b41f183e"
+ integrity sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=
dependencies:
postcss "^6.0.1"
postcss-image-set-polyfill@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181"
+ integrity sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=
dependencies:
postcss "^6.0.1"
postcss-media-query-parser "^0.2.3"
@@ -4972,6 +5739,7 @@ postcss-image-set-polyfill@^0.3.5:
postcss-import@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0"
+ integrity sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==
dependencies:
postcss "^6.0.1"
postcss-value-parser "^3.2.3"
@@ -4981,6 +5749,7 @@ postcss-import@^11.1.0:
postcss-initial@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-2.0.0.tgz#72715f7336e0bb79351d99ee65c4a253a8441ba4"
+ integrity sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=
dependencies:
lodash.template "^4.2.4"
postcss "^6.0.1"
@@ -4988,6 +5757,7 @@ postcss-initial@^2.0.0:
postcss-load-config@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484"
+ integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==
dependencies:
cosmiconfig "^4.0.0"
import-cwd "^2.0.0"
@@ -4995,6 +5765,7 @@ postcss-load-config@^2.0.0:
postcss-loader@^2.1.5:
version "2.1.6"
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740"
+ integrity sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==
dependencies:
loader-utils "^1.1.0"
postcss "^6.0.0"
@@ -5004,16 +5775,19 @@ postcss-loader@^2.1.5:
postcss-media-minmax@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz#675256037a43ef40bc4f0760bfd06d4dc69d48d2"
+ integrity sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI=
dependencies:
postcss "^6.0.1"
postcss-media-query-parser@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
+ integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
postcss-merge-idents@^2.1.5:
version "2.1.7"
resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
+ integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=
dependencies:
has "^1.0.1"
postcss "^5.0.10"
@@ -5022,12 +5796,14 @@ postcss-merge-idents@^2.1.5:
postcss-merge-longhand@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
+ integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=
dependencies:
postcss "^5.0.4"
postcss-merge-rules@^2.0.3:
version "2.1.2"
resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
+ integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE=
dependencies:
browserslist "^1.5.2"
caniuse-api "^1.5.2"
@@ -5038,10 +5814,12 @@ postcss-merge-rules@^2.0.3:
postcss-message-helpers@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
+ integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=
postcss-minify-font-values@^1.0.2:
version "1.0.5"
resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
+ integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k=
dependencies:
object-assign "^4.0.1"
postcss "^5.0.4"
@@ -5050,6 +5828,7 @@ postcss-minify-font-values@^1.0.2:
postcss-minify-gradients@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
+ integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=
dependencies:
postcss "^5.0.12"
postcss-value-parser "^3.3.0"
@@ -5057,6 +5836,7 @@ postcss-minify-gradients@^1.0.1:
postcss-minify-params@^1.0.4:
version "1.2.2"
resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
+ integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=
dependencies:
alphanum-sort "^1.0.1"
postcss "^5.0.2"
@@ -5066,6 +5846,7 @@ postcss-minify-params@^1.0.4:
postcss-minify-selectors@^2.0.4:
version "2.1.1"
resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
+ integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8=
dependencies:
alphanum-sort "^1.0.2"
has "^1.0.1"
@@ -5075,12 +5856,14 @@ postcss-minify-selectors@^2.0.4:
postcss-modules-extract-imports@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
+ integrity sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=
dependencies:
postcss "^6.0.1"
postcss-modules-local-by-default@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+ integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
dependencies:
css-selector-tokenizer "^0.7.0"
postcss "^6.0.1"
@@ -5088,6 +5871,7 @@ postcss-modules-local-by-default@^1.2.0:
postcss-modules-scope@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+ integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
dependencies:
css-selector-tokenizer "^0.7.0"
postcss "^6.0.1"
@@ -5095,6 +5879,7 @@ postcss-modules-scope@^1.1.0:
postcss-modules-values@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+ integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
dependencies:
icss-replace-symbols "^1.1.0"
postcss "^6.0.1"
@@ -5102,18 +5887,21 @@ postcss-modules-values@^1.3.0:
postcss-nesting@^4.0.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-4.2.1.tgz#0483bce338b3f0828ced90ff530b29b98b00300d"
+ integrity sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA==
dependencies:
postcss "^6.0.11"
postcss-normalize-charset@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
+ integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E=
dependencies:
postcss "^5.0.5"
postcss-normalize-url@^3.0.7:
version "3.0.8"
resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
+ integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI=
dependencies:
is-absolute-url "^2.0.0"
normalize-url "^1.4.0"
@@ -5123,6 +5911,7 @@ postcss-normalize-url@^3.0.7:
postcss-ordered-values@^2.1.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
+ integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=
dependencies:
postcss "^5.0.4"
postcss-value-parser "^3.0.1"
@@ -5130,6 +5919,7 @@ postcss-ordered-values@^2.1.0:
postcss-pseudo-class-any-link@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz#9152a0613d3450720513e8892854bae42d0ee68e"
+ integrity sha1-kVKgYT00UHIFE+iJKFS65C0O5o4=
dependencies:
postcss "^6.0.1"
postcss-selector-parser "^2.2.3"
@@ -5137,12 +5927,14 @@ postcss-pseudo-class-any-link@^4.0.0:
postcss-pseudoelements@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-5.0.0.tgz#eef194e8d524645ca520a949e95e518e812402cb"
+ integrity sha1-7vGU6NUkZFylIKlJ6V5RjoEkAss=
dependencies:
postcss "^6.0.0"
postcss-reduce-idents@^2.2.2:
version "2.4.0"
resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
+ integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=
dependencies:
postcss "^5.0.4"
postcss-value-parser "^3.0.2"
@@ -5150,12 +5942,14 @@ postcss-reduce-idents@^2.2.2:
postcss-reduce-initial@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
+ integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=
dependencies:
postcss "^5.0.4"
postcss-reduce-transforms@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
+ integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=
dependencies:
has "^1.0.1"
postcss "^5.0.8"
@@ -5164,12 +5958,14 @@ postcss-reduce-transforms@^1.0.3:
postcss-replace-overflow-wrap@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz#794db6faa54f8db100854392a93af45768b4e25b"
+ integrity sha1-eU22+qVPjbEAhUOSqTr0V2i04ls=
dependencies:
postcss "^6.0.1"
postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz#e5634011e13950881861bbdd58c2d0111ffc96ab"
+ integrity sha1-5WNAEeE5UIgYYbvdWMLQER/8lqs=
dependencies:
balanced-match "^0.4.2"
postcss "^6.0.1"
@@ -5177,6 +5973,7 @@ postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1:
postcss-selector-not@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz#2e4db2f0965336c01e7cec7db6c60dff767335d9"
+ integrity sha1-Lk2y8JZTNsAefOx9tsYN/3ZzNdk=
dependencies:
balanced-match "^0.4.2"
postcss "^6.0.1"
@@ -5184,6 +5981,7 @@ postcss-selector-not@^3.0.1:
postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2, postcss-selector-parser@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
+ integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=
dependencies:
flatten "^1.0.2"
indexes-of "^1.0.1"
@@ -5192,6 +5990,7 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2, postcss-selector
postcss-svgo@^2.1.1:
version "2.1.6"
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
+ integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=
dependencies:
is-svg "^2.0.0"
postcss "^5.0.14"
@@ -5201,6 +6000,7 @@ postcss-svgo@^2.1.1:
postcss-unique-selectors@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
+ integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=
dependencies:
alphanum-sort "^1.0.1"
postcss "^5.0.4"
@@ -5209,10 +6009,12 @@ postcss-unique-selectors@^2.0.2:
postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
+ integrity sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=
postcss-zindex@^2.0.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
+ integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=
dependencies:
has "^1.0.1"
postcss "^5.0.4"
@@ -5221,6 +6023,7 @@ postcss-zindex@^2.0.1:
postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
version "5.2.18"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
+ integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
dependencies:
chalk "^1.1.3"
js-base64 "^2.1.9"
@@ -5230,6 +6033,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0
postcss@^6.0:
version "6.0.17"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5"
+ integrity sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==
dependencies:
chalk "^2.3.0"
source-map "^0.6.1"
@@ -5238,6 +6042,7 @@ postcss@^6.0:
postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.13, postcss@^6.0.14, postcss@^6.0.5, postcss@^6.0.6:
version "6.0.14"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.14.tgz#5534c72114739e75d0afcf017db853099f562885"
+ integrity sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==
dependencies:
chalk "^2.3.0"
source-map "^0.6.1"
@@ -5246,42 +6051,52 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.13, postcss@^6.0.1
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
prepend-http@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+ integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+ integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
private@^0.1.6, private@^0.1.7, private@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+ integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+ integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
progress@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+ integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
proxy-addr@~2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
+ integrity sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=
dependencies:
forwarded "~0.1.2"
ipaddr.js "1.5.2"
@@ -5289,6 +6104,7 @@ proxy-addr@~2.0.2:
proxyquire@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz#02d514a5bed986f04cbb2093af16741535f79edc"
+ integrity sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=
dependencies:
fill-keys "^1.0.2"
module-not-found-error "^1.0.0"
@@ -5297,18 +6113,22 @@ proxyquire@^1.8.0:
prr@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+ integrity sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=
prr@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+ integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
public-encrypt@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
+ integrity sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=
dependencies:
bn.js "^4.1.0"
browserify-rsa "^4.0.0"
@@ -5319,6 +6139,7 @@ public-encrypt@^4.0.0:
pump@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
+ integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
@@ -5326,6 +6147,7 @@ pump@^1.0.0:
pump@^2.0.0, pump@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
@@ -5333,6 +6155,7 @@ pump@^2.0.0, pump@^2.0.1:
pumpify@^1.3.3:
version "1.4.0"
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb"
+ integrity sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==
dependencies:
duplexify "^3.5.3"
inherits "^2.0.3"
@@ -5341,26 +6164,32 @@ pumpify@^1.3.3:
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+ integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
q@^1.1.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
qs@6.5.1, qs@~6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+ integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
+ integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=
query-string@^4.1.0:
version "4.3.4"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
dependencies:
object-assign "^4.1.0"
strict-uri-encode "^1.0.0"
@@ -5368,22 +6197,27 @@ query-string@^4.1.0:
querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+ integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+ integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
querystringify@0.0.x:
version "0.0.4"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"
+ integrity sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=
querystringify@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
+ integrity sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=
randomatic@^1.1.3:
version "1.1.7"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
+ integrity sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==
dependencies:
is-number "^3.0.0"
kind-of "^4.0.0"
@@ -5391,12 +6225,14 @@ randomatic@^1.1.3:
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79"
+ integrity sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==
dependencies:
safe-buffer "^5.1.0"
randomfill@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62"
+ integrity sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==
dependencies:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
@@ -5404,10 +6240,12 @@ randomfill@^1.0.3:
range-parser@^1.0.3, range-parser@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+ integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+ integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
dependencies:
bytes "3.0.0"
http-errors "1.6.2"
@@ -5417,6 +6255,7 @@ raw-body@2.3.2:
rc@^1.1.7:
version "1.2.2"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077"
+ integrity sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=
dependencies:
deep-extend "~0.4.0"
ini "~1.3.0"
@@ -5426,12 +6265,14 @@ rc@^1.1.7:
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
dependencies:
pify "^2.3.0"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
dependencies:
find-up "^1.0.0"
read-pkg "^1.0.0"
@@ -5439,6 +6280,7 @@ read-pkg-up@^1.0.1:
read-pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
dependencies:
find-up "^2.0.0"
read-pkg "^2.0.0"
@@ -5446,6 +6288,7 @@ read-pkg-up@^2.0.0:
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
dependencies:
load-json-file "^1.0.0"
normalize-package-data "^2.3.2"
@@ -5454,6 +6297,7 @@ read-pkg@^1.0.0:
read-pkg@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
dependencies:
load-json-file "^2.0.0"
normalize-package-data "^2.3.2"
@@ -5462,6 +6306,7 @@ read-pkg@^2.0.0:
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.1.5, readable-stream@^2.2.9:
version "2.3.4"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
+ integrity sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -5474,6 +6319,7 @@ read-pkg@^2.0.0:
readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
+ integrity sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -5486,6 +6332,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable
readdirp@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
+ integrity sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=
dependencies:
graceful-fs "^4.1.2"
minimatch "^3.0.2"
@@ -5495,6 +6342,7 @@ readdirp@^2.0.0:
readline2@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
+ integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
@@ -5503,12 +6351,14 @@ readline2@^1.0.1:
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
dependencies:
resolve "^1.1.6"
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
dependencies:
indent-string "^2.1.0"
strip-indent "^1.0.1"
@@ -5516,6 +6366,7 @@ redent@^1.0.0:
reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
+ integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=
dependencies:
balanced-match "^0.4.2"
math-expression-evaluator "^1.2.14"
@@ -5524,6 +6375,7 @@ reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7:
reduce-css-calc@^2.0.0:
version "2.1.3"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.3.tgz#63c4c6325ffbbf4ea6c23f1d4deb47c3953f3b81"
+ integrity sha1-Y8TGMl/7v06mwj8dTetHw5U/O4E=
dependencies:
css-unit-converter "^1.1.1"
postcss-value-parser "^3.3.0"
@@ -5531,24 +6383,29 @@ reduce-css-calc@^2.0.0:
reduce-function-call@^1.0.1, reduce-function-call@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99"
+ integrity sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=
dependencies:
balanced-match "^0.4.2"
regenerate@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
+ integrity sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==
regenerator-runtime@^0.10.5:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+ integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=
regenerator-runtime@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
+ integrity sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==
regenerator-transform@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
+ integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==
dependencies:
babel-runtime "^6.18.0"
babel-types "^6.19.0"
@@ -5557,18 +6414,21 @@ regenerator-transform@^0.10.0:
regex-cache@^0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
dependencies:
is-equal-shallow "^0.1.3"
regex-not@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9"
+ integrity sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=
dependencies:
extend-shallow "^2.0.1"
regexpu-core@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
+ integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
dependencies:
regenerate "^1.2.1"
regjsgen "^0.2.0"
@@ -5577,6 +6437,7 @@ regexpu-core@^1.0.0:
regexpu-core@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
+ integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=
dependencies:
regenerate "^1.2.1"
regjsgen "^0.2.0"
@@ -5585,34 +6446,41 @@ regexpu-core@^2.0.0:
regjsgen@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
+ integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
regjsparser@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
+ integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
dependencies:
jsesc "~0.5.0"
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
repeat-element@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+ integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=
repeat-string@^1.5.2, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
repeating@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
dependencies:
is-finite "^1.0.0"
request@2:
version "2.83.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ integrity sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
@@ -5640,6 +6508,7 @@ request@2:
request@2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
+ integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
@@ -5667,6 +6536,7 @@ request@2.81.0:
request@2.87.0:
version "2.87.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
+ integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
@@ -5692,18 +6562,22 @@ request@2.87.0:
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
require-from-string@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
require-uncached@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
dependencies:
caller-path "^0.1.0"
resolve-from "^1.0.0"
@@ -5711,38 +6585,46 @@ require-uncached@^1.0.2:
requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
resolve-cwd@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
dependencies:
resolve-from "^3.0.0"
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+ integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
+ integrity sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==
dependencies:
path-parse "^1.0.5"
resolve@~1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+ integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
restore-cursor@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=
dependencies:
exit-hook "^1.0.0"
onetime "^1.0.0"
@@ -5750,26 +6632,31 @@ restore-cursor@^1.0.1:
rgb-hex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-2.1.0.tgz#c773c5fe2268a25578d92539a82a7a5ce53beda6"
+ integrity sha1-x3PF/iJoolV42SU5qCp6XOU77aY=
rgb@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5"
+ integrity sha1-vieykej+/+rBvZlylyG/pA/AN7U=
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
dependencies:
align-text "^0.1.1"
rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
dependencies:
glob "^7.0.5"
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
+ integrity sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=
dependencies:
hash-base "^2.0.0"
inherits "^2.0.1"
@@ -5777,34 +6664,41 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
run-async@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+ integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=
dependencies:
once "^1.3.0"
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
dependencies:
aproba "^1.1.1"
rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+ integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+ integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
samsam@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567"
+ integrity sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=
samsam@~1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621"
+ integrity sha1-n1CHQZtNCR8jJXHn+lLpCw9VJiE=
sass-graph@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
+ integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
dependencies:
glob "^7.0.0"
lodash "^4.0.0"
@@ -5814,6 +6708,7 @@ sass-graph@^2.2.4:
sass-loader@^6.0.7:
version "6.0.7"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00"
+ integrity sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==
dependencies:
clone-deep "^2.0.1"
loader-utils "^1.0.1"
@@ -5824,16 +6719,19 @@ sass-loader@^6.0.7:
sax@>=0.6.0, sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
schema-utils@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
+ integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=
dependencies:
ajv "^5.0.0"
schema-utils@^0.4.0:
version "0.4.3"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e"
+ integrity sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==
dependencies:
ajv "^5.0.0"
ajv-keywords "^2.1.0"
@@ -5841,6 +6739,7 @@ schema-utils@^0.4.0:
schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
+ integrity sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==
dependencies:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
@@ -5848,6 +6747,7 @@ schema-utils@^0.4.5:
scss-tokenizer@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
+ integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE=
dependencies:
js-base64 "^2.1.8"
source-map "^0.4.2"
@@ -5855,28 +6755,34 @@ scss-tokenizer@^0.2.3:
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+ integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
select@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+ integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
selfsigned@^1.9.1:
version "1.10.2"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758"
+ integrity sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=
dependencies:
node-forge "0.7.1"
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
+ integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+ integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
send@0.16.1:
version "0.16.1"
resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
+ integrity sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==
dependencies:
debug "2.6.9"
depd "~1.1.1"
@@ -5895,10 +6801,12 @@ send@0.16.1:
serialize-javascript@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005"
+ integrity sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=
serve-index@^1.7.2:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
dependencies:
accepts "~1.3.4"
batch "0.6.1"
@@ -5911,6 +6819,7 @@ serve-index@^1.7.2:
serve-static@1.13.1:
version "1.13.1"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
+ integrity sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==
dependencies:
encodeurl "~1.0.1"
escape-html "~1.0.3"
@@ -5920,20 +6829,24 @@ serve-static@1.13.1:
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
set-getter@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376"
+ integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=
dependencies:
to-object-path "^0.3.0"
set-immediate-shim@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+ integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
@@ -5943,6 +6856,7 @@ set-value@^0.4.3:
set-value@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
@@ -5952,18 +6866,22 @@ set-value@^2.0.0:
setimmediate@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+ integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.9"
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d"
+ integrity sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
@@ -5971,6 +6889,7 @@ sha.js@^2.4.0, sha.js@^2.4.8:
shallow-clone@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
+ integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==
dependencies:
is-extendable "^0.1.1"
kind-of "^5.0.0"
@@ -5979,16 +6898,19 @@ shallow-clone@^1.0.0:
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
shelljs@^0.7.5:
version "0.7.8"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
+ integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM=
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
@@ -5997,16 +6919,19 @@ shelljs@^0.7.5:
signal-exit@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
dependencies:
is-arrayish "^0.3.1"
sinon@^1.17.7:
version "1.17.7"
resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.7.tgz#4542a4f49ba0c45c05eb2e9dd9d203e2b8efe0bf"
+ integrity sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=
dependencies:
formatio "1.1.1"
lolex "1.3.2"
@@ -6016,14 +6941,17 @@ sinon@^1.17.7:
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+ integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+ integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
dependencies:
define-property "^1.0.0"
isobject "^3.0.0"
@@ -6032,12 +6960,14 @@ snapdragon-node@^2.0.1:
snapdragon-util@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
dependencies:
kind-of "^3.2.0"
snapdragon@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370"
+ integrity sha1-4StUh/re0+PeoKyR6UAL91tAE3A=
dependencies:
base "^0.11.1"
debug "^2.2.0"
@@ -6051,18 +6981,21 @@ snapdragon@^0.8.1:
sntp@1.x.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
+ integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=
dependencies:
hoek "2.x.x"
sntp@2.x.x:
version "2.1.0"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+ integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==
dependencies:
hoek "4.x.x"
sockjs-client@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
+ integrity sha1-W6vjhrd15M8U51IJEUUmVAFsixI=
dependencies:
debug "^2.6.6"
eventsource "0.1.6"
@@ -6074,6 +7007,7 @@ sockjs-client@1.1.4:
sockjs@0.3.19:
version "0.3.19"
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
+ integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
dependencies:
faye-websocket "^0.10.0"
uuid "^3.0.1"
@@ -6081,16 +7015,19 @@ sockjs@0.3.19:
sort-keys@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
dependencies:
is-plain-obj "^1.0.0"
source-list-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
+ integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==
source-map-resolve@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
+ integrity sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==
dependencies:
atob "^2.0.0"
decode-uri-component "^0.2.0"
@@ -6101,44 +7038,53 @@ source-map-resolve@^0.5.0:
source-map-support@^0.4.15:
version "0.4.18"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
dependencies:
source-map "^0.5.6"
source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
source-map@^0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
dependencies:
amdefine ">=0.0.4"
source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+ integrity sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=
dependencies:
spdx-license-ids "^1.0.2"
spdx-expression-parse@~1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+ integrity sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=
spdx-license-ids@^1.0.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+ integrity sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=
spdy-transport@^2.0.18:
version "2.0.20"
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d"
+ integrity sha1-c15yBUxIayNU/onnAiVgBKOazk0=
dependencies:
debug "^2.6.8"
detect-node "^2.0.3"
@@ -6151,6 +7097,7 @@ spdy-transport@^2.0.18:
spdy@^3.4.1:
version "3.4.7"
resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"
+ integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=
dependencies:
debug "^2.6.8"
handle-thing "^1.2.5"
@@ -6162,16 +7109,19 @@ spdy@^3.4.1:
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
dependencies:
extend-shallow "^3.0.0"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
sshpk@^1.7.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
+ integrity sha1-US322mKHFEMW3EwY/hzx2UBzm+M=
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
@@ -6186,18 +7136,21 @@ sshpk@^1.7.0:
ssri@^5.0.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.2.1.tgz#8b6eb873688759bd3c75a88dee74593d179bb73c"
+ integrity sha512-y4PjOWlAuxt+yAcXitQYOnOzZpKaH3+f/qGV3OWxbyC2noC9FA9GNC9uILnVdV7jruA1aDKr4OKz3ZDBcVZwFQ==
dependencies:
safe-buffer "^5.1.1"
ssri@^5.2.4:
version "5.3.0"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
dependencies:
safe-buffer "^5.1.1"
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
dependencies:
define-property "^0.2.5"
object-copy "^0.1.0"
@@ -6205,20 +7158,24 @@ static-extend@^0.1.1:
"statuses@>= 1.3.1 < 2":
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+ integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+ integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=
stdout-stream@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
+ integrity sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=
dependencies:
readable-stream "^2.0.1"
stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
+ integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=
dependencies:
inherits "~2.0.1"
readable-stream "^2.0.2"
@@ -6226,6 +7183,7 @@ stream-browserify@^2.0.1:
stream-each@^1.1.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd"
+ integrity sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==
dependencies:
end-of-stream "^1.1.0"
stream-shift "^1.0.0"
@@ -6233,6 +7191,7 @@ stream-each@^1.1.0:
stream-http@^2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad"
+ integrity sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.1"
@@ -6243,14 +7202,17 @@ stream-http@^2.7.2:
stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+ integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+ integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
@@ -6259,6 +7221,7 @@ string-width@^1.0.1, string-width@^1.0.2:
string-width@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
@@ -6266,56 +7229,67 @@ string-width@^2.0.0:
string_decoder@^1.0.0, string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
dependencies:
safe-buffer "~5.1.0"
stringstream@~0.0.4, stringstream@~0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+ integrity sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
dependencies:
is-utf8 "^0.2.0"
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
dependencies:
get-stdin "^4.0.1"
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
stround@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/stround/-/stround-0.3.1.tgz#be5f2e1dd7f5b6a1468682548ac87461b8d66454"
+ integrity sha1-vl8uHdf1tqFGhoJUish0YbjWZFQ=
style-loader@^0.21.0:
version "0.21.0"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852"
+ integrity sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==
dependencies:
loader-utils "^1.1.0"
schema-utils "^0.4.5"
@@ -6323,34 +7297,40 @@ style-loader@^0.21.0:
supports-color@4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
+ integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==
dependencies:
has-flag "^2.0.0"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
dependencies:
has-flag "^1.0.0"
supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=
dependencies:
has-flag "^2.0.0"
supports-color@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"
+ integrity sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==
dependencies:
has-flag "^3.0.0"
svgo@^0.7.0:
version "0.7.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
+ integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=
dependencies:
coa "~1.0.1"
colors "~1.1.2"
@@ -6363,10 +7343,12 @@ svgo@^0.7.0:
tabbable@^1.0.3:
version "1.1.1"
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-1.1.1.tgz#88618caa0dc76e877572a678f0ad97519bba6761"
+ integrity sha512-YnbzANAozgzJtFN9aSk4A1Ya3Z+yMh2GkrBa9AT3Bi4SF9z+iHmT8MoY/5bJL1h1aDYo+CPbAUR7qMx+LSxQgA==
table@^3.7.8:
version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+ integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=
dependencies:
ajv "^4.7.0"
ajv-keywords "^1.0.0"
@@ -6378,10 +7360,12 @@ table@^3.7.8:
tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
+ integrity sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=
tar-pack@^3.4.0:
version "3.4.1"
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
+ integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==
dependencies:
debug "^2.2.0"
fstream "^1.0.10"
@@ -6395,6 +7379,7 @@ tar-pack@^3.4.0:
tar@^2.0.0, tar@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
+ integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
dependencies:
block-stream "*"
fstream "^1.0.2"
@@ -6403,10 +7388,12 @@ tar@^2.0.0, tar@^2.2.1:
text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
through2@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
dependencies:
readable-stream "^2.1.5"
xtend "~4.0.1"
@@ -6414,42 +7401,51 @@ through2@^2.0.0:
through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
thunky@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
+ integrity sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=
time-stamp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"
+ integrity sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=
timers-browserify@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6"
+ integrity sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==
dependencies:
setimmediate "^1.0.4"
tiny-emitter@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"
+ integrity sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+ integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
dependencies:
kind-of "^3.0.2"
to-regex-range@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
dependencies:
is-number "^3.0.0"
repeat-string "^1.6.1"
@@ -6457,6 +7453,7 @@ to-regex-range@^2.1.0:
to-regex@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae"
+ integrity sha1-FTWL7kosg712N3uh3ASdDxiDeq4=
dependencies:
define-property "^0.2.5"
extend-shallow "^2.0.1"
@@ -6465,58 +7462,70 @@ to-regex@^3.0.1:
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+ integrity sha1-C2GKVWW23qkL80JdBNVe3EdadWE=
dependencies:
punycode "^1.4.1"
trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+ integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+ integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
"true-case-path@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
+ integrity sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=
dependencies:
glob "^6.0.4"
tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
+ integrity sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+ integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
dependencies:
prelude-ls "~1.1.2"
type-detect@0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
+ integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI=
type-detect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
+ integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI=
type-is@~1.6.15:
version "1.6.15"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
+ integrity sha1-yrEPtJCeRByChC6v4a1kbIGARBA=
dependencies:
media-typer "0.3.0"
mime-types "~2.1.15"
@@ -6524,10 +7533,12 @@ type-is@~1.6.15:
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
uglify-es@^3.3.4:
version "3.3.10"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5"
+ integrity sha512-rPzPisCzW68Okj1zNrfa2dR9uEm43SevDmpR6FChoZABFk9dANGnzzBMgHYUXI3609//63fnVkyQ1SQmAMyjww==
dependencies:
commander "~2.14.1"
source-map "~0.6.1"
@@ -6535,6 +7546,7 @@ uglify-es@^3.3.4:
uglify-js@^2.8.29:
version "2.8.29"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
dependencies:
source-map "~0.5.1"
yargs "~3.10.0"
@@ -6544,10 +7556,12 @@ uglify-js@^2.8.29:
uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+ integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
uglifyjs-webpack-plugin@^0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
+ integrity sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=
dependencies:
source-map "^0.5.6"
uglify-js "^2.8.29"
@@ -6556,6 +7570,7 @@ uglifyjs-webpack-plugin@^0.4.6:
uglifyjs-webpack-plugin@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00"
+ integrity sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
@@ -6569,14 +7584,17 @@ uglifyjs-webpack-plugin@^1.2.7:
uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+ integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
underscore.string@2.3.x:
version "2.3.3"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d"
+ integrity sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
dependencies:
arr-union "^3.1.0"
get-value "^2.0.6"
@@ -6586,32 +7604,38 @@ union-value@^1.0.0:
uniq@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
uniqid@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1"
+ integrity sha1-iSIN32t1GuUrX3JISGNShZa7hME=
dependencies:
macaddress "^0.2.8"
uniqs@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+ integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
unique-filename@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
+ integrity sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=
dependencies:
unique-slug "^2.0.0"
unique-slug@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
+ integrity sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=
dependencies:
imurmurhash "^0.1.4"
units-css@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/units-css/-/units-css-0.4.0.tgz#d6228653a51983d7c16ff28f8b9dc3b1ffed3a07"
+ integrity sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=
dependencies:
isnumeric "^0.2.0"
viewport-dimensions "^0.2.0"
@@ -6619,10 +7643,12 @@ units-css@^0.4.0:
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
dependencies:
has-value "^0.3.1"
isobject "^3.0.0"
@@ -6630,6 +7656,7 @@ unset-value@^1.0.0:
upath@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.0.tgz#b4706b9461ca8473adf89133d235689ca17f3656"
+ integrity sha1-tHBrlGHKhHOt+JEz0jVonKF/NlY=
dependencies:
lodash "3.x"
underscore.string "2.3.x"
@@ -6637,10 +7664,12 @@ upath@1.0.0:
urix@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
url-parse@1.0.x:
version "1.0.5"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
+ integrity sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=
dependencies:
querystringify "0.0.x"
requires-port "1.0.x"
@@ -6648,6 +7677,7 @@ url-parse@1.0.x:
url-parse@^1.1.8:
version "1.2.0"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986"
+ integrity sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==
dependencies:
querystringify "~1.0.0"
requires-port "~1.0.0"
@@ -6655,6 +7685,7 @@ url-parse@^1.1.8:
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
dependencies:
punycode "1.3.2"
querystring "0.2.0"
@@ -6662,6 +7693,7 @@ url@^0.11.0:
use@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8"
+ integrity sha1-riig1y+TvyJCKhii43mZMRLeyOg=
dependencies:
define-property "^0.2.5"
isobject "^3.0.0"
@@ -6670,34 +7702,41 @@ use@^2.0.0:
user-home@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
+ integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8=
dependencies:
os-homedir "^1.0.0"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util@0.10.3, "util@>=0.10.3 <1", util@^0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
dependencies:
inherits "2.0.1"
utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
uuid@^3.0.0, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+ integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==
uuid@^3.0.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+ integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==
validate-npm-package-license@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+ integrity sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=
dependencies:
spdx-correct "~1.0.0"
spdx-expression-parse "~1.0.0"
@@ -6705,14 +7744,17 @@ validate-npm-package-license@^3.0.1:
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vendors@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22"
+ integrity sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
@@ -6721,16 +7763,19 @@ verror@1.10.0:
viewport-dimensions@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz#de740747db5387fd1725f5175e91bac76afdf36c"
+ integrity sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=
vm-browserify@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+ integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=
dependencies:
indexof "0.0.1"
watchpack@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"
+ integrity sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=
dependencies:
async "^2.1.2"
chokidar "^1.7.0"
@@ -6739,12 +7784,14 @@ watchpack@^1.4.0:
wbuf@^1.1.0, wbuf@^1.7.2:
version "1.7.2"
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe"
+ integrity sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=
dependencies:
minimalistic-assert "^1.0.0"
webpack-dev-middleware@1.12.2:
version "1.12.2"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e"
+ integrity sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==
dependencies:
memory-fs "~0.4.1"
mime "^1.5.0"
@@ -6755,6 +7802,7 @@ webpack-dev-middleware@1.12.2:
webpack-dev-server@^2.11.1:
version "2.11.1"
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz#6f9358a002db8403f016e336816f4485384e5ec0"
+ integrity sha512-ombhu5KsO/85sVshIDTyQ5HF3xjZR3N0sf5Ao6h3vFwpNyzInEzA1GV3QPVjTMLTNckp8PjfG1PFGznzBwS5lg==
dependencies:
ansi-html "0.0.7"
array-includes "^3.0.3"
@@ -6787,6 +7835,7 @@ webpack-dev-server@^2.11.1:
webpack-manifest-plugin@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz#5ea8ee5756359ddc1d98814324fe43496349a7d4"
+ integrity sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==
dependencies:
fs-extra "^0.30.0"
lodash ">=3.5 <5"
@@ -6794,6 +7843,7 @@ webpack-manifest-plugin@^1.3.2:
webpack-sources@^1.0.1, webpack-sources@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
+ integrity sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
@@ -6801,6 +7851,7 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0:
webpack@^3.12.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
+ integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
@@ -6828,6 +7879,7 @@ webpack@^3.12.0:
websocket-driver@>=0.5.1:
version "0.7.0"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
+ integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
dependencies:
http-parser-js ">=0.4.0"
websocket-extensions ">=0.1.1"
@@ -6835,50 +7887,61 @@ websocket-driver@>=0.5.1:
websocket-extensions@>=0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
+ integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
+ integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+ integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which@1, which@^1.2.9:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ integrity sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
+ integrity sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==
dependencies:
string-width "^1.0.2"
window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+ integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+ integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
worker-farm@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae"
+ integrity sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==
dependencies:
errno "^0.1.4"
xtend "^4.0.1"
@@ -6886,6 +7949,7 @@ worker-farm@^1.5.2:
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
@@ -6893,16 +7957,19 @@ wrap-ansi@^2.0.0:
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
dependencies:
mkdirp "^0.5.1"
xml2js@^0.4.17:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
+ integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==
dependencies:
sax ">=0.6.0"
xmlbuilder "~9.0.1"
@@ -6910,44 +7977,53 @@ xml2js@^0.4.17:
xmlbuilder@~9.0.1:
version "9.0.4"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
+ integrity sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+ integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+ integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yargs-parser@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
+ integrity sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=
dependencies:
camelcase "^3.0.0"
yargs-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
+ integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
dependencies:
camelcase "^3.0.0"
yargs-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
+ integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
dependencies:
camelcase "^4.1.0"
yargs@6.6.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
+ integrity sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
@@ -6966,6 +8042,7 @@ yargs@6.6.0:
yargs@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+ integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
@@ -6984,6 +8061,7 @@ yargs@^7.0.0:
yargs@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=
dependencies:
camelcase "^4.1.0"
cliui "^3.2.0"
@@ -7002,6 +8080,7 @@ yargs@^8.0.2:
yargs@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
dependencies:
camelcase "^1.0.2"
cliui "^2.1.0"
@@ -7011,3 +8090,4 @@ yargs@~3.10.0:
zxcvbn@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/zxcvbn/-/zxcvbn-4.4.2.tgz#28ec17cf09743edcab056ddd8b1b06262cc73c30"
+ integrity sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=