s',
index: idx,
username: account.username,
@@ -563,9 +560,9 @@ module Mastodon::CLI
)
end
- @prompt.say 'Please chose the one to keep unchanged, other ones will be automatically renamed.'
+ say 'Please chose the one to keep unchanged, other ones will be automatically renamed.'
- ref_id = @prompt.ask('Account to keep unchanged:') do |q|
+ ref_id = ask('Account to keep unchanged:') do |q|
q.required true
q.default 0
q.convert :int
diff --git a/package.json b/package.json
index 244fe7b991..c9de2218ca 100644
--- a/package.json
+++ b/package.json
@@ -2,23 +2,31 @@
"name": "@mastodon/mastodon",
"license": "AGPL-3.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=16"
},
"scripts": {
- "postversion": "git push --tags",
"build:development": "cross-env RAILS_ENV=development NODE_ENV=development ./bin/webpack",
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
+ "fix:js": "yarn lint:js --fix",
+ "fix:json": "prettier --write \"**/*.json\"",
+ "fix:md": "prettier --write \"**/*.md\"",
+ "fix:sass": "stylelint --fix \"**/*.{css,scss}\" && prettier --write \"**/*.{css,scss}\"",
+ "fix:yml": "prettier --write \"**/*.{yaml,yml}\"",
+ "fix": "yarn fix:js && yarn fix:json && yarn fix:sass && yarn fix:yml",
+ "i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' '--ignore=**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js",
+ "jest": "cross-env NODE_ENV=test jest",
+ "lint:js": "eslint . --ext=.js,.jsx,.ts,.tsx --cache --report-unused-disable-directives",
+ "lint:json": "prettier --check \"**/*.json\"",
+ "lint:md": "prettier --check \"**/*.md\"",
+ "lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"",
+ "lint:yml": "prettier --check \"**/*.{yaml,yml}\"",
+ "lint": "yarn lint:js && yarn lint:json && yarn lint:sass && yarn lint:yml",
"manage:translations": "node ./config/webpack/translationRunner.js",
+ "postversion": "git push --tags",
+ "prepare": "husky install",
"start": "node ./streaming/index.js",
- "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:typecheck && ${npm_execpath} run test:jest",
- "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
- "test:lint:js": "eslint --ext=.js,.jsx,.ts,.tsx . --cache --report-unused-disable-directives",
- "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"",
- "test:typecheck": "tsc --noEmit",
- "test:jest": "cross-env NODE_ENV=test jest",
- "format": "prettier --write .",
- "format-check": "prettier --check .",
- "prepare": "husky install"
+ "test": "yarn lint && yarn run typecheck && yarn jest",
+ "typecheck": "tsc --noEmit"
},
"repository": {
"type": "git",
@@ -26,14 +34,15 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.21.8",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/core": "^7.22.1",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.3",
"@babel/plugin-transform-react-inline-elements": "^7.21.0",
- "@babel/plugin-transform-runtime": "^7.21.4",
- "@babel/preset-env": "^7.21.5",
- "@babel/preset-react": "^7.18.6",
+ "@babel/plugin-transform-runtime": "^7.22.4",
+ "@babel/preset-env": "^7.22.4",
+ "@babel/preset-react": "^7.22.3",
"@babel/preset-typescript": "^7.21.5",
- "@babel/runtime": "^7.21.5",
+ "@babel/runtime": "^7.22.3",
+ "@formatjs/intl-pluralrules": "^5.2.2",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^2.1.1",
"@rails/ujs": "^6.1.7",
@@ -43,9 +52,9 @@
"autoprefixer": "^10.4.14",
"axios": "^1.4.0",
"babel-loader": "^8.3.0",
+ "babel-plugin-formatjs": "^10.5.1",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.1.0",
- "babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"blurhash": "^2.0.5",
"classnames": "^2.3.2",
@@ -69,9 +78,7 @@
"http-link-header": "^1.1.1",
"immutable": "^4.3.0",
"imports-loader": "^1.2.0",
- "intl": "^1.2.5",
- "intl-messageformat": "^2.2.0",
- "intl-relativeformat": "^6.4.3",
+ "intl-messageformat": "^10.3.5",
"js-yaml": "^4.1.0",
"jsdom": "^22.1.0",
"lodash": "^4.17.21",
@@ -94,7 +101,7 @@
"react-hotkeys": "^1.1.4",
"react-immutable-proptypes": "^2.2.0",
"react-immutable-pure-component": "^2.2.2",
- "react-intl": "^2.9.0",
+ "react-intl": "^6.4.2",
"react-motion": "^0.5.2",
"react-notification": "^6.8.5",
"react-overlays": "^5.2.1",
@@ -131,24 +138,25 @@
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.9.0",
"wicg-inert": "^3.1.2",
- "workbox-expiration": "^6.5.4",
- "workbox-precaching": "^6.5.4",
- "workbox-routing": "^6.5.4",
- "workbox-strategies": "^6.5.4",
- "workbox-webpack-plugin": "^6.5.4",
- "workbox-window": "^6.5.4",
+ "workbox-expiration": "^6.6.0",
+ "workbox-precaching": "^6.6.0",
+ "workbox-routing": "^6.6.0",
+ "workbox-strategies": "^6.6.0",
+ "workbox-webpack-plugin": "^6.6.0",
+ "workbox-window": "^6.6.0",
"ws": "^8.12.1"
},
"devDependencies": {
+ "@formatjs/cli": "^6.1.1",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
- "@types/babel__core": "^7.20.0",
+ "@types/babel__core": "^7.20.1",
"@types/emoji-mart": "^3.0.9",
"@types/escape-html": "^1.0.2",
"@types/express": "^4.17.17",
"@types/http-link-header": "^1.0.3",
"@types/intl": "^1.2.0",
- "@types/jest": "^29.5.1",
+ "@types/jest": "^29.5.2",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
"@types/npmlog": "^4.1.4",
@@ -160,7 +168,6 @@
"@types/react-dom": "^18.2.4",
"@types/react-helmet": "^6.1.6",
"@types/react-immutable-proptypes": "^2.1.0",
- "@types/react-intl": "2.3.18",
"@types/react-motion": "^0.0.34",
"@types/react-overlays": "^3.1.0",
"@types/react-router-dom": "^5.3.3",
@@ -183,7 +190,7 @@
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-plugin-formatjs": "^4.10.1",
"eslint-plugin-import": "~2.27.5",
- "eslint-plugin-jsdoc": "^44.2.5",
+ "eslint-plugin-jsdoc": "^46.1.0",
"eslint-plugin-jsx-a11y": "~6.7.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-promise": "~6.1.1",
@@ -194,7 +201,6 @@
"jest-environment-jsdom": "^29.5.0",
"lint-staged": "^13.2.2",
"prettier": "^2.8.8",
- "react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^18.2.0",
"stylelint": "^15.6.2",
"stylelint-config-standard-scss": "^9.0.0",
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 6aed172ac5..d499aa64ce 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -40,42 +40,135 @@ RSpec.describe Admin::DomainBlocksController do
end
describe 'POST #create' do
- it 'blocks the domain when succeeded to save' do
+ before do
allow(DomainBlockWorker).to receive(:perform_async).and_return(true)
-
- post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
-
- expect(DomainBlockWorker).to have_received(:perform_async)
- expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
- expect(response).to redirect_to(admin_instances_path(limited: '1'))
end
- it 'renders new when failed to save' do
- Fabricate(:domain_block, domain: 'example.com', severity: 'suspend')
- allow(DomainBlockWorker).to receive(:perform_async).and_return(true)
+ context 'with "silence" severity and no conflict' do
+ before do
+ post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
+ end
- post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
+ it 'records a block' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'silence')).to be true
+ end
- expect(DomainBlockWorker).to_not have_received(:perform_async)
- expect(response).to render_template :new
+ it 'calls DomainBlockWorker' do
+ expect(DomainBlockWorker).to have_received(:perform_async)
+ end
+
+ it 'redirects with a success message' do
+ expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
+ expect(response).to redirect_to(admin_instances_path(limited: '1'))
+ end
end
- it 'allows upgrading a block' do
- Fabricate(:domain_block, domain: 'example.com', severity: 'silence')
- allow(DomainBlockWorker).to receive(:perform_async).and_return(true)
+ context 'when the new domain block conflicts with an existing one' do
+ before do
+ Fabricate(:domain_block, domain: 'example.com', severity: 'suspend')
+ post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
+ end
- post :create, params: { domain_block: { domain: 'example.com', severity: 'silence', reject_media: true, reject_reports: true } }
+ it 'does not record a block' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'silence')).to be false
+ end
- expect(DomainBlockWorker).to have_received(:perform_async)
- expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
- expect(response).to redirect_to(admin_instances_path(limited: '1'))
+ it 'does not call DomainBlockWorker' do
+ expect(DomainBlockWorker).to_not have_received(:perform_async)
+ end
+
+ it 'renders new' do
+ expect(response).to render_template :new
+ end
+ end
+
+ context 'with "suspend" severity and no conflict' do
+ context 'without a confirmation' do
+ before do
+ post :create, params: { domain_block: { domain: 'example.com', severity: 'suspend', reject_media: true, reject_reports: true } }
+ end
+
+ it 'does not record a block' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'suspend')).to be false
+ end
+
+ it 'does not call DomainBlockWorker' do
+ expect(DomainBlockWorker).to_not have_received(:perform_async)
+ end
+
+ it 'renders confirm_suspension' do
+ expect(response).to render_template :confirm_suspension
+ end
+ end
+
+ context 'with a confirmation' do
+ before do
+ post :create, params: { :domain_block => { domain: 'example.com', severity: 'suspend', reject_media: true, reject_reports: true }, 'confirm' => '' }
+ end
+
+ it 'records a block' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'suspend')).to be true
+ end
+
+ it 'calls DomainBlockWorker' do
+ expect(DomainBlockWorker).to have_received(:perform_async)
+ end
+
+ it 'redirects with a success message' do
+ expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
+ expect(response).to redirect_to(admin_instances_path(limited: '1'))
+ end
+ end
+ end
+
+ context 'when upgrading an existing block' do
+ before do
+ Fabricate(:domain_block, domain: 'example.com', severity: 'silence')
+ end
+
+ context 'without a confirmation' do
+ before do
+ post :create, params: { domain_block: { domain: 'example.com', severity: 'suspend', reject_media: true, reject_reports: true } }
+ end
+
+ it 'does not record a block' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'suspend')).to be false
+ end
+
+ it 'does not call DomainBlockWorker' do
+ expect(DomainBlockWorker).to_not have_received(:perform_async)
+ end
+
+ it 'renders confirm_suspension' do
+ expect(response).to render_template :confirm_suspension
+ end
+ end
+
+ context 'with a confirmation' do
+ before do
+ post :create, params: { :domain_block => { domain: 'example.com', severity: 'suspend', reject_media: true, reject_reports: true }, 'confirm' => '' }
+ end
+
+ it 'updates the record' do
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'suspend')).to be true
+ end
+
+ it 'calls DomainBlockWorker' do
+ expect(DomainBlockWorker).to have_received(:perform_async)
+ end
+
+ it 'redirects with a success message' do
+ expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
+ expect(response).to redirect_to(admin_instances_path(limited: '1'))
+ end
+ end
end
end
describe 'PUT #update' do
let!(:remote_account) { Fabricate(:account, domain: 'example.com') }
let(:subject) do
- post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } }
+ post :update, params: { :id => domain_block.id, :domain_block => { domain: 'example.com', severity: new_severity }, 'confirm' => '' }
end
let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
diff --git a/spec/controllers/admin/ip_blocks_controller_spec.rb b/spec/controllers/admin/ip_blocks_controller_spec.rb
index 873888afc7..05190f1340 100644
--- a/spec/controllers/admin/ip_blocks_controller_spec.rb
+++ b/spec/controllers/admin/ip_blocks_controller_spec.rb
@@ -18,4 +18,37 @@ describe Admin::IpBlocksController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'GET #new' do
+ it 'returns http success and renders view' do
+ get :new
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+
+ describe 'POST #create' do
+ context 'with valid data' do
+ it 'creates a new ip block and redirects' do
+ expect do
+ post :create, params: { ip_block: { ip: '1.1.1.1', severity: 'no_access', expires_in: 1.day.to_i.to_s } }
+ end.to change(IpBlock, :count).by(1)
+
+ expect(response).to redirect_to(admin_ip_blocks_path)
+ expect(flash.notice).to match(I18n.t('admin.ip_blocks.created_msg'))
+ end
+ end
+
+ context 'with invalid data' do
+ it 'does not create new a ip block and renders new' do
+ expect do
+ post :create, params: { ip_block: { ip: '1.1.1.1' } }
+ end.to_not change(IpBlock, :count)
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+ end
end
diff --git a/spec/controllers/admin/relays_controller_spec.rb b/spec/controllers/admin/relays_controller_spec.rb
index dfb9f3c048..261f302c05 100644
--- a/spec/controllers/admin/relays_controller_spec.rb
+++ b/spec/controllers/admin/relays_controller_spec.rb
@@ -18,4 +18,42 @@ describe Admin::RelaysController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'GET #new' do
+ it 'returns http success and renders view' do
+ get :new
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+
+ describe 'POST #create' do
+ context 'with valid data' do
+ let(:inbox_url) { 'https://example.com/inbox' }
+
+ before do
+ stub_request(:post, inbox_url).to_return(status: 200)
+ end
+
+ it 'creates a new relay and redirects' do
+ expect do
+ post :create, params: { relay: { inbox_url: inbox_url } }
+ end.to change(Relay, :count).by(1)
+
+ expect(response).to redirect_to(admin_relays_path)
+ end
+ end
+
+ context 'with invalid data' do
+ it 'does not create new a relay and renders new' do
+ expect do
+ post :create, params: { relay: { inbox_url: 'invalid' } }
+ end.to_not change(Relay, :count)
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+ end
end
diff --git a/spec/controllers/admin/rules_controller_spec.rb b/spec/controllers/admin/rules_controller_spec.rb
index d7b633c049..92ffb41567 100644
--- a/spec/controllers/admin/rules_controller_spec.rb
+++ b/spec/controllers/admin/rules_controller_spec.rb
@@ -18,4 +18,68 @@ describe Admin::RulesController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'GET #edit' do
+ let(:rule) { Fabricate(:rule) }
+
+ it 'returns http success and renders edit' do
+ get :edit, params: { id: rule.id }
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:edit)
+ end
+ end
+
+ describe 'POST #create' do
+ context 'with valid data' do
+ it 'creates a new rule and redirects' do
+ expect do
+ post :create, params: { rule: { text: 'The rule text.' } }
+ end.to change(Rule, :count).by(1)
+
+ expect(response).to redirect_to(admin_rules_path)
+ end
+ end
+
+ context 'with invalid data' do
+ it 'does creates a new rule and renders index' do
+ expect do
+ post :create, params: { rule: { text: '' } }
+ end.to_not change(Rule, :count)
+
+ expect(response).to render_template(:index)
+ end
+ end
+ end
+
+ describe 'PUT #update' do
+ let(:rule) { Fabricate(:rule, text: 'Original text') }
+
+ context 'with valid data' do
+ it 'updates the rule and redirects' do
+ put :update, params: { id: rule.id, rule: { text: 'Updated text.' } }
+
+ expect(response).to redirect_to(admin_rules_path)
+ end
+ end
+
+ context 'with invalid data' do
+ it 'does not update the rule and renders index' do
+ put :update, params: { id: rule.id, rule: { text: '' } }
+
+ expect(response).to render_template(:edit)
+ end
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let!(:rule) { Fabricate(:rule) }
+
+ it 'destroys the rule and redirects' do
+ delete :destroy, params: { id: rule.id }
+
+ expect(rule.reload).to be_discarded
+ expect(response).to redirect_to(admin_rules_path)
+ end
+ end
end
diff --git a/spec/controllers/admin/webhooks_controller_spec.rb b/spec/controllers/admin/webhooks_controller_spec.rb
index 12727e142b..5e45c74082 100644
--- a/spec/controllers/admin/webhooks_controller_spec.rb
+++ b/spec/controllers/admin/webhooks_controller_spec.rb
@@ -18,4 +18,82 @@ describe Admin::WebhooksController do
expect(response).to have_http_status(:success)
end
end
+
+ describe 'GET #new' do
+ it 'returns http success and renders view' do
+ get :new
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+
+ describe 'POST #create' do
+ it 'creates a new webhook record with valid data' do
+ expect do
+ post :create, params: { webhook: { url: 'https://example.com/hook', events: ['account.approved'] } }
+ end.to change(Webhook, :count).by(1)
+
+ expect(response).to be_redirect
+ end
+
+ it 'does not create a new webhook record with invalid data' do
+ expect do
+ post :create, params: { webhook: { url: 'https://example.com/hook', events: [] } }
+ end.to_not change(Webhook, :count)
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:new)
+ end
+ end
+
+ context 'with an existing record' do
+ let!(:webhook) { Fabricate :webhook }
+
+ describe 'GET #show' do
+ it 'returns http success and renders view' do
+ get :show, params: { id: webhook.id }
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:show)
+ end
+ end
+
+ describe 'GET #edit' do
+ it 'returns http success and renders view' do
+ get :edit, params: { id: webhook.id }
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:edit)
+ end
+ end
+
+ describe 'PUT #update' do
+ it 'updates the record with valid data' do
+ put :update, params: { id: webhook.id, webhook: { url: 'https://example.com/new/location' } }
+
+ expect(webhook.reload.url).to match(%r{new/location})
+ expect(response).to redirect_to(admin_webhook_path(webhook))
+ end
+
+ it 'does not update the record with invalid data' do
+ expect do
+ put :update, params: { id: webhook.id, webhook: { url: '' } }
+ end.to_not change(webhook, :url)
+
+ expect(response).to have_http_status(:success)
+ expect(response).to render_template(:show)
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ it 'destroys the record' do
+ expect do
+ delete :destroy, params: { id: webhook.id }
+ end.to change(Webhook, :count).by(-1)
+
+ expect(response).to redirect_to(admin_webhooks_path)
+ end
+ end
+ end
end
diff --git a/spec/controllers/api/v1/statuses/translations_controller_spec.rb b/spec/controllers/api/v1/statuses/translations_controller_spec.rb
index 8495779bf3..989e94750a 100644
--- a/spec/controllers/api/v1/statuses/translations_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/translations_controller_spec.rb
@@ -19,7 +19,7 @@ describe Api::V1::Statuses::TranslationsController do
before do
translation = TranslationService::Translation.new(text: 'Hello')
- service = instance_double(TranslationService::DeepL, translate: translation)
+ service = instance_double(TranslationService::DeepL, translate: [translation])
allow(TranslationService).to receive(:configured?).and_return(true)
allow(TranslationService).to receive(:configured).and_return(service)
Rails.cache.write('translation_service/languages', { 'es' => ['en'] })
diff --git a/spec/features/admin/domain_blocks_spec.rb b/spec/features/admin/domain_blocks_spec.rb
new file mode 100644
index 0000000000..3cf60a48ae
--- /dev/null
+++ b/spec/features/admin/domain_blocks_spec.rb
@@ -0,0 +1,78 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe 'blocking domains through the moderation interface' do
+ before do
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
+ end
+
+ context 'when silencing a new domain' do
+ it 'adds a new domain block' do
+ visit new_admin_domain_block_path
+
+ fill_in 'domain_block_domain', with: 'example.com'
+ select I18n.t('admin.domain_blocks.new.severity.silence'), from: 'domain_block_severity'
+ click_on I18n.t('admin.domain_blocks.new.create')
+
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'silence')).to be true
+ end
+ end
+
+ context 'when suspending a new domain' do
+ it 'presents a confirmation screen before suspending the domain' do
+ visit new_admin_domain_block_path
+
+ fill_in 'domain_block_domain', with: 'example.com'
+ select I18n.t('admin.domain_blocks.new.severity.suspend'), from: 'domain_block_severity'
+ click_on I18n.t('admin.domain_blocks.new.create')
+
+ # It presents a confirmation screen
+ expect(page).to have_title(I18n.t('admin.domain_blocks.confirm_suspension.title', domain: 'example.com'))
+
+ # Confirming creates a block
+ click_on I18n.t('admin.domain_blocks.confirm_suspension.confirm')
+
+ expect(DomainBlock.exists?(domain: 'example.com', severity: 'suspend')).to be true
+ end
+ end
+
+ context 'when suspending a domain that is already silenced' do
+ it 'presents a confirmation screen before suspending the domain' do
+ domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence')
+
+ visit new_admin_domain_block_path
+
+ fill_in 'domain_block_domain', with: 'example.com'
+ select I18n.t('admin.domain_blocks.new.severity.suspend'), from: 'domain_block_severity'
+ click_on I18n.t('admin.domain_blocks.new.create')
+
+ # It presents a confirmation screen
+ expect(page).to have_title(I18n.t('admin.domain_blocks.confirm_suspension.title', domain: 'example.com'))
+
+ # Confirming updates the block
+ click_on I18n.t('admin.domain_blocks.confirm_suspension.confirm')
+
+ expect(domain_block.reload.severity).to eq 'silence'
+ end
+ end
+
+ context 'when editing a domain block' do
+ it 'presents a confirmation screen before suspending the domain' do
+ domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence')
+
+ visit edit_admin_domain_block_path(domain_block)
+
+ select I18n.t('admin.domain_blocks.new.severity.suspend'), from: 'domain_block_severity'
+ click_on I18n.t('generic.save_changes')
+
+ # It presents a confirmation screen
+ expect(page).to have_title(I18n.t('admin.domain_blocks.confirm_suspension.title', domain: 'example.com'))
+
+ # Confirming updates the block
+ click_on I18n.t('admin.domain_blocks.confirm_suspension.confirm')
+
+ expect(domain_block.reload.severity).to eq 'silence'
+ end
+ end
+end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index df13838725..d191265cad 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -208,6 +208,18 @@ describe ApplicationHelper do
end
end
+ context 'when S3 alias includes a path component' do
+ around do |example|
+ ClimateControl.modify S3_ALIAS_HOST: 's3.alias/path' do
+ example.run
+ end
+ end
+
+ it 'returns a correct URL' do
+ expect(helper.storage_host).to eq('https://s3.alias/path')
+ end
+ end
+
context 'when S3 cloudfront is present' do
around do |example|
ClimateControl.modify S3_CLOUDFRONT_HOST: 's3.cloudfront' do
@@ -219,12 +231,6 @@ describe ApplicationHelper do
expect(helper.storage_host).to eq('https://s3.cloudfront')
end
end
-
- context 'when neither env value is present' do
- it 'returns false' do
- expect(helper.storage_host).to eq('https:')
- end
- end
end
describe 'storage_host?' do
diff --git a/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
new file mode 100644
index 0000000000..29a157491e
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceAccountsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:account, domain: domain, created_at: 1.year.ago)
+ Fabricate(:account, domain: domain, created_at: 1.month.ago)
+ Fabricate(:account, domain: domain)
+
+ Fabricate(:account, domain: "foo.#{domain}", created_at: 1.year.ago)
+ Fabricate(:account, domain: "foo.#{domain}")
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 3
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 6
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
new file mode 100644
index 0000000000..ebf789c1b3
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceFollowersMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ local_account = Fabricate(:account)
+
+ Fabricate(:account, domain: domain).follow!(local_account)
+ Fabricate(:account, domain: domain).follow!(local_account)
+ Fabricate(:account, domain: domain)
+
+ Fabricate(:account, domain: "foo.#{domain}").follow!(local_account)
+ Fabricate(:account, domain: "foo.#{domain}").follow!(local_account)
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 4
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
new file mode 100644
index 0000000000..335e3c7321
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceFollowsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ local_account = Fabricate(:account)
+
+ local_account.follow!(Fabricate(:account, domain: domain))
+ local_account.follow!(Fabricate(:account, domain: domain))
+ Fabricate(:account, domain: domain)
+
+ local_account.follow!(Fabricate(:account, domain: "foo.#{domain}"))
+ local_account.follow!(Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 4
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
new file mode 100644
index 0000000000..711a2aff05
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ let(:remote_account) { Fabricate(:account, domain: domain) }
+ let(:remote_account_on_subdomain) { Fabricate(:account, domain: "foo.#{domain}") }
+
+ before do
+ remote_account.media_attachments.create!(file: attachment_fixture('attachment.jpg'))
+ remote_account_on_subdomain.media_attachments.create!(file: attachment_fixture('attachment.jpg'))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expected_total = remote_account.media_attachments.sum(:file_file_size) + remote_account.media_attachments.sum(:thumbnail_file_size)
+ expect(measure.total).to eq expected_total
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expected_total = [remote_account, remote_account_on_subdomain].sum do |account|
+ account.media_attachments.sum(:file_file_size) + account.media_attachments.sum(:thumbnail_file_size)
+ end
+
+ expect(measure.total).to eq expected_total
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
new file mode 100644
index 0000000000..f0ffd39cfb
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceReportsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:report, target_account: Fabricate(:account, domain: domain))
+ Fabricate(:report, target_account: Fabricate(:account, domain: domain))
+
+ Fabricate(:report, target_account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:report, target_account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:report, target_account: Fabricate(:account, domain: "bar.#{domain}"))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 5
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
new file mode 100644
index 0000000000..c1425ecdb9
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceStatusesMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:status, account: Fabricate(:account, domain: domain))
+ Fabricate(:status, account: Fabricate(:account, domain: domain))
+
+ Fabricate(:status, account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:status, account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:status, account: Fabricate(:account, domain: "bar.#{domain}"))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 5
+ end
+ end
+ end
+end
diff --git a/spec/lib/hash_object_spec.rb b/spec/lib/hash_object_spec.rb
deleted file mode 100644
index ce18065209..0000000000
--- a/spec/lib/hash_object_spec.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe HashObject do
- it 'has methods corresponding to hash properties' do
- expect(HashObject.new(key: 'value').key).to eq 'value'
- end
-end
diff --git a/spec/lib/mastodon/cli/accounts_spec.rb b/spec/lib/mastodon/cli/accounts_spec.rb
index bcb353aeee..d62aaadd7b 100644
--- a/spec/lib/mastodon/cli/accounts_spec.rb
+++ b/spec/lib/mastodon/cli/accounts_spec.rb
@@ -577,4 +577,351 @@ describe Mastodon::CLI::Accounts do
end
end
end
+
+ describe '#unfollow' do
+ context 'when the given username is not found' do
+ let(:arguments) { ['non_existent_username'] }
+
+ it 'exits with an error message indicating that no account with the given username was found' do
+ expect { cli.invoke(:unfollow, arguments) }.to output(
+ a_string_including('No such account')
+ ).to_stdout
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when the given username is found' do
+ let!(:target_account) { Fabricate(:account) }
+ let!(:follower_chris) { Fabricate(:account, username: 'chris') }
+ let!(:follower_rambo) { Fabricate(:account, username: 'rambo') }
+ let!(:follower_ana) { Fabricate(:account, username: 'ana') }
+ let(:unfollow_service) { instance_double(UnfollowService, call: nil) }
+ let(:scope) { target_account.followers.local }
+
+ before do
+ accounts = [follower_chris, follower_rambo, follower_ana]
+ accounts.each { |account| target_account.follow!(account) }
+ allow(cli).to receive(:parallelize_with_progress).and_yield(follower_chris)
+ .and_yield(follower_rambo)
+ .and_yield(follower_ana)
+ .and_return([3, nil])
+ allow(UnfollowService).to receive(:new).and_return(unfollow_service)
+ end
+
+ it 'makes all local accounts unfollow the target account' do
+ cli.unfollow(target_account.username)
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(unfollow_service).to have_received(:call).with(follower_chris, target_account).once
+ expect(unfollow_service).to have_received(:call).with(follower_rambo, target_account).once
+ expect(unfollow_service).to have_received(:call).with(follower_ana, target_account).once
+ end
+
+ it 'displays a successful message' do
+ expect { cli.unfollow(target_account.username) }.to output(
+ a_string_including('OK, unfollowed target from 3 accounts')
+ ).to_stdout
+ end
+ end
+ end
+
+ describe '#backup' do
+ context 'when the given username is not found' do
+ let(:arguments) { ['non_existent_username'] }
+
+ it 'exits with an error message indicating that there is no such account' do
+ expect { cli.invoke(:backup, arguments) }.to output(
+ a_string_including('No user with such username')
+ ).to_stdout
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'when the given username is found' do
+ let(:account) { Fabricate(:account) }
+ let(:user) { account.user }
+ let(:arguments) { [account.username] }
+
+ it 'creates a new backup for the specified user' do
+ expect { cli.invoke(:backup, arguments) }.to change { user.backups.count }.by(1)
+ end
+
+ it 'creates a backup job' do
+ allow(BackupWorker).to receive(:perform_async)
+
+ cli.invoke(:backup, arguments)
+ latest_backup = user.backups.last
+
+ expect(BackupWorker).to have_received(:perform_async).with(latest_backup.id).once
+ end
+
+ it 'displays a successful message' do
+ expect { cli.invoke(:backup, arguments) }.to output(
+ a_string_including('OK')
+ ).to_stdout
+ end
+ end
+ end
+
+ describe '#refresh' do
+ context 'with --all option' do
+ let!(:local_account) { Fabricate(:account, domain: nil) }
+ let!(:remote_account_example_com) { Fabricate(:account, domain: 'example.com') }
+ let!(:account_example_net) { Fabricate(:account, domain: 'example.net') }
+ let(:scope) { Account.remote }
+
+ before do
+ allow(cli).to receive(:parallelize_with_progress).and_yield(remote_account_example_com)
+ .and_yield(account_example_net)
+ .and_return([2, nil])
+ cli.options = { all: true }
+ end
+
+ it 'refreshes the avatar for all remote accounts' do
+ allow(remote_account_example_com).to receive(:reset_avatar!)
+ allow(account_example_net).to receive(:reset_avatar!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(remote_account_example_com).to have_received(:reset_avatar!).once
+ expect(account_example_net).to have_received(:reset_avatar!).once
+ end
+
+ it 'does not refresh avatar for local accounts' do
+ allow(local_account).to receive(:reset_avatar!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(local_account).to_not have_received(:reset_avatar!)
+ end
+
+ it 'refreshes the header for all remote accounts' do
+ allow(remote_account_example_com).to receive(:reset_header!)
+ allow(account_example_net).to receive(:reset_header!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(remote_account_example_com).to have_received(:reset_header!).once
+ expect(account_example_net).to have_received(:reset_header!).once
+ end
+
+ it 'does not refresh the header for local accounts' do
+ allow(local_account).to receive(:reset_header!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(local_account).to_not have_received(:reset_header!)
+ end
+
+ it 'displays a successful message' do
+ expect { cli.refresh }.to output(
+ a_string_including('Refreshed 2 accounts')
+ ).to_stdout
+ end
+
+ context 'with --dry-run option' do
+ before do
+ cli.options = { all: true, dry_run: true }
+ end
+
+ it 'does not refresh the avatar for any account' do
+ allow(local_account).to receive(:reset_avatar!)
+ allow(remote_account_example_com).to receive(:reset_avatar!)
+ allow(account_example_net).to receive(:reset_avatar!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(local_account).to_not have_received(:reset_avatar!)
+ expect(remote_account_example_com).to_not have_received(:reset_avatar!)
+ expect(account_example_net).to_not have_received(:reset_avatar!)
+ end
+
+ it 'does not refresh the header for any account' do
+ allow(local_account).to receive(:reset_header!)
+ allow(remote_account_example_com).to receive(:reset_header!)
+ allow(account_example_net).to receive(:reset_header!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(local_account).to_not have_received(:reset_header!)
+ expect(remote_account_example_com).to_not have_received(:reset_header!)
+ expect(account_example_net).to_not have_received(:reset_header!)
+ end
+
+ it 'displays a successful message with (DRY RUN)' do
+ expect { cli.refresh }.to output(
+ a_string_including('Refreshed 2 accounts (DRY RUN)')
+ ).to_stdout
+ end
+ end
+ end
+
+ context 'with a list of accts' do
+ let!(:account_example_com_a) { Fabricate(:account, domain: 'example.com') }
+ let!(:account_example_com_b) { Fabricate(:account, domain: 'example.com') }
+ let!(:account_example_net) { Fabricate(:account, domain: 'example.net') }
+ let(:arguments) { [account_example_com_a.acct, account_example_com_b.acct] }
+
+ before do
+ allow(Account).to receive(:find_remote).with(account_example_com_a.username, account_example_com_a.domain).and_return(account_example_com_a)
+ allow(Account).to receive(:find_remote).with(account_example_com_b.username, account_example_com_b.domain).and_return(account_example_com_b)
+ allow(Account).to receive(:find_remote).with(account_example_net.username, account_example_net.domain).and_return(account_example_net)
+ end
+
+ it 'resets the avatar for the specified accounts' do
+ allow(account_example_com_a).to receive(:reset_avatar!)
+ allow(account_example_com_b).to receive(:reset_avatar!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_com_a).to have_received(:reset_avatar!).once
+ expect(account_example_com_b).to have_received(:reset_avatar!).once
+ end
+
+ it 'does not reset the avatar for unspecified accounts' do
+ allow(account_example_net).to receive(:reset_avatar!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_net).to_not have_received(:reset_avatar!)
+ end
+
+ it 'resets the header for the specified accounts' do
+ allow(account_example_com_a).to receive(:reset_header!)
+ allow(account_example_com_b).to receive(:reset_header!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_com_a).to have_received(:reset_header!).once
+ expect(account_example_com_b).to have_received(:reset_header!).once
+ end
+
+ it 'does not reset the header for unspecified accounts' do
+ allow(account_example_net).to receive(:reset_header!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_net).to_not have_received(:reset_header!)
+ end
+
+ context 'when an UnexpectedResponseError is raised' do
+ it 'displays a failure message' do
+ allow(account_example_com_a).to receive(:reset_avatar!).and_raise(Mastodon::UnexpectedResponseError)
+
+ expect { cli.refresh(*arguments) }
+ .to output(
+ a_string_including("Account failed: #{account_example_com_a.username}@#{account_example_com_a.domain}")
+ ).to_stdout
+ end
+ end
+
+ context 'when a specified account is not found' do
+ it 'exits with an error message' do
+ allow(Account).to receive(:find_remote).with(account_example_com_b.username, account_example_com_b.domain).and_return(nil)
+
+ expect { cli.refresh(*arguments) }.to output(
+ a_string_including('No such account')
+ ).to_stdout
+ .and raise_error(SystemExit)
+ end
+ end
+
+ context 'with --dry-run option' do
+ before do
+ cli.options = { dry_run: true }
+ end
+
+ it 'does not refresh the avatar for any account' do
+ allow(account_example_com_a).to receive(:reset_avatar!)
+ allow(account_example_com_b).to receive(:reset_avatar!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_com_a).to_not have_received(:reset_avatar!)
+ expect(account_example_com_b).to_not have_received(:reset_avatar!)
+ end
+
+ it 'does not refresh the header for any account' do
+ allow(account_example_com_a).to receive(:reset_header!)
+ allow(account_example_com_b).to receive(:reset_header!)
+
+ cli.refresh(*arguments)
+
+ expect(account_example_com_a).to_not have_received(:reset_header!)
+ expect(account_example_com_b).to_not have_received(:reset_header!)
+ end
+ end
+ end
+
+ context 'with --domain option' do
+ let!(:account_example_com_a) { Fabricate(:account, domain: 'example.com') }
+ let!(:account_example_com_b) { Fabricate(:account, domain: 'example.com') }
+ let!(:account_example_net) { Fabricate(:account, domain: 'example.net') }
+ let(:domain) { 'example.com' }
+ let(:scope) { Account.remote.where(domain: domain) }
+
+ before do
+ allow(cli).to receive(:parallelize_with_progress).and_yield(account_example_com_a)
+ .and_yield(account_example_com_b)
+ .and_return([2, nil])
+
+ cli.options = { domain: domain }
+ end
+
+ it 'refreshes the avatar for all accounts on specified domain' do
+ allow(account_example_com_a).to receive(:reset_avatar!)
+ allow(account_example_com_b).to receive(:reset_avatar!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(account_example_com_a).to have_received(:reset_avatar!).once
+ expect(account_example_com_b).to have_received(:reset_avatar!).once
+ end
+
+ it 'does not refresh the avatar for accounts outside specified domain' do
+ allow(account_example_net).to receive(:reset_avatar!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(account_example_net).to_not have_received(:reset_avatar!)
+ end
+
+ it 'refreshes the header for all accounts on specified domain' do
+ allow(account_example_com_a).to receive(:reset_header!)
+ allow(account_example_com_b).to receive(:reset_header!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope)
+ expect(account_example_com_a).to have_received(:reset_header!).once
+ expect(account_example_com_b).to have_received(:reset_header!).once
+ end
+
+ it 'does not refresh the header for accounts outside specified domain' do
+ allow(account_example_net).to receive(:reset_header!)
+
+ cli.refresh
+
+ expect(cli).to have_received(:parallelize_with_progress).with(scope).once
+ expect(account_example_net).to_not have_received(:reset_header!)
+ end
+ end
+
+ context 'when neither a list of accts nor options are provided' do
+ it 'exits with an error message' do
+ expect { cli.refresh }.to output(
+ a_string_including('No account(s) given')
+ ).to_stdout
+ .and raise_error(SystemExit)
+ end
+ end
+ end
end
diff --git a/spec/lib/translation_service/deepl_spec.rb b/spec/lib/translation_service/deepl_spec.rb
index 2363f8f139..5a1d0f094a 100644
--- a/spec/lib/translation_service/deepl_spec.rb
+++ b/spec/lib/translation_service/deepl_spec.rb
@@ -22,7 +22,10 @@ RSpec.describe TranslationService::DeepL do
.with(body: 'text=Hasta+la+vista&source_lang=ES&target_lang=en&tag_handling=html')
.to_return(body: '{"translations":[{"detected_source_language":"ES","text":"See you soon"}]}')
- translation = service.translate('Hasta la vista', 'es', 'en')
+ translations = service.translate(['Hasta la vista'], 'es', 'en')
+ expect(translations.size).to eq 1
+
+ translation = translations.first
expect(translation.detected_source_language).to eq 'es'
expect(translation.provider).to eq 'DeepL.com'
expect(translation.text).to eq 'See you soon'
@@ -31,12 +34,27 @@ RSpec.describe TranslationService::DeepL do
it 'returns translation with auto-detected source language' do
stub_request(:post, 'https://api.deepl.com/v2/translate')
.with(body: 'text=Guten+Tag&source_lang&target_lang=en&tag_handling=html')
- .to_return(body: '{"translations":[{"detected_source_language":"DE","text":"Good Morning"}]}')
+ .to_return(body: '{"translations":[{"detected_source_language":"DE","text":"Good morning"}]}')
- translation = service.translate('Guten Tag', nil, 'en')
+ translations = service.translate(['Guten Tag'], nil, 'en')
+ expect(translations.size).to eq 1
+
+ translation = translations.first
expect(translation.detected_source_language).to eq 'de'
expect(translation.provider).to eq 'DeepL.com'
- expect(translation.text).to eq 'Good Morning'
+ expect(translation.text).to eq 'Good morning'
+ end
+
+ it 'returns translation of multiple texts' do
+ stub_request(:post, 'https://api.deepl.com/v2/translate')
+ .with(body: 'text=Guten+Morgen&text=Gute+Nacht&source_lang=DE&target_lang=en&tag_handling=html')
+ .to_return(body: '{"translations":[{"detected_source_language":"DE","text":"Good morning"},{"detected_source_language":"DE","text":"Good night"}]}')
+
+ translations = service.translate(['Guten Morgen', 'Gute Nacht'], 'de', 'en')
+ expect(translations.size).to eq 2
+
+ expect(translations.first.text).to eq 'Good morning'
+ expect(translations.last.text).to eq 'Good night'
end
end
diff --git a/spec/lib/translation_service/libre_translate_spec.rb b/spec/lib/translation_service/libre_translate_spec.rb
index fbd726a7ea..90966a8ebf 100644
--- a/spec/lib/translation_service/libre_translate_spec.rb
+++ b/spec/lib/translation_service/libre_translate_spec.rb
@@ -31,24 +31,42 @@ RSpec.describe TranslationService::LibreTranslate do
describe '#translate' do
it 'returns translation with specified source language' do
stub_request(:post, 'https://libretranslate.example.com/translate')
- .with(body: '{"q":"Hasta la vista","source":"es","target":"en","format":"html","api_key":"my-api-key"}')
- .to_return(body: '{"translatedText": "See you"}')
+ .with(body: '{"q":["Hasta la vista"],"source":"es","target":"en","format":"html","api_key":"my-api-key"}')
+ .to_return(body: '{"translatedText": ["See you"]}')
- translation = service.translate('Hasta la vista', 'es', 'en')
- expect(translation.detected_source_language).to eq 'es'
+ translations = service.translate(['Hasta la vista'], 'es', 'en')
+ expect(translations.size).to eq 1
+
+ translation = translations.first
+ expect(translation.detected_source_language).to be 'es'
expect(translation.provider).to eq 'LibreTranslate'
expect(translation.text).to eq 'See you'
end
it 'returns translation with auto-detected source language' do
stub_request(:post, 'https://libretranslate.example.com/translate')
- .with(body: '{"q":"Guten Morgen","source":"auto","target":"en","format":"html","api_key":"my-api-key"}')
- .to_return(body: '{"detectedLanguage":{"confidence":92,"language":"de"},"translatedText":"Good morning"}')
+ .with(body: '{"q":["Guten Morgen"],"source":"auto","target":"en","format":"html","api_key":"my-api-key"}')
+ .to_return(body: '{"detectedLanguage": [{"confidence": 92, "language": "de"}], "translatedText": ["Good morning"]}')
- translation = service.translate('Guten Morgen', nil, 'en')
- expect(translation.detected_source_language).to be_nil
+ translations = service.translate(['Guten Morgen'], nil, 'en')
+ expect(translations.size).to eq 1
+
+ translation = translations.first
+ expect(translation.detected_source_language).to eq 'de'
expect(translation.provider).to eq 'LibreTranslate'
expect(translation.text).to eq 'Good morning'
end
+
+ it 'returns translation of multiple texts' do
+ stub_request(:post, 'https://libretranslate.example.com/translate')
+ .with(body: '{"q":["Guten Morgen","Gute Nacht"],"source":"de","target":"en","format":"html","api_key":"my-api-key"}')
+ .to_return(body: '{"translatedText": ["Good morning", "Good night"]}')
+
+ translations = service.translate(['Guten Morgen', 'Gute Nacht'], 'de', 'en')
+ expect(translations.size).to eq 2
+
+ expect(translations.first.text).to eq 'Good morning'
+ expect(translations.last.text).to eq 'Good night'
+ end
end
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 22078a6cbc..d7e2b5c185 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -62,6 +62,10 @@ RSpec.configure do |config|
config.infer_spec_type_from_file_location!
config.filter_rails_from_backtrace!
+ config.define_derived_metadata(file_path: Regexp.new('spec/lib/mastodon/cli')) do |metadata|
+ metadata[:type] = :cli
+ end
+
config.include Devise::Test::ControllerHelpers, type: :controller
config.include Devise::Test::ControllerHelpers, type: :helper
config.include Devise::Test::ControllerHelpers, type: :view
@@ -73,6 +77,10 @@ RSpec.configure do |config|
config.include Redisable
config.include SignedRequestHelpers, type: :request
+ config.before :each, type: :cli do
+ stub_stdout
+ end
+
config.before :each, type: :feature do
https = ENV['LOCAL_HTTPS'] == 'true'
Capybara.app_host = "http#{https ? 's' : ''}://#{ENV.fetch('LOCAL_DOMAIN')}"
@@ -106,6 +114,10 @@ def attachment_fixture(name)
Rails.root.join('spec', 'fixtures', 'files', name).open
end
+def stub_stdout
+ allow($stdout).to receive(:write)
+end
+
def stub_jsonld_contexts!
stub_request(:get, 'https://www.w3.org/ns/activitystreams').to_return(request_fixture('json-ld.activitystreams.txt'))
stub_request(:get, 'https://w3id.org/identity/v1').to_return(request_fixture('json-ld.identity.txt'))
diff --git a/spec/services/translate_status_service_spec.rb b/spec/services/translate_status_service_spec.rb
new file mode 100644
index 0000000000..074f55544a
--- /dev/null
+++ b/spec/services/translate_status_service_spec.rb
@@ -0,0 +1,226 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe TranslateStatusService, type: :service do
+ subject(:service) { described_class.new }
+
+ let(:status) { Fabricate(:status, text: text, spoiler_text: spoiler_text, language: 'en', preloadable_poll: poll, media_attachments: media_attachments) }
+ let(:text) { 'Hello' }
+ let(:spoiler_text) { '' }
+ let(:poll) { nil }
+ let(:media_attachments) { [] }
+
+ before do
+ Fabricate(:custom_emoji, shortcode: 'highfive')
+ end
+
+ describe '#call' do
+ before do
+ translation_service = TranslationService.new
+ allow(translation_service).to receive(:languages).and_return({ 'en' => ['es'] })
+ allow(translation_service).to receive(:translate) do |texts|
+ texts.map do |text|
+ TranslationService::Translation.new(
+ text: text.gsub('Hello', 'Hola').gsub('higfive', 'cincoaltos'),
+ detected_source_language: 'en',
+ provider: 'Dummy'
+ )
+ end
+ end
+
+ allow(TranslationService).to receive(:configured?).and_return(true)
+ allow(TranslationService).to receive(:configured).and_return(translation_service)
+ end
+
+ it 'returns translated status content' do
+ expect(service.call(status, 'es').content).to eq 'Hola
'
+ end
+
+ it 'returns source language' do
+ expect(service.call(status, 'es').detected_source_language).to eq 'en'
+ end
+
+ it 'returns translation provider' do
+ expect(service.call(status, 'es').provider).to eq 'Dummy'
+ end
+
+ it 'returns original status' do
+ expect(service.call(status, 'es').status).to eq status
+ end
+
+ describe 'status has content with custom emoji' do
+ let(:text) { 'Hello & :highfive:' }
+
+ it 'does not translate shortcode' do
+ expect(service.call(status, 'es').content).to eq 'Hola & :highfive:
'
+ end
+ end
+
+ describe 'status has no spoiler_text' do
+ it 'returns an empty string' do
+ expect(service.call(status, 'es').spoiler_text).to eq ''
+ end
+ end
+
+ describe 'status has spoiler_text' do
+ let(:spoiler_text) { 'Hello & Hello!' }
+
+ it 'translates the spoiler text' do
+ expect(service.call(status, 'es').spoiler_text).to eq 'Hola & Hola!'
+ end
+ end
+
+ describe 'status has spoiler_text with custom emoji' do
+ let(:spoiler_text) { 'Hello :highfive:' }
+
+ it 'does not translate shortcode' do
+ expect(service.call(status, 'es').spoiler_text).to eq 'Hola :highfive:'
+ end
+ end
+
+ describe 'status has spoiler_text with unmatched custom emoji' do
+ let(:spoiler_text) { 'Hello :Hello:' }
+
+ it 'translates the invalid shortcode' do
+ expect(service.call(status, 'es').spoiler_text).to eq 'Hola :Hola:'
+ end
+ end
+
+ describe 'status has poll' do
+ let(:poll) { Fabricate(:poll, options: ['Hello 1', 'Hello 2']) }
+
+ it 'translates the poll option title' do
+ status_translation = service.call(status, 'es')
+ expect(status_translation.poll_options.size).to eq 2
+ expect(status_translation.poll_options.first.title).to eq 'Hola 1'
+ end
+ end
+
+ describe 'status has media attachment' do
+ let(:media_attachments) { [Fabricate(:media_attachment, description: 'Hello & :highfive:')] }
+
+ it 'translates the media attachment description' do
+ status_translation = service.call(status, 'es')
+
+ media_attachment = status_translation.media_attachments.first
+ expect(media_attachment.id).to eq media_attachments.first.id
+ expect(media_attachment.description).to eq 'Hola & :highfive:'
+ end
+ end
+ end
+
+ describe '#source_texts' do
+ before do
+ service.instance_variable_set(:@status, status)
+ end
+
+ describe 'status only has content' do
+ it 'returns formatted content' do
+ expect(service.send(:source_texts)).to eq({ content: 'Hello
' })
+ end
+ end
+
+ describe 'status content contains custom emoji' do
+ let(:status) { Fabricate(:status, text: 'Hello :highfive:') }
+
+ it 'returns formatted content' do
+ source_texts = service.send(:source_texts)
+ expect(source_texts[:content]).to eq 'Hello :highfive:
'
+ end
+ end
+
+ describe 'status content contains tags' do
+ let(:status) { Fabricate(:status, text: 'Hello #hola') }
+
+ it 'returns formatted content' do
+ source_texts = service.send(:source_texts)
+ expect(source_texts[:content]).to include 'Hello :highfive:'
+ end
+ end
+
+ describe 'status has poll' do
+ let(:poll) { Fabricate(:poll, options: %w(Blue Green)) }
+
+ it 'returns formatted poll options' do
+ source_texts = service.send(:source_texts)
+ expect(source_texts.size).to eq 3
+ expect(source_texts.values).to eq %w(Hello
Blue Green)
+
+ expect(source_texts.keys.first).to eq :content
+
+ option1 = source_texts.keys.second
+ expect(option1).to be_a Poll::Option
+ expect(option1.id).to eq '0'
+ expect(option1.title).to eq 'Blue'
+
+ option2 = source_texts.keys.third
+ expect(option2).to be_a Poll::Option
+ expect(option2.id).to eq '1'
+ expect(option2.title).to eq 'Green'
+ end
+ end
+
+ describe 'status has poll with custom emoji' do
+ let(:poll) { Fabricate(:poll, options: ['Blue', 'Green :highfive:']) }
+
+ it 'returns formatted poll options' do
+ html = service.send(:source_texts).values.last
+ expect(html).to eq 'Green :highfive:'
+ end
+ end
+
+ describe 'status has media attachments' do
+ let(:text) { '' }
+ let(:media_attachments) { [Fabricate(:media_attachment, description: 'Hello :highfive:')] }
+
+ it 'returns media attachments without custom emoji rendering' do
+ source_texts = service.send(:source_texts)
+ expect(source_texts.size).to eq 1
+
+ key, text = source_texts.first
+ expect(key).to eq media_attachments.first
+ expect(text).to eq 'Hello :highfive:'
+ end
+ end
+ end
+
+ describe '#wrap_emoji_shortcodes' do
+ before do
+ service.instance_variable_set(:@status, status)
+ end
+
+ describe 'string contains custom emoji' do
+ let(:text) { ':highfive:' }
+
+ it 'renders the emoji' do
+ html = service.send(:wrap_emoji_shortcodes, 'Hello :highfive:'.html_safe)
+ expect(html).to eq 'Hello :highfive:'
+ end
+ end
+ end
+
+ describe '#unwrap_emoji_shortcodes' do
+ describe 'string contains custom emoji' do
+ it 'inserts the shortcode' do
+ fragment = service.send(:unwrap_emoji_shortcodes, 'Hello :highfive:!
')
+ expect(fragment.to_html).to eq 'Hello :highfive:!
'
+ end
+
+ it 'preserves other attributes than translate=no' do
+ fragment = service.send(:unwrap_emoji_shortcodes, 'Hello :highfive:!
')
+ expect(fragment.to_html).to eq 'Hello :highfive:!
'
+ end
+ end
+ end
+end
diff --git a/yarn.lock b/yarn.lock
index 92d0db2ec3..269e5c1789 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -31,12 +31,12 @@
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5":
- version "7.21.7"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc"
- integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.0", "@babel/compat-data@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e"
+ integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==
-"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.8", "@babel/core@^7.7.2":
+"@babel/core@^7.10.4", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3":
version "7.21.8"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4"
integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==
@@ -57,12 +57,33 @@
json5 "^2.2.2"
semver "^6.3.0"
-"@babel/generator@^7.21.5", "@babel/generator@^7.7.2":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f"
- integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==
+"@babel/core@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd"
+ integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==
dependencies:
- "@babel/types" "^7.21.5"
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.22.0"
+ "@babel/helper-compilation-targets" "^7.22.1"
+ "@babel/helper-module-transforms" "^7.22.1"
+ "@babel/helpers" "^7.22.0"
+ "@babel/parser" "^7.22.0"
+ "@babel/template" "^7.21.9"
+ "@babel/traverse" "^7.22.1"
+ "@babel/types" "^7.22.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.2"
+ semver "^6.3.0"
+
+"@babel/generator@^7.21.5", "@babel/generator@^7.22.0", "@babel/generator@^7.22.3", "@babel/generator@^7.7.2":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e"
+ integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==
+ dependencies:
+ "@babel/types" "^7.22.3"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
@@ -90,31 +111,17 @@
"@babel/helper-annotate-as-pure" "^7.18.6"
"@babel/types" "^7.19.0"
-"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366"
- integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==
+"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5", "@babel/helper-compilation-targets@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz#bfcd6b7321ffebe33290d68550e2c9d7eb7c7a58"
+ integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==
dependencies:
- "@babel/compat-data" "^7.21.5"
+ "@babel/compat-data" "^7.22.0"
"@babel/helper-validator-option" "^7.21.0"
browserslist "^4.21.3"
lru-cache "^5.1.1"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.18.6":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
- integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.21.0"
- "@babel/helper-member-expression-to-functions" "^7.21.0"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/helper-split-export-declaration" "^7.18.6"
-
"@babel/helper-create-class-features-plugin@^7.21.0":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18"
@@ -129,6 +136,21 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
"@babel/helper-split-export-declaration" "^7.18.6"
+"@babel/helper-create-class-features-plugin@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz#ae3de70586cc757082ae3eba57240d42f468c41b"
+ integrity sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.22.1"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.22.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.22.1"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ semver "^6.3.0"
+
"@babel/helper-create-regexp-features-plugin@^7.18.6":
version "7.19.0"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b"
@@ -137,18 +159,19 @@
"@babel/helper-annotate-as-pure" "^7.18.6"
regexpu-core "^5.1.0"
-"@babel/helper-create-regexp-features-plugin@^7.20.5":
- version "7.21.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5"
- integrity sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==
+"@babel/helper-create-regexp-features-plugin@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz#a7ed9a8488b45b467fca353cd1a44dc5f0cf5c70"
+ integrity sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
regexpu-core "^5.3.1"
+ semver "^6.3.0"
-"@babel/helper-define-polyfill-provider@^0.3.3":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
- integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
+"@babel/helper-define-polyfill-provider@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8"
+ integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==
dependencies:
"@babel/helper-compilation-targets" "^7.17.7"
"@babel/helper-plugin-utils" "^7.16.7"
@@ -162,10 +185,10 @@
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
-"@babel/helper-environment-visitor@^7.21.5":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba"
- integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==
+"@babel/helper-environment-visitor@^7.21.5", "@babel/helper-environment-visitor@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8"
+ integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==
"@babel/helper-explode-assignable-expression@^7.18.6":
version "7.18.6"
@@ -211,6 +234,13 @@
dependencies:
"@babel/types" "^7.21.0"
+"@babel/helper-member-expression-to-functions@^7.22.0":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz#4b77a12c1b4b8e9e28736ed47d8b91f00976911f"
+ integrity sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==
+ dependencies:
+ "@babel/types" "^7.22.3"
+
"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af"
@@ -218,19 +248,19 @@
dependencies:
"@babel/types" "^7.21.4"
-"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420"
- integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63"
+ integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==
dependencies:
- "@babel/helper-environment-visitor" "^7.21.5"
+ "@babel/helper-environment-visitor" "^7.22.1"
"@babel/helper-module-imports" "^7.21.4"
"@babel/helper-simple-access" "^7.21.5"
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.5"
- "@babel/types" "^7.21.5"
+ "@babel/template" "^7.21.9"
+ "@babel/traverse" "^7.22.1"
+ "@babel/types" "^7.22.0"
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
@@ -266,6 +296,18 @@
"@babel/traverse" "^7.20.7"
"@babel/types" "^7.20.7"
+"@babel/helper-replace-supers@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz#38cf6e56f7dc614af63a21b45565dd623f0fdc95"
+ integrity sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.1"
+ "@babel/helper-member-expression-to-functions" "^7.22.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/template" "^7.21.9"
+ "@babel/traverse" "^7.22.1"
+ "@babel/types" "^7.22.0"
+
"@babel/helper-simple-access@^7.21.5":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee"
@@ -297,7 +339,7 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
-"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0":
+"@babel/helper-validator-option@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
@@ -312,14 +354,14 @@
"@babel/traverse" "^7.18.10"
"@babel/types" "^7.18.10"
-"@babel/helpers@^7.21.5":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08"
- integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==
+"@babel/helpers@^7.21.5", "@babel/helpers@^7.22.0":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.3.tgz#53b74351da9684ea2f694bf0877998da26dd830e"
+ integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==
dependencies:
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.5"
- "@babel/types" "^7.21.5"
+ "@babel/template" "^7.21.9"
+ "@babel/traverse" "^7.22.1"
+ "@babel/types" "^7.22.3"
"@babel/highlight@^7.18.6":
version "7.18.6"
@@ -330,10 +372,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8":
- version "7.21.8"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8"
- integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4":
+ version "7.22.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32"
+ integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -342,125 +384,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1"
- integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz#a75be1365c0c3188c51399a662168c1c98108659"
+ integrity sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-plugin-utils" "^7.21.5"
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/plugin-proposal-optional-chaining" "^7.20.7"
-
-"@babel/plugin-proposal-async-generator-functions@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
- integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-remap-async-to-generator" "^7.18.9"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
-
-"@babel/plugin-proposal-class-properties@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
- integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-proposal-class-static-block@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d"
- integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.21.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
-
-"@babel/plugin-proposal-dynamic-import@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
- integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-
-"@babel/plugin-proposal-export-namespace-from@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
- integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-
-"@babel/plugin-proposal-json-strings@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
- integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
-
-"@babel/plugin-proposal-logical-assignment-operators@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83"
- integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
- integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-
-"@babel/plugin-proposal-numeric-separator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
- integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
-
-"@babel/plugin-proposal-object-rest-spread@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
- integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
- dependencies:
- "@babel/compat-data" "^7.20.5"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.20.7"
-
-"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
- integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-
-"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea"
- integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-
-"@babel/plugin-proposal-private-methods@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
- integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-transform-optional-chaining" "^7.22.3"
"@babel/plugin-proposal-private-property-in-object@^7.21.0":
version "7.21.0"
@@ -472,7 +403,7 @@
"@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
@@ -529,6 +460,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.19.0"
+"@babel/plugin-syntax-import-attributes@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz#d7168f22b9b49a6cc1792cec78e06a18ad2e7b4b"
+ integrity sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+
"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
@@ -543,7 +481,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.7.2":
+"@babel/plugin-syntax-jsx@7", "@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.7.2":
version "7.21.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2"
integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==
@@ -620,6 +558,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
+ integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
"@babel/plugin-transform-arrow-functions@^7.21.5":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929"
@@ -627,6 +573,16 @@
dependencies:
"@babel/helper-plugin-utils" "^7.21.5"
+"@babel/plugin-transform-async-generator-functions@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz#3ed99924c354fb9e80dabb2cc8d002c702e94527"
+ integrity sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
"@babel/plugin-transform-async-to-generator@^7.20.7":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354"
@@ -650,6 +606,23 @@
dependencies:
"@babel/helper-plugin-utils" "^7.20.2"
+"@babel/plugin-transform-class-properties@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz#3407145e513830df77f0cef828b8b231c166fe4c"
+ integrity sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-class-static-block@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz#e352cf33567385c731a8f21192efeba760358773"
+ integrity sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
"@babel/plugin-transform-classes@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665"
@@ -695,6 +668,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.9"
+"@babel/plugin-transform-dynamic-import@^7.22.1":
+ version "7.22.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz#6c56afaf896a07026330cf39714532abed8d9ed1"
+ integrity sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
"@babel/plugin-transform-exponentiation-operator@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
@@ -703,6 +684,14 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
+"@babel/plugin-transform-export-namespace-from@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz#9b8700aa495007d3bebac8358d1c562434b680b9"
+ integrity sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
"@babel/plugin-transform-for-of@^7.21.5":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc"
@@ -719,6 +708,14 @@
"@babel/helper-function-name" "^7.18.9"
"@babel/helper-plugin-utils" "^7.18.9"
+"@babel/plugin-transform-json-strings@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz#a181b8679cf7c93e9d0e3baa5b1776d65be601a9"
+ integrity sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
"@babel/plugin-transform-literals@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
@@ -726,6 +723,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.9"
+"@babel/plugin-transform-logical-assignment-operators@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz#9e021455810f33b0baccb82fb759b194f5dc36f0"
+ integrity sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
"@babel/plugin-transform-member-expression-literals@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
@@ -750,14 +755,14 @@
"@babel/helper-plugin-utils" "^7.21.5"
"@babel/helper-simple-access" "^7.21.5"
-"@babel/plugin-transform-modules-systemjs@^7.20.11":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e"
- integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==
+"@babel/plugin-transform-modules-systemjs@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e"
+ integrity sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==
dependencies:
"@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-module-transforms" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
"@babel/helper-validator-identifier" "^7.19.1"
"@babel/plugin-transform-modules-umd@^7.18.6":
@@ -768,20 +773,47 @@
"@babel/helper-module-transforms" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8"
- integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz#db6fb77e6b3b53ec3b8d370246f0b7cf67d35ab4"
+ integrity sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.20.5"
- "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
-"@babel/plugin-transform-new-target@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
- integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
+"@babel/plugin-transform-new-target@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz#deb0377d741cbee2f45305868b9026dcd6dd96e2"
+ integrity sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-nullish-coalescing-operator@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz#8c519f8bf5af94a9ca6f65cf422a9d3396e542b9"
+ integrity sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-transform-numeric-separator@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz#02493070ca6685884b0eee705363ee4da2132ab0"
+ integrity sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-transform-object-rest-spread@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz#da6fba693effb8c203d8c3bdf7bf4e2567e802e9"
+ integrity sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw==
+ dependencies:
+ "@babel/compat-data" "^7.22.3"
+ "@babel/helper-compilation-targets" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.22.3"
"@babel/plugin-transform-object-super@^7.18.6":
version "7.18.6"
@@ -791,12 +823,47 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/helper-replace-supers" "^7.18.6"
-"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3":
- version "7.21.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db"
- integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==
+"@babel/plugin-transform-optional-catch-binding@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz#e971a083fc7d209d9cd18253853af1db6d8dc42f"
+ integrity sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g==
dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-transform-optional-chaining@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz#5fd24a4a7843b76da6aeec23c7f551da5d365290"
+ integrity sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-transform-parameters@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz#24477acfd2fd2bc901df906c9bf17fbcfeee900d"
+ integrity sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-private-methods@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz#adac38020bab5047482d3297107c1f58e9c574f6"
+ integrity sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-private-property-in-object@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz#031621b02c7b7d95389de1a3dba2fe9e8c548e56"
+ integrity sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-transform-property-literals@^7.18.6":
version "7.18.6"
@@ -827,16 +894,16 @@
dependencies:
"@babel/plugin-transform-react-jsx" "^7.18.6"
-"@babel/plugin-transform-react-jsx@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff"
- integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==
+"@babel/plugin-transform-react-jsx@^7.18.6", "@babel/plugin-transform-react-jsx@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.3.tgz#5a1f380df3703ba92eb1a930a539c6d88836f690"
+ integrity sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-jsx" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/helper-module-imports" "^7.21.4"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/plugin-syntax-jsx" "^7.21.4"
+ "@babel/types" "^7.22.3"
"@babel/plugin-transform-react-pure-annotations@^7.18.6":
version "7.18.6"
@@ -861,16 +928,16 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-runtime@^7.21.4":
- version "7.21.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa"
- integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==
+"@babel/plugin-transform-runtime@^7.22.4":
+ version "7.22.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.4.tgz#f8353f313f18c3ce1315688631ec48657b97af42"
+ integrity sha512-Urkiz1m4zqiRo17klj+l3nXgiRTFQng91Bc1eiLF7BMQu1e7wE5Gcq9xSv062IF068NHjcutSbIMev60gXxAvA==
dependencies:
"@babel/helper-module-imports" "^7.21.4"
- "@babel/helper-plugin-utils" "^7.20.2"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ babel-plugin-polyfill-corejs2 "^0.4.3"
+ babel-plugin-polyfill-corejs3 "^0.8.1"
+ babel-plugin-polyfill-regenerator "^0.5.0"
semver "^6.3.0"
"@babel/plugin-transform-shorthand-properties@^7.18.6":
@@ -926,6 +993,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.21.5"
+"@babel/plugin-transform-unicode-property-regex@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz#597b6a614dc93eaae605ee293e674d79d32eb380"
+ integrity sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+
"@babel/plugin-transform-unicode-regex@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
@@ -934,38 +1009,33 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.21.5":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb"
- integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==
+"@babel/plugin-transform-unicode-sets-regex@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz#7c14ee33fa69782b0101d0f7143d3fc73ce00700"
+ integrity sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw==
dependencies:
- "@babel/compat-data" "^7.21.5"
- "@babel/helper-compilation-targets" "^7.21.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.1"
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.22.4":
+ version "7.22.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.4.tgz#c86a82630f0e8c61d9bb9327b7b896732028cbed"
+ integrity sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ==
+ dependencies:
+ "@babel/compat-data" "^7.22.3"
+ "@babel/helper-compilation-targets" "^7.22.1"
"@babel/helper-plugin-utils" "^7.21.5"
"@babel/helper-validator-option" "^7.21.0"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7"
- "@babel/plugin-proposal-async-generator-functions" "^7.20.7"
- "@babel/plugin-proposal-class-properties" "^7.18.6"
- "@babel/plugin-proposal-class-static-block" "^7.21.0"
- "@babel/plugin-proposal-dynamic-import" "^7.18.6"
- "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
- "@babel/plugin-proposal-json-strings" "^7.18.6"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
- "@babel/plugin-proposal-numeric-separator" "^7.18.6"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.7"
- "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
- "@babel/plugin-proposal-optional-chaining" "^7.21.0"
- "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.3"
"@babel/plugin-proposal-private-property-in-object" "^7.21.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-syntax-import-assertions" "^7.20.0"
+ "@babel/plugin-syntax-import-attributes" "^7.22.3"
"@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
@@ -976,28 +1046,43 @@
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
"@babel/plugin-transform-arrow-functions" "^7.21.5"
+ "@babel/plugin-transform-async-generator-functions" "^7.22.3"
"@babel/plugin-transform-async-to-generator" "^7.20.7"
"@babel/plugin-transform-block-scoped-functions" "^7.18.6"
"@babel/plugin-transform-block-scoping" "^7.21.0"
+ "@babel/plugin-transform-class-properties" "^7.22.3"
+ "@babel/plugin-transform-class-static-block" "^7.22.3"
"@babel/plugin-transform-classes" "^7.21.0"
"@babel/plugin-transform-computed-properties" "^7.21.5"
"@babel/plugin-transform-destructuring" "^7.21.3"
"@babel/plugin-transform-dotall-regex" "^7.18.6"
"@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-dynamic-import" "^7.22.1"
"@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-export-namespace-from" "^7.22.3"
"@babel/plugin-transform-for-of" "^7.21.5"
"@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-json-strings" "^7.22.3"
"@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.22.3"
"@babel/plugin-transform-member-expression-literals" "^7.18.6"
"@babel/plugin-transform-modules-amd" "^7.20.11"
"@babel/plugin-transform-modules-commonjs" "^7.21.5"
- "@babel/plugin-transform-modules-systemjs" "^7.20.11"
+ "@babel/plugin-transform-modules-systemjs" "^7.22.3"
"@babel/plugin-transform-modules-umd" "^7.18.6"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5"
- "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.3"
+ "@babel/plugin-transform-new-target" "^7.22.3"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.3"
+ "@babel/plugin-transform-numeric-separator" "^7.22.3"
+ "@babel/plugin-transform-object-rest-spread" "^7.22.3"
"@babel/plugin-transform-object-super" "^7.18.6"
- "@babel/plugin-transform-parameters" "^7.21.3"
+ "@babel/plugin-transform-optional-catch-binding" "^7.22.3"
+ "@babel/plugin-transform-optional-chaining" "^7.22.3"
+ "@babel/plugin-transform-parameters" "^7.22.3"
+ "@babel/plugin-transform-private-methods" "^7.22.3"
+ "@babel/plugin-transform-private-property-in-object" "^7.22.3"
"@babel/plugin-transform-property-literals" "^7.18.6"
"@babel/plugin-transform-regenerator" "^7.21.5"
"@babel/plugin-transform-reserved-words" "^7.18.6"
@@ -1007,13 +1092,15 @@
"@babel/plugin-transform-template-literals" "^7.18.9"
"@babel/plugin-transform-typeof-symbol" "^7.18.9"
"@babel/plugin-transform-unicode-escapes" "^7.21.5"
+ "@babel/plugin-transform-unicode-property-regex" "^7.22.3"
"@babel/plugin-transform-unicode-regex" "^7.18.6"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.22.3"
"@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.21.5"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
- core-js-compat "^3.25.1"
+ "@babel/types" "^7.22.4"
+ babel-plugin-polyfill-corejs2 "^0.4.3"
+ babel-plugin-polyfill-corejs3 "^0.8.1"
+ babel-plugin-polyfill-regenerator "^0.5.0"
+ core-js-compat "^3.30.2"
semver "^6.3.0"
"@babel/preset-modules@^0.1.5":
@@ -1027,15 +1114,15 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/preset-react@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d"
- integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==
+"@babel/preset-react@^7.22.3":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.3.tgz#2ec7f91d0c924fa2ea0c7cfbbf690bc62b79cd84"
+ integrity sha512-lxDz1mnZ9polqClBCVBjIVUypoB4qV3/tZUDb/IlYbW1kiiLaXaX+bInbRjl+lNQ/iUZraQ3+S8daEmoELMWug==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-validator-option" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/helper-validator-option" "^7.21.0"
"@babel/plugin-transform-react-display-name" "^7.18.6"
- "@babel/plugin-transform-react-jsx" "^7.18.6"
+ "@babel/plugin-transform-react-jsx" "^7.22.3"
"@babel/plugin-transform-react-jsx-development" "^7.18.6"
"@babel/plugin-transform-react-pure-annotations" "^7.18.6"
@@ -1062,10 +1149,10 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
- version "7.21.5"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200"
- integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
+ version "7.22.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb"
+ integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==
dependencies:
regenerator-runtime "^0.13.11"
@@ -1078,7 +1165,16 @@
"@babel/parser" "^7.20.7"
"@babel/types" "^7.20.7"
-"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2":
+"@babel/template@^7.21.9":
+ version "7.21.9"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb"
+ integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==
+ dependencies:
+ "@babel/code-frame" "^7.21.4"
+ "@babel/parser" "^7.21.9"
+ "@babel/types" "^7.21.5"
+
+"@babel/traverse@7":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133"
integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==
@@ -1094,7 +1190,23 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.5", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2":
+ version "7.22.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0"
+ integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==
+ dependencies:
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.22.3"
+ "@babel/helper-environment-visitor" "^7.22.1"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.22.4"
+ "@babel/types" "^7.22.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6"
integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==
@@ -1103,6 +1215,15 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
+"@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4":
+ version "7.22.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071"
+ integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==
+ dependencies:
+ "@babel/helper-string-parser" "^7.21.5"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ to-fast-properties "^2.0.0"
+
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -1269,6 +1390,11 @@
dependencies:
"@floating-ui/core" "^1.0.1"
+"@formatjs/cli@^6.1.1":
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.1.1.tgz#089d6d25fe96490f8d1401a53705b3cdfefd7afb"
+ integrity sha512-prUblUQRJwFQqfmBtRWXZFKX+QmhXQkBKRl54hWTCwenskorK6+LTlm9TFbUDhfib2Xt3iDsjk7o9LpeU/AQCw==
+
"@formatjs/ecma402-abstract@1.15.0":
version "1.15.0"
resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.15.0.tgz#0a285a5dc69889e15d53803bd5036272e23e5a18"
@@ -1277,6 +1403,13 @@
"@formatjs/intl-localematcher" "0.2.32"
tslib "^2.4.0"
+"@formatjs/fast-memoize@2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz#f15aaa73caad5562899c69bdcad8db82adcd3b0b"
+ integrity sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA==
+ dependencies:
+ tslib "^2.4.0"
+
"@formatjs/icu-messageformat-parser@2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.4.0.tgz#e165f3594c68416ce15f63793768251de2a85f88"
@@ -1294,6 +1427,24 @@
"@formatjs/ecma402-abstract" "1.15.0"
tslib "^2.4.0"
+"@formatjs/intl-displaynames@6.3.2":
+ version "6.3.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.3.2.tgz#be169393a132eed9ca9c10ccb9d22ab150e24c90"
+ integrity sha512-kBOh0O7QYKLUqaZujLSEF2+au017plPp63R6Hrokl+oDtLyTt9y9pEuCTbOKh/P8CC9THnDLKRKgeVWZw5Ek8A==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/intl-localematcher" "0.2.32"
+ tslib "^2.4.0"
+
+"@formatjs/intl-listformat@7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.2.2.tgz#d787932b5d6f1f936c73c5fec531692ab7069c7a"
+ integrity sha512-YIruRGwUrmgVOXjWi6VbwPcRNBkEfgK2DFjyyqopCmpfJ+39vnl46oLpVchErnuXs6kkARy5GcGaGV7xRsH4lw==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/intl-localematcher" "0.2.32"
+ tslib "^2.4.0"
+
"@formatjs/intl-localematcher@0.2.32":
version "0.2.32"
resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz#00d4d307cd7d514b298e15a11a369b86c8933ec1"
@@ -1301,17 +1452,27 @@
dependencies:
tslib "^2.4.0"
-"@formatjs/intl-unified-numberformat@^3.3.3":
- version "3.3.6"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.6.tgz#ab69818f7568894023cb31fdb5b5c7eed62c6537"
- integrity sha512-VQYswh9Pxf4kN6FQvKprAQwSJrF93eJstCDPM1HIt3c3O6NqPFWNWhZ91PLTppOV11rLYsFK11ZxiGbnLNiPTg==
+"@formatjs/intl-pluralrules@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.2.2.tgz#6322d20a6d0172459e4faf4b0f06603c931673aa"
+ integrity sha512-mEbnbRzsSCIYqaBmrmUlOsPu5MG6KfMcnzekPzUrUucX2dNiI1KWBGHK6IoXl5c8zx60L1NXJ6cSQ7akoc15SQ==
dependencies:
- "@formatjs/intl-utils" "^2.2.5"
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/intl-localematcher" "0.2.32"
+ tslib "^2.4.0"
-"@formatjs/intl-utils@^2.2.5":
- version "2.2.5"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.2.5.tgz#eaafd94df3d102ee13e54e80f992a33868a6b1e8"
- integrity sha512-p7gcmazKROteL4IECCp03Qrs790fZ8tbemUAjQu0+K0AaAlK49rI1SIFFq3LzDUAqXIshV95JJhRe/yXxkal5g==
+"@formatjs/intl@2.7.2":
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.7.2.tgz#83dc77080a984d4883195bed39eedd947ebfd3d7"
+ integrity sha512-ziiQfnXwY0/rXhtohSAmYMqDjRsihoMKdl8H2aA+FvxG9638E0XrvfBFCb+1HhimNiuqRz5fTY7F/bZtsJxsjA==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/fast-memoize" "2.0.1"
+ "@formatjs/icu-messageformat-parser" "2.4.0"
+ "@formatjs/intl-displaynames" "6.3.2"
+ "@formatjs/intl-listformat" "7.2.2"
+ intl-messageformat "10.3.5"
+ tslib "^2.4.0"
"@formatjs/ts-transformer@3.13.1":
version "3.13.1"
@@ -1867,7 +2028,18 @@
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc"
integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==
-"@types/babel__core@^7.1.12", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.3":
+"@types/babel__core@*", "@types/babel__core@^7.1.7":
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891"
+ integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__core@^7.1.12", "@types/babel__core@^7.1.14":
version "7.1.18"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8"
integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==
@@ -1878,10 +2050,10 @@
"@types/babel__template" "*"
"@types/babel__traverse" "*"
-"@types/babel__core@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891"
- integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==
+"@types/babel__core@^7.20.1":
+ version "7.20.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b"
+ integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==
dependencies:
"@babel/parser" "^7.20.7"
"@babel/types" "^7.20.7"
@@ -1896,6 +2068,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@types/babel__helper-plugin-utils@^7.10.0":
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.0.tgz#dcd2416f9c189d5837ab2a276368cf67134efe78"
+ integrity sha512-60YtHzhQ9HAkToHVV+TB4VLzBn9lrfgrsOjiJMtbv/c1jPdekBxaByd6DMsGBzROXWoIL6U3lEFvvbu69RkUoA==
+ dependencies:
+ "@types/babel__core" "*"
+
"@types/babel__template@*":
version "7.0.2"
resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
@@ -1911,6 +2090,13 @@
dependencies:
"@babel/types" "^7.3.0"
+"@types/babel__traverse@^7.1.7":
+ version "7.18.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.5.tgz#c107216842905afafd3b6e774f6f935da6f5db80"
+ integrity sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==
+ dependencies:
+ "@babel/types" "^7.3.0"
+
"@types/body-parser@*":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
@@ -2045,10 +2231,10 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@types/jest@*", "@types/jest@^29.5.1":
- version "29.5.1"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.1.tgz#83c818aa9a87da27d6da85d3378e5a34d2f31a47"
- integrity sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==
+"@types/jest@*", "@types/jest@^29.5.2":
+ version "29.5.2"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b"
+ integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==
dependencies:
expect "^29.0.0"
pretty-format "^29.0.0"
@@ -2198,11 +2384,6 @@
"@types/prop-types" "*"
immutable "^3.8.2"
-"@types/react-intl@2.3.18":
- version "2.3.18"
- resolved "https://registry.yarnpkg.com/@types/react-intl/-/react-intl-2.3.18.tgz#fd2d8b7f4d0a1dd05b5f1784ab0d7fe1786a690d"
- integrity sha512-DVNJs49zUxKRZng8VuILE886Yihdsf3yLr5vHk9zJrmF8SyRSK3sxNSvikAKxNkv9hX55XBTJShz6CkJnbNjgg==
-
"@types/react-motion@^0.0.34":
version "0.0.34"
resolved "https://registry.yarnpkg.com/@types/react-motion/-/react-motion-0.0.34.tgz#789ff2063e2f7fbb6085d291135c442e8b35291a"
@@ -2293,7 +2474,16 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.0.26", "@types/react@^18.2.7":
+"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26":
+ version "18.2.6"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571"
+ integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/react@^18.2.7":
version "18.2.7"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.7.tgz#dfb4518042a3117a045b8c222316f83414a783b3"
integrity sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==
@@ -2327,11 +2517,6 @@
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275"
integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==
-"@types/schema-utils@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-1.0.0.tgz#295d36f01e2cb8bc3207ca1d9a68e210db6b40cb"
- integrity sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==
-
"@types/semver@^7.3.12":
version "7.3.13"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91"
@@ -3169,6 +3354,23 @@ babel-loader@^8.3.0:
make-dir "^3.1.0"
schema-utils "^2.6.5"
+babel-plugin-formatjs@^10.5.1:
+ version "10.5.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-formatjs/-/babel-plugin-formatjs-10.5.1.tgz#9baeccb590538fb1915ef85fb7dfd13aedd8b1fa"
+ integrity sha512-IkwrKjl2Zg6br2wuayPIsaPF92RzGgh5WdQj+A/9zokpYeIF7sscZGwwHmeTSoPnIAAENvjRMm/escMQkp+eKg==
+ dependencies:
+ "@babel/core" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "7"
+ "@babel/traverse" "7"
+ "@babel/types" "^7.12.11"
+ "@formatjs/icu-messageformat-parser" "2.4.0"
+ "@formatjs/ts-transformer" "3.13.1"
+ "@types/babel__core" "^7.1.7"
+ "@types/babel__helper-plugin-utils" "^7.10.0"
+ "@types/babel__traverse" "^7.1.7"
+ tslib "^2.4.0"
+
babel-plugin-istanbul@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
@@ -3219,29 +3421,29 @@ babel-plugin-macros@^3.0.1:
cosmiconfig "^7.0.0"
resolve "^1.19.0"
-babel-plugin-polyfill-corejs2@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
- integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
+babel-plugin-polyfill-corejs2@^0.4.3:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd"
+ integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==
dependencies:
"@babel/compat-data" "^7.17.7"
- "@babel/helper-define-polyfill-provider" "^0.3.3"
+ "@babel/helper-define-polyfill-provider" "^0.4.0"
semver "^6.1.1"
-babel-plugin-polyfill-corejs3@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
- integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
+babel-plugin-polyfill-corejs3@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a"
+ integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
- core-js-compat "^3.25.1"
+ "@babel/helper-define-polyfill-provider" "^0.4.0"
+ core-js-compat "^3.30.1"
-babel-plugin-polyfill-regenerator@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
- integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
+babel-plugin-polyfill-regenerator@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380"
+ integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
+ "@babel/helper-define-polyfill-provider" "^0.4.0"
babel-plugin-preval@^5.1.0:
version "5.1.0"
@@ -3253,19 +3455,6 @@ babel-plugin-preval@^5.1.0:
babel-plugin-macros "^3.0.1"
require-from-string "^2.0.2"
-babel-plugin-react-intl@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-6.2.0.tgz#ac51ca757f318938792fc91e1747515e9225386a"
- integrity sha512-ajGpa14mLzyDgdOS75DRlQ0aEL+q7iSCB77613YUPOZbxnAvfB0wg+gLngbd/43eKRw7a4y+IzO3P8kDHl40nA==
- dependencies:
- "@babel/core" "^7.7.2"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@types/babel__core" "^7.1.3"
- "@types/schema-utils" "^1.0.0"
- fs-extra "^8.1.0"
- intl-messageformat-parser "^4.1.1"
- schema-utils "^2.2.0"
-
babel-plugin-transform-react-remove-prop-types@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
@@ -3706,7 +3895,7 @@ chalk@5.2.0:
resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3"
integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
-chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -4093,12 +4282,12 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-core-js-compat@^3.25.1:
- version "3.25.2"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138"
- integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==
+core-js-compat@^3.30.1, core-js-compat@^3.30.2:
+ version "3.30.2"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b"
+ integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==
dependencies:
- browserslist "^4.21.4"
+ browserslist "^4.21.5"
core-js@^2.5.0:
version "2.6.12"
@@ -5087,10 +5276,10 @@ eslint-plugin-import@~2.27.5:
semver "^6.3.0"
tsconfig-paths "^3.14.1"
-eslint-plugin-jsdoc@^44.2.5:
- version "44.2.5"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.5.tgz#f3186f57f112a230b3b7af34bf236d207bc8d5d7"
- integrity sha512-KtuhaYy2GmdY2IQE5t+1lup8O4P05c+V4gKcj45PCxFM0OxmRq2uQlfOS1AgYVgPYIBKGE86DxrbKP24HKpORA==
+eslint-plugin-jsdoc@^46.1.0:
+ version "46.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz#3ff932b70bc25f3745049f525a789faed7c948da"
+ integrity sha512-NpjpSuWR+Wwxzmssji7AVty1Vu0JvI7v+cTj+Rw1nKVjGv2eMvLGM/SI4VpgTXp82JbLtFOsA2QYLHT3YSmASA==
dependencies:
"@es-joy/jsdoccomment" "~0.39.4"
are-docs-informative "^0.0.2"
@@ -5703,15 +5892,6 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-fs-extra@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
- integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
- dependencies:
- graceful-fs "^4.2.0"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
fs-extra@^9.0.1:
version "9.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
@@ -5883,7 +6063,7 @@ glob@^10.2.5, glob@^10.2.6:
minipass "^5.0.0 || ^6.0.2"
path-scurry "^1.7.0"
-glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -6468,48 +6648,17 @@ intersection-observer@^0.12.0:
resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375"
integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==
-intl-format-cache@^2.0.5:
- version "2.2.9"
- resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4"
- integrity sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==
-
-intl-messageformat-parser@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075"
- integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=
-
-intl-messageformat-parser@^4.1.1:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-4.1.4.tgz#98f3415e6990d44bebf2e0ad8e4cfbacf3ef5ed3"
- integrity sha512-zV4kBUD1yhxSyaXm6bGhmP4HFH9Gh4pRQwNn+xq5P+B1dT8mpaAfU75nfUn4HgddIB6pyFnzM5MQjO55UpJwkQ==
+intl-messageformat@10.3.5, intl-messageformat@^10.3.5:
+ version "10.3.5"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.3.5.tgz#f55684fc663e62616ad59d3a504ea0cac3f267b7"
+ integrity sha512-6kPkftF8Jg3XJCkGKa5OD+nYQ+qcSxF4ZkuDdXZ6KGG0VXn+iblJqRFyDdm9VvKcMyC0Km2+JlVQffFM52D0YA==
dependencies:
- "@formatjs/intl-unified-numberformat" "^3.3.3"
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/fast-memoize" "2.0.1"
+ "@formatjs/icu-messageformat-parser" "2.4.0"
+ tslib "^2.4.0"
-intl-messageformat@^2.0.0, intl-messageformat@^2.1.0, intl-messageformat@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc"
- integrity sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=
- dependencies:
- intl-messageformat-parser "1.4.0"
-
-intl-relativeformat@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz#6aca95d019ec8d30b6c5653b6629f9983ea5b6c5"
- integrity sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==
- dependencies:
- intl-messageformat "^2.0.0"
-
-intl-relativeformat@^6.4.3:
- version "6.4.3"
- resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-6.4.3.tgz#cb5559e1e257cc2e763583502012a354bb777efe"
- integrity sha512-VxZXZfhuX/zBVfxzE/J6kPUpsyWKYjqtZ3jVGZwr6wzK5BOLVpe1vSlwCQX56w5UjlpL63fS8Nxq0kgTyf1gJA==
-
-intl@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"
- integrity sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=
-
-invariant@^2.1.1, invariant@^2.2.2, invariant@^2.2.4:
+invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -7565,13 +7714,6 @@ json5@^2.1.2, json5@^2.2.0, json5@^2.2.2:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jsonfile@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
- optionalDependencies:
- graceful-fs "^4.1.6"
-
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
@@ -9572,26 +9714,21 @@ react-immutable-pure-component@^2.2.2:
resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-2.2.2.tgz#3014d3e20cd5a7a4db73b81f1f1464f4d351684b"
integrity sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A==
-react-intl-translations-manager@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz#aee010ecf35975673e033ca5d7d3f4147894324d"
- integrity sha512-EfBeugnOGFcdUbQyY9TqBMbuauQ8wm73ZqFr0UqCljhbXl7YDHQcVzclWFRkVmlUffzxitLQFhAZEVVeRNQSwA==
+react-intl@^6.4.2:
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.4.2.tgz#cf4f49f5f89e66e0975927783d0d270e708314fd"
+ integrity sha512-q8QyLZfbyqV3Ifa7vtjRrgfSQPGTR6Fi+u9tP/CuzhUPl9DJEPIrvUFhlBryKtRW2qNASqchaP/79Obip+h6oA==
dependencies:
- chalk "^2.3.2"
- glob "^7.1.2"
- json-stable-stringify "^1.0.1"
- mkdirp "^0.5.1"
-
-react-intl@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.9.0.tgz#c97c5d17d4718f1575fdbd5a769f96018a3b1843"
- integrity sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==
- dependencies:
- hoist-non-react-statics "^3.3.0"
- intl-format-cache "^2.0.5"
- intl-messageformat "^2.1.0"
- intl-relativeformat "^2.1.0"
- invariant "^2.1.1"
+ "@formatjs/ecma402-abstract" "1.15.0"
+ "@formatjs/icu-messageformat-parser" "2.4.0"
+ "@formatjs/intl" "2.7.2"
+ "@formatjs/intl-displaynames" "6.3.2"
+ "@formatjs/intl-listformat" "7.2.2"
+ "@types/hoist-non-react-statics" "^3.3.1"
+ "@types/react" "16 || 17 || 18"
+ hoist-non-react-statics "^3.3.2"
+ intl-messageformat "10.3.5"
+ tslib "^2.4.0"
"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.2.0:
version "18.2.0"
@@ -10315,7 +10452,7 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
-schema-utils@^2.2.0, schema-utils@^2.6.5:
+schema-utils@^2.6.5:
version "2.7.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
@@ -11646,11 +11783,6 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
- integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
universalify@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
@@ -12182,25 +12314,25 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-workbox-background-sync@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9"
- integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==
+workbox-background-sync@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f"
+ integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg==
dependencies:
idb "^7.0.1"
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-broadcast-update@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66"
- integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==
+workbox-broadcast-update@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e"
+ integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-build@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389"
- integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==
+workbox-build@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0"
+ integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw==
dependencies:
"@apideck/better-ajv-errors" "^0.3.1"
"@babel/core" "^7.11.1"
@@ -12224,132 +12356,132 @@ workbox-build@6.5.4:
strip-comments "^2.0.1"
tempy "^0.6.0"
upath "^1.2.0"
- workbox-background-sync "6.5.4"
- workbox-broadcast-update "6.5.4"
- workbox-cacheable-response "6.5.4"
- workbox-core "6.5.4"
- workbox-expiration "6.5.4"
- workbox-google-analytics "6.5.4"
- workbox-navigation-preload "6.5.4"
- workbox-precaching "6.5.4"
- workbox-range-requests "6.5.4"
- workbox-recipes "6.5.4"
- workbox-routing "6.5.4"
- workbox-strategies "6.5.4"
- workbox-streams "6.5.4"
- workbox-sw "6.5.4"
- workbox-window "6.5.4"
+ workbox-background-sync "6.6.1"
+ workbox-broadcast-update "6.6.1"
+ workbox-cacheable-response "6.6.1"
+ workbox-core "6.6.1"
+ workbox-expiration "6.6.1"
+ workbox-google-analytics "6.6.1"
+ workbox-navigation-preload "6.6.1"
+ workbox-precaching "6.6.1"
+ workbox-range-requests "6.6.1"
+ workbox-recipes "6.6.1"
+ workbox-routing "6.6.1"
+ workbox-strategies "6.6.1"
+ workbox-streams "6.6.1"
+ workbox-sw "6.6.1"
+ workbox-window "6.6.1"
-workbox-cacheable-response@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137"
- integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==
+workbox-cacheable-response@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9"
+ integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-core@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba"
- integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==
+workbox-core@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265"
+ integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw==
-workbox-expiration@6.5.4, workbox-expiration@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539"
- integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==
+workbox-expiration@6.6.1, workbox-expiration@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739"
+ integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A==
dependencies:
idb "^7.0.1"
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-google-analytics@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d"
- integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==
+workbox-google-analytics@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d"
+ integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA==
dependencies:
- workbox-background-sync "6.5.4"
- workbox-core "6.5.4"
- workbox-routing "6.5.4"
- workbox-strategies "6.5.4"
+ workbox-background-sync "6.6.1"
+ workbox-core "6.6.1"
+ workbox-routing "6.6.1"
+ workbox-strategies "6.6.1"
-workbox-navigation-preload@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212"
- integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==
+workbox-navigation-preload@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059"
+ integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-precaching@6.5.4, workbox-precaching@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72"
- integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==
+workbox-precaching@6.6.1, workbox-precaching@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2"
+ integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A==
dependencies:
- workbox-core "6.5.4"
- workbox-routing "6.5.4"
- workbox-strategies "6.5.4"
+ workbox-core "6.6.1"
+ workbox-routing "6.6.1"
+ workbox-strategies "6.6.1"
-workbox-range-requests@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399"
- integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==
+workbox-range-requests@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39"
+ integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-recipes@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb"
- integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==
+workbox-recipes@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae"
+ integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g==
dependencies:
- workbox-cacheable-response "6.5.4"
- workbox-core "6.5.4"
- workbox-expiration "6.5.4"
- workbox-precaching "6.5.4"
- workbox-routing "6.5.4"
- workbox-strategies "6.5.4"
+ workbox-cacheable-response "6.6.1"
+ workbox-core "6.6.1"
+ workbox-expiration "6.6.1"
+ workbox-precaching "6.6.1"
+ workbox-routing "6.6.1"
+ workbox-strategies "6.6.1"
-workbox-routing@6.5.4, workbox-routing@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da"
- integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==
+workbox-routing@6.6.1, workbox-routing@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581"
+ integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-strategies@6.5.4, workbox-strategies@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d"
- integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==
+workbox-strategies@6.6.1, workbox-strategies@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf"
+ integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw==
dependencies:
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
-workbox-streams@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69"
- integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==
+workbox-streams@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26"
+ integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q==
dependencies:
- workbox-core "6.5.4"
- workbox-routing "6.5.4"
+ workbox-core "6.6.1"
+ workbox-routing "6.6.1"
-workbox-sw@6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736"
- integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==
+workbox-sw@6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c"
+ integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ==
-workbox-webpack-plugin@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7"
- integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==
+workbox-webpack-plugin@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531"
+ integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA==
dependencies:
fast-json-stable-stringify "^2.1.0"
pretty-bytes "^5.4.1"
upath "^1.2.0"
webpack-sources "^1.4.3"
- workbox-build "6.5.4"
+ workbox-build "6.6.1"
-workbox-window@6.5.4, workbox-window@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91"
- integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==
+workbox-window@6.6.1, workbox-window@^6.6.0:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e"
+ integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ==
dependencies:
"@types/trusted-types" "^2.0.2"
- workbox-core "6.5.4"
+ workbox-core "6.6.1"
wrap-ansi@^5.1.0:
version "5.1.0"