diff --git a/.github/workflows/deploy_to_aws.yml b/.github/workflows/deploy_to_aws.yml index 4bf4b68f16..5406d0a323 100644 --- a/.github/workflows/deploy_to_aws.yml +++ b/.github/workflows/deploy_to_aws.yml @@ -43,7 +43,7 @@ jobs: name: ${{ inputs.environment }} steps: - name: Trigger AWS CodePipeline - main container - uses: Crown-Commercial-Service/ccs-aws-codepipeline-action@v1.0.10 + uses: Crown-Commercial-Service/ccs-aws-codepipeline-action@v1.1.0 with: aws-region: ${{ secrets.AWS_PIPELINE_REGION }} aws-access-key: ${{ secrets.AWS_PIPELINE_ACCESS_KEY }} @@ -59,7 +59,7 @@ jobs: name: ${{ inputs.environment }} steps: - name: Trigger AWS CodePipeline - sidekiq container - uses: Crown-Commercial-Service/ccs-aws-codepipeline-action@v1.0.10 + uses: Crown-Commercial-Service/ccs-aws-codepipeline-action@v1.1.0 with: aws-region: ${{ secrets.AWS_PIPELINE_REGION }} aws-access-key: ${{ secrets.AWS_PIPELINE_ACCESS_KEY }} diff --git a/.github/workflows/feature_tests.yml b/.github/workflows/feature_tests.yml index 16bdb1a9d8..9d2ceea468 100644 --- a/.github/workflows/feature_tests.yml +++ b/.github/workflows/feature_tests.yml @@ -27,10 +27,10 @@ jobs: uses: browser-actions/setup-geckodriver@latest - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Ruby and gems - uses: ruby/setup-ruby@v1.152.0 + uses: ruby/setup-ruby@v1.155.0 with: bundler-cache: true diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 8451017425..e3225296fd 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -34,10 +34,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Ruby and gems - uses: ruby/setup-ruby@v1.152.0 + uses: ruby/setup-ruby@v1.155.0 with: bundler-cache: true diff --git a/.rubocop.yml b/.rubocop.yml index 094593fb21..8755305441 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -173,3 +173,9 @@ Rails/ThreeStateBooleanColumn: RSpec/IndexedLet: Enabled: false + +FactoryBot/FactoryAssociationWithStrategy: + Enabled: false + +Capybara/ClickLinkOrButtonStyle: + Enabled: false diff --git a/.ruby-version b/.ruby-version index e4604e3afd..be94e6f53d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.1 +3.2.2 diff --git a/Dockerfile b/Dockerfile index 5ceef89458..7bc7bc844a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.2.1-alpine +FROM ruby:3.2.2-alpine # Build information ARG GIT_OWNER diff --git a/Gemfile b/Gemfile index 39ba2b43f8..a38691f95f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,14 +1,14 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '3.2.1' +ruby '3.2.2' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem 'rails', '~> 7.0.6' +gem 'rails', '~> 7.0.8' # Use postgresql as the database for Active Record gem 'pg', '>= 0.18', '< 2.0' # Use Puma as the app server -gem 'puma', '~> 6.3' +gem 'puma', '~> 6.4' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.1', '>= 5.1.0' # See https://github.com/rails/execjs#readme for more supported runtimes @@ -16,7 +16,7 @@ gem 'sass-rails', '~> 5.1', '>= 5.1.0' gem 'sprockets-rails' -gem 'shakapacker', '~> 7.0.2' +gem 'shakapacker', '~> 7.1.0' gem 'turbolinks', '~> 5' @@ -55,7 +55,7 @@ gem 'devise', '~> 4.9.2' gem 'auto-session-timeout', '~> 1.0' # for cognito -gem 'aws-sdk-cognitoidentityprovider', '~> 1.79.0' +gem 'aws-sdk-cognitoidentityprovider', '~> 1.82.0' # for pagination gem 'kaminari', '~> 1.2.2' @@ -71,8 +71,8 @@ gem 'aasm', '~> 5.5' gem 'after_commit_everywhere', '~> 1.3' # for running background jobs -gem 'sidekiq', '~> 7.1.2' -gem 'sinatra', '~> 3.0.6', require: false +gem 'sidekiq', '~> 7.1.5' +gem 'sinatra', '~> 3.1.0', require: false gem 'slim', '~> 5.1.1' gem 'sidekiq-cron' @@ -95,7 +95,7 @@ gem 'ratonvirus-clamby', '>= 0.3.0' # for active storage validation gem 'active_storage_validations', '>= 1.0.3' # gem for bulk inserts -gem 'activerecord-import', '~> 1.4.1' +gem 'activerecord-import', '~> 1.5.0' # gov notify gem 'notifications-ruby-client' # DOCX generation @@ -130,7 +130,7 @@ group :development, :test do gem 'wdm', '>= 0.1.0', platforms: %i[x64_mingw] gem 'tzinfo-data', platforms: %i[x64_mingw] gem 'bullet', require: true - gem 'faker', '~> 3.2.0' + gem 'faker', '~> 3.2.1' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 2240d84a88..57aef08128 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,47 +3,47 @@ GEM specs: aasm (5.5.0) concurrent-ruby (~> 1.0) - actioncable (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + actioncable (7.0.8) + actionpack (= 7.0.8) + activesupport (= 7.0.8) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actionmailbox (7.0.8) + actionpack (= 7.0.8) + activejob (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.6) - actionpack (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activesupport (= 7.0.6) + actionmailer (7.0.8) + actionpack (= 7.0.8) + actionview (= 7.0.8) + activejob (= 7.0.8) + activesupport (= 7.0.8) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.6) - actionview (= 7.0.6) - activesupport (= 7.0.6) + actionpack (7.0.8) + actionview (= 7.0.8) + activesupport (= 7.0.8) rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.6) - actionpack (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actiontext (7.0.8) + actionpack (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.6) - activesupport (= 7.0.6) + actionview (7.0.8) + activesupport (= 7.0.8) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -53,39 +53,39 @@ GEM activemodel (>= 5.2.0) activestorage (>= 5.2.0) activesupport (>= 5.2.0) - activejob (7.0.6) - activesupport (= 7.0.6) + activejob (7.0.8) + activesupport (= 7.0.8) globalid (>= 0.3.6) - activemodel (7.0.6) - activesupport (= 7.0.6) - activerecord (7.0.6) - activemodel (= 7.0.6) - activesupport (= 7.0.6) - activerecord-import (1.4.1) + activemodel (7.0.8) + activesupport (= 7.0.8) + activerecord (7.0.8) + activemodel (= 7.0.8) + activesupport (= 7.0.8) + activerecord-import (1.5.0) activerecord (>= 4.2) - activerecord-postgis-adapter (8.0.2) + activerecord-postgis-adapter (8.0.3) activerecord (~> 7.0.0) rgeo-activerecord (~> 7.0.0) - activestorage (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activesupport (= 7.0.6) + activestorage (7.0.8) + actionpack (= 7.0.8) + activejob (= 7.0.8) + activerecord (= 7.0.8) + activesupport (= 7.0.8) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.6) + activesupport (7.0.8) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - addressable (2.8.4) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) after_commit_everywhere (1.3.1) activerecord (>= 4.2) activesupport - amoeba (3.2.0) - activerecord (>= 4.2.0) - asset_sync (2.18.0) + amoeba (3.3.0) + activerecord (>= 5.2.0) + asset_sync (2.19.1) activemodel (>= 4.1.0) fog-core mime-types (>= 2.99) @@ -94,31 +94,31 @@ GEM auto-session-timeout (1.0) actionpack (>= 3.2, < 7.1) aws-eventstream (1.2.0) - aws-partitions (1.791.0) - aws-sdk-cognitoidentityprovider (1.79.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-partitions (1.834.0) + aws-sdk-cognitoidentityprovider (1.82.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-core (3.178.0) + aws-sdk-core (3.185.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.131.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-s3 (1.136.0) + aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) aws-sigv4 (1.6.0) aws-eventstream (~> 1, >= 1.0.2) - axe-core-api (4.7.0) + axe-core-api (4.8.0) dumb_delegator virtus - axe-core-capybara (4.7.0) + axe-core-capybara (4.8.0) axe-core-api dumb_delegator - axe-core-cucumber (4.7.0) + axe-core-cucumber (4.8.0) axe-core-api dumb_delegator virtus @@ -126,6 +126,7 @@ GEM descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) + base64 (0.1.1) bcrypt (3.1.18) better_html (2.0.1) actionview (>= 6.0) @@ -139,7 +140,7 @@ GEM bootsnap (1.16.0) msgpack (~> 1.2) builder (3.2.4) - bullet (7.0.7) + bullet (7.1.1) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) byebug (11.1.3) @@ -241,20 +242,20 @@ GEM erubi (1.12.0) et-orbi (1.2.7) tzinfo - excon (0.99.0) + excon (0.104.0) factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faker (3.2.0) + faker (3.2.1) i18n (>= 1.8.11, < 2) faraday (2.3.0) faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) faraday-net_http (2.0.3) ffi (1.15.5) - fog-aws (3.19.0) + fog-aws (3.21.0) fog-core (~> 2.1) fog-json (~> 1.1) fog-xml (~> 0.1) @@ -274,8 +275,8 @@ GEM et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) geocoder (1.8.2) - globalid (1.1.0) - activesupport (>= 5.0) + globalid (1.2.1) + activesupport (>= 6.1) gov_uk_date_fields (4.2.0) rails (>= 5.2) hashdiff (1.0.1) @@ -332,19 +333,19 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.1) mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.1) + mime-types-data (3.2023.0808) + mini_mime (1.1.5) + mini_portile2 (2.8.4) + minitest (5.20.0) msgpack (1.6.0) multi_json (1.15.0) multi_test (1.1.0) multi_xml (0.6.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - net-imap (0.3.6) + net-imap (0.3.7) date net-protocol net-pop (0.1.2) @@ -354,7 +355,7 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.3) + nokogiri (1.15.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) notifications-ruby-client (5.4.0) @@ -378,7 +379,7 @@ GEM parser (3.2.2.3) ast (~> 2.4.1) racc - pg (1.5.3) + pg (1.5.4) poltergeist (1.18.1) capybara (>= 2.1, < 4) cliver (~> 0.3.1) @@ -397,37 +398,37 @@ GEM pry-stack_explorer (0.6.1) binding_of_caller (~> 1.0) pry (~> 0.13) - public_suffix (5.0.1) - puma (6.3.0) + public_suffix (5.0.3) + puma (6.4.0) nio4r (~> 2.0) raabro (1.4.0) racc (1.7.1) - rack (2.2.7) - rack-protection (3.0.6) - rack - rack-proxy (0.7.6) + rack (2.2.8) + rack-protection (3.1.0) + rack (~> 2.2, >= 2.2.4) + rack-proxy (0.7.7) rack rack-test (2.1.0) rack (>= 1.3) - rails (7.0.6) - actioncable (= 7.0.6) - actionmailbox (= 7.0.6) - actionmailer (= 7.0.6) - actionpack (= 7.0.6) - actiontext (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activemodel (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + rails (7.0.8) + actioncable (= 7.0.8) + actionmailbox (= 7.0.8) + actionmailer (= 7.0.8) + actionpack (= 7.0.8) + actiontext (= 7.0.8) + actionview (= 7.0.8) + activejob (= 7.0.8) + activemodel (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) bundler (>= 1.15.0) - railties (= 7.0.6) + railties (= 7.0.8) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.1.1) + rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) @@ -437,9 +438,9 @@ GEM rails-i18n (7.0.6) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + railties (7.0.8) + actionpack (= 7.0.8) + activesupport (= 7.0.8) method_source rake (>= 12.2) thor (~> 1.0) @@ -454,13 +455,13 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - redis-client (0.14.1) + redis-client (0.17.0) connection_pool regexp_parser (2.8.1) responders (3.1.0) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.2.5) + rexml (3.2.6) rgeo (3.0.0) rgeo-activerecord (7.0.1) activerecord (>= 5.0) @@ -487,7 +488,8 @@ GEM rspec-mocks (~> 3.12) rspec-support (~> 3.12) rspec-support (3.12.0) - rubocop (1.54.2) + rubocop (1.56.4) + base64 (~> 0.1.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -495,20 +497,20 @@ GEM rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.0, < 2.0) + rubocop-ast (>= 1.28.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.29.0) parser (>= 3.2.1.0) - rubocop-capybara (2.18.0) + rubocop-capybara (2.19.0) rubocop (~> 1.41) - rubocop-factory_bot (2.22.0) + rubocop-factory_bot (2.24.0) rubocop (~> 1.33) - rubocop-rails (2.20.2) + rubocop-rails (2.21.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.22.0) + rubocop-rspec (2.24.1) rubocop (~> 1.33) rubocop-capybara (~> 2.17) rubocop-factory_bot (~> 2.22) @@ -529,12 +531,12 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - selenium-webdriver (4.10.0) + selenium-webdriver (4.13.1) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) - shakapacker (7.0.2) + shakapacker (7.1.0) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) @@ -543,7 +545,7 @@ GEM activesupport (>= 5.2.0) show_me_the_cookies (6.0.0) capybara (>= 2, < 4) - sidekiq (7.1.2) + sidekiq (7.1.5) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) @@ -558,10 +560,10 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - sinatra (3.0.6) + sinatra (3.1.0) mustermann (~> 3.0) rack (~> 2.2, >= 2.2.4) - rack-protection (= 3.0.6) + rack-protection (= 3.1.0) tilt (~> 2.0) site_prism (4.0.3) addressable (~> 2.8) @@ -572,7 +574,7 @@ GEM temple (~> 0.10.0) tilt (>= 2.1.0) smart_properties (1.17.0) - smarter_csv (1.8.5) + smarter_csv (1.9.0) snaky_hash (2.0.1) hashie version_gem (~> 1.1, >= 1.1.1) @@ -590,7 +592,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) thor (1.2.2) thread_safe (0.3.6) - tilt (2.1.0) + tilt (2.2.0) timeout (0.4.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) @@ -603,7 +605,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) uniform_notifier (1.16.0) version_gem (1.1.1) virtus (2.0.0) @@ -613,18 +615,18 @@ GEM warden (1.2.9) rack (>= 2.0.9) wdm (0.1.1) - webmock (3.18.1) + webmock (3.19.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) webrick (1.7.0) - websocket (1.2.9) - websocket-driver (0.7.5) + websocket (1.2.10) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.8) + zeitwerk (2.6.12) PLATFORMS ruby @@ -633,13 +635,13 @@ PLATFORMS DEPENDENCIES aasm (~> 5.5) active_storage_validations (>= 1.0.3) - activerecord-import (~> 1.4.1) + activerecord-import (~> 1.5.0) activerecord-postgis-adapter (>= 6.0.3) after_commit_everywhere (~> 1.3) amoeba (>= 3.2.0) asset_sync auto-session-timeout (~> 1.0) - aws-sdk-cognitoidentityprovider (~> 1.79.0) + aws-sdk-cognitoidentityprovider (~> 1.82.0) aws-sdk-s3 (~> 1) axe-core-capybara (>= 4.2.1) axe-core-cucumber (>= 4.2.1) @@ -658,7 +660,7 @@ DEPENDENCIES dotenv-rails (>= 2.8.1) email_validator factory_bot_rails (>= 6.2.0) - faker (~> 3.2.0) + faker (~> 3.2.1) fog-aws (>= 3.14.0) geocoder (>= 1.6.1) gov_uk_date_fields (>= 4.2.0) @@ -676,8 +678,8 @@ DEPENDENCIES pry-rails pry-rescue pry-stack_explorer - puma (~> 6.3) - rails (~> 7.0.6) + puma (~> 6.4) + rails (~> 7.0.8) rails-controller-testing (>= 1.0.5) ratonvirus (>= 0.3.2) ratonvirus-clamby (>= 0.3.0) @@ -692,13 +694,13 @@ DEPENDENCIES rubyzip (>= 1.2.1) sass-rails (~> 5.1, >= 5.1.0) selenium-webdriver (>= 3.142.3) - shakapacker (~> 7.0.2) + shakapacker (~> 7.1.0) shoulda-matchers (>= 5.1.0) show_me_the_cookies (>= 6.0.0) - sidekiq (~> 7.1.2) + sidekiq (~> 7.1.5) sidekiq-cron simplecov (>= 0.16.1) - sinatra (~> 3.0.6) + sinatra (~> 3.1.0) site_prism (>= 3.7.3) slim (~> 5.1.1) smarter_csv @@ -712,7 +714,7 @@ DEPENDENCIES webmock (>= 3.12.1) RUBY VERSION - ruby 3.2.1p31 + ruby 3.2.2p53 BUNDLED WITH 2.4.8 diff --git a/README.md b/README.md index 8fde629edb..58a6ca6a31 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,9 @@ For any other services relating to the Crown Marketplace, please view [Crown Mar This guide assumes you have Homebrew installed #### Check the Ruby version -> **_NOTE:_** The project currently runs on 3.2.1 (March 2023) +> **_NOTE:_** The project currently runs on 3.2.2 (Ocotober 2023) -Ensure that a ruby version manager (e.g. rvm or rbenv) is installed and set up properly, using 3.2.1 as the Ruby version before trying anything else. +Ensure that a ruby version manager (e.g. rvm or rbenv) is installed and set up properly, using 3.2.2 as the Ruby version before trying anything else. #### Software requirements diff --git a/app/assets/stylesheets/components/analytics.scss b/app/assets/stylesheets/components/analytics.scss deleted file mode 100644 index fa7adf3adc..0000000000 --- a/app/assets/stylesheets/components/analytics.scss +++ /dev/null @@ -1,13 +0,0 @@ -.ga-crown-logo, -.ga-feedback-mailto, -.ga-support-mailto, -.ga-auth-cognito, -.ga-auth-dfe, -.ga-print-link, -.ga-download-shortlist, -.ga-download-calculator -{ - // these classes are used by google analytics to mark external - // links. Included here for documentation. See: - // /assets/javascripts/google_analytics.js -} diff --git a/app/controllers/concerns/cookie_settings_concern.rb b/app/controllers/concerns/cookie_settings_concern.rb index 95cb62cd84..6103d76801 100644 --- a/app/controllers/concerns/cookie_settings_concern.rb +++ b/app/controllers/concerns/cookie_settings_concern.rb @@ -48,12 +48,12 @@ def delete_unwanted_cookie(cookie_prefixes) COOKIE_UPDATE_OPTIONS = [ { param_name: :ga_cookie_usage, - cookie_name: 'google_analytics_enabled', + cookie_name: 'usage', cookie_prefixes: %w[_ga _gi] }, { param_name: :glassbox_cookie_usage, - cookie_name: 'glassbox_enabled', + cookie_name: 'glassbox', cookie_prefixes: %w[_cls] } ].freeze diff --git a/app/controllers/facilities_management/rm3830/admin/supplier_framework_data_controller.rb b/app/controllers/facilities_management/rm3830/admin/supplier_framework_data_controller.rb index 6cfe474884..19de53c569 100644 --- a/app/controllers/facilities_management/rm3830/admin/supplier_framework_data_controller.rb +++ b/app/controllers/facilities_management/rm3830/admin/supplier_framework_data_controller.rb @@ -3,7 +3,7 @@ module RM3830 module Admin class SupplierFrameworkDataController < FacilitiesManagement::Admin::FrameworkController def index - @fm_suppliers = SuppliersAdmin.all.order(:supplier_name).select(:supplier_id, :supplier_name, :lot_data).map do |supplier| + @fm_suppliers = SuppliersAdmin.order(:supplier_name).select(:supplier_id, :supplier_name, :lot_data).map do |supplier| { name: supplier.supplier_name, lot_numbers: supplier.lot_data.keys, supplier_id: supplier.supplier_id } end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 815abbf855..a6aadb904a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -278,16 +278,16 @@ def search_box(placeholder_text, column = 0) text_field_tag 'fm-table-filter-input', nil, class: 'govuk-input', placeholder: placeholder_text, data: { column: } end - def link_to_public_file_for_download(filename, file_type, text, show_doc_image, **html_options) - link_to_file_for_download("/#{filename}?format=#{file_type}", file_type, text, show_doc_image, **html_options) + def link_to_public_file_for_download(filename, file_type, text, show_doc_image, **) + link_to_file_for_download("/#{filename}?format=#{file_type}", file_type, text, show_doc_image, **) end - def link_to_generated_file_for_download(filename, file_type, text, show_doc_image, **html_options) - link_to_file_for_download("#{filename}?format=#{file_type}", file_type, text, show_doc_image, **html_options) + def link_to_generated_file_for_download(filename, file_type, text, show_doc_image, **) + link_to_file_for_download("#{filename}?format=#{file_type}", file_type, text, show_doc_image, **) end - def link_to_file_for_download(file_link, file_type, text, show_doc_image, **html_options) - link_to(file_link, class: ('supplier-record__file-download' if show_doc_image).to_s, type: t("common.type_#{file_type}"), download: '', **html_options) do + def link_to_file_for_download(file_link, file_type, text, show_doc_image, **) + link_to(file_link, class: ('supplier-record__file-download' if show_doc_image).to_s, type: t("common.type_#{file_type}"), download: '', **) do capture do concat(text) concat(tag.span(t("common.#{file_type}_html"), class: 'govuk-visually-hidden')) if show_doc_image @@ -314,7 +314,7 @@ def contact_link(link_text) def accordion_region_items(region_codes, with_overseas: false) nuts1_regions = Nuts1Region.send(with_overseas ? :all_with_overseas : :all).to_h { |region| [region.code, { name: region.name, items: [] }] } - FacilitiesManagement::Region.all.each do |region| + FacilitiesManagement::Region.find_each do |region| region_group_code = region.code[..2] next unless nuts1_regions[region_group_code] diff --git a/app/helpers/facilities_management/procurement_details_helper.rb b/app/helpers/facilities_management/procurement_details_helper.rb index 10af65b1ba..8ab5d5eaf1 100644 --- a/app/helpers/facilities_management/procurement_details_helper.rb +++ b/app/helpers/facilities_management/procurement_details_helper.rb @@ -11,7 +11,7 @@ def total_contract_period_error? end def extension_periods_error? - %i[extensions_required call_off_extensions.months call_off_extensions.years call_off_extensions].any? { |extension_error| @procurement.errors.attribute_names.include? extension_error } + %i[extensions_required call_off_extensions.months call_off_extensions.years call_off_extensions.base].any? { |extension_error| @procurement.errors.attribute_names.include? extension_error } end def total_contract_length_error? @@ -21,12 +21,10 @@ def total_contract_length_error? def display_extension_error_anchor error_list = [] - %i[years months].each do |attribute| + %i[years months base].each do |attribute| error_list << "call_off_extensions.#{attribute}-error" if @procurement.errors.include?(:"call_off_extensions.#{attribute}") end - error_list << 'call_off_extensions-error' if @procurement.errors.include?(:call_off_extensions) - error_list.each do |error| concat(tag.span(id: error)) end diff --git a/app/helpers/gov_uk_helper/header.rb b/app/helpers/gov_uk_helper/header.rb index 80aa44ed3b..0f6aa3ab54 100644 --- a/app/helpers/gov_uk_helper/header.rb +++ b/app/helpers/gov_uk_helper/header.rb @@ -49,9 +49,9 @@ def govuk_header_content(service, navigation_links) end end - def govuk_header_navigation_item(link_text, link_url, **options) + def govuk_header_navigation_item(link_text, link_url, **) tag.li(class: 'govuk-header__navigation-item') do - link_to(link_text, link_url, class: 'govuk-header__link', **options) + link_to(link_text, link_url, class: 'govuk-header__link', **) end end end diff --git a/app/helpers/header_navigation_links_helper.rb b/app/helpers/header_navigation_links_helper.rb index 39634252f4..94ee211fb3 100644 --- a/app/helpers/header_navigation_links_helper.rb +++ b/app/helpers/header_navigation_links_helper.rb @@ -41,12 +41,14 @@ def facilites_management_admin_navigation_link def facilites_management_supplier_navigation_link return { link_text: supplier_back_to_start_text, link_url: service_path_base } unless sign_in_or_dashboard?('dashboard') - return { link_text: t('header_navigation_links_helper.my_dashboard'), link_url: service_path_base } if not_permitted_page? && user_signed_in? + + { link_text: t('header_navigation_links_helper.my_dashboard'), link_url: service_path_base } if not_permitted_page? && user_signed_in? end def facilities_management_navigation_link return back_to_start_link unless page_does_not_require_back_to_start? - return { link_text: t('header_navigation_links_helper.my_account'), link_url: service_path_base } if not_permitted_page? && user_signed_in? + + { link_text: t('header_navigation_links_helper.my_account'), link_url: service_path_base } if not_permitted_page? && user_signed_in? end def back_to_start_link diff --git a/app/javascript/packs/application.mjs b/app/javascript/packs/application.js similarity index 100% rename from app/javascript/packs/application.mjs rename to app/javascript/packs/application.js diff --git a/app/javascript/packs/ccs.ts b/app/javascript/packs/ccs.ts index 7a1b6d809d..6a11ec9bf7 100644 --- a/app/javascript/packs/ccs.ts +++ b/app/javascript/packs/ccs.ts @@ -9,7 +9,7 @@ import initCookieBanner from '../src/shared/cookieBanner' import initDetailsLinks from '../src/facilitiesManagement/detailsLinks' import initFilterTable from '../src/facilitiesManagement/filterTable' import initFindAddress from '../src/facilitiesManagement/findAddress' -import initGoogleAnalytics from '../src/shared/googleAnalytics' +import initGoogleAnalyticsDataLayer from '../src/shared/googleAnalyticsDataLayer' import initLimitInputToInteger from '../src/facilitiesManagement/integerInput' import initManagementReport from '../src/facilitiesManagement/rm3830/admin/managementReport' import initNestedAttributesFields from '../src/facilitiesManagement/rm3830/addNestedAttributes' @@ -54,7 +54,7 @@ $(document).on('turbolinks:load', () => { // Shared TS initCheckboxAccordion() initCookieBanner() - initGoogleAnalytics() + initGoogleAnalyticsDataLayer() initPasswordStrength() initStepByStepNav() }) diff --git a/app/javascript/packs/govuk.mjs b/app/javascript/packs/govuk.js similarity index 100% rename from app/javascript/packs/govuk.mjs rename to app/javascript/packs/govuk.js diff --git a/app/javascript/src/shared/cookieBanner.ts b/app/javascript/src/shared/cookieBanner.ts index 130f63fac5..5f5ad3236d 100644 --- a/app/javascript/src/shared/cookieBanner.ts +++ b/app/javascript/src/shared/cookieBanner.ts @@ -4,8 +4,8 @@ type CookieBannerFormData = Record interface CookiePreferences { settings_viewed: boolean - google_analytics_enabled: boolean - glassbox_enabled: boolean + usage: boolean + glassbox: boolean } interface CookieUpdateOption { @@ -15,24 +15,24 @@ interface CookieUpdateOption { const cookieUpdateOptions: CookieUpdateOption[] = [ { - cookieName: 'google_analytics_enabled', + cookieName: 'usage', cookiePrefixes: ['_ga', '_gi'] }, { - cookieName: 'glassbox_enabled', + cookieName: 'glassbox', cookiePrefixes: ['_cls'] } ] const getCookiePreferences = (): CookiePreferences => { - const defaultCookieSettings = '{"google_analytics_enabled":true,"glassbox_enabled":false}' + const defaultCookieSettings = '{"usage":true,"glassbox":false}' - return JSON.parse(Cookies.get('crown_marketplace_cookie_options_v1') ?? defaultCookieSettings) + return JSON.parse(Cookies.get('cookie_preferences') ?? defaultCookieSettings) } const removeUnwantedCookies = (): void => { const cookieList: string[] = Object.keys(Cookies.get()) - const cookiesToRemove: string[] = ['crown_marketplace_cookie_settings_viewed', 'crown_marketplace_google_analytics_enabled'] + const cookiesToRemove: string[] = ['crown_marketplace_cookie_settings_viewed', 'crown_marketplace_google_analytics_enabled', 'crown_marketplace_cookie_options_v1'] const cookiePreferences: CookiePreferences = getCookiePreferences() const cookiePrefixes: string[] = [] @@ -145,3 +145,4 @@ const initCookieBanner = (): void => { } export default initCookieBanner +export { CookiePreferences } diff --git a/app/javascript/src/shared/googleAnalytics.ts b/app/javascript/src/shared/googleAnalytics.ts deleted file mode 100644 index 449918c53a..0000000000 --- a/app/javascript/src/shared/googleAnalytics.ts +++ /dev/null @@ -1,41 +0,0 @@ -declare global { - interface Window { - gaTrackingId: string - } -} - -declare function gtag (config: string, gaTrackingId: string, params: Record): void - -const cssClassToClickPath: Record = { - 'ga-crown-logo': 'crown_logo', - 'ga-feedback-mailto': 'feedback', - 'ga-support-mailto': 'support', - 'ga-auth-cognito': 'cognito_login', - 'ga-auth-dfe': 'dfe_login', - 'ga-print-link': 'print', - 'ga-download-shortlist': 'shortlist_download', - 'ga-download-calculator': 'calculator_download' -} - -const initGoogleAnalytics = (): void => { - if (window.gaTrackingId) { - for (const cssClass in cssClassToClickPath) { - const $elements: JQuery = $(`.${cssClass}`) - - $elements.each((_index: number, $element: HTMLElement) => { - $($element).on('click', () => { - const page: string = cssClassToClickPath[cssClass] - const params: Record = { - anonymize_ip: true, - page_title: page, - page_path: `/external/${page}` - } - - gtag('config', window.gaTrackingId, params) - }) - }) - } - } -} - -export default initGoogleAnalytics diff --git a/app/javascript/src/shared/googleAnalyticsDataLayer.ts b/app/javascript/src/shared/googleAnalyticsDataLayer.ts new file mode 100644 index 0000000000..4d54b7cc7e --- /dev/null +++ b/app/javascript/src/shared/googleAnalyticsDataLayer.ts @@ -0,0 +1,55 @@ +import Cookies from 'js-cookie' +import { CookiePreferences } from './cookieBanner' + +enum GrantType { + GRANTED = 'granted', + NOT_GRANTED = 'not granted' +} + +declare global { + interface Window { + dataLayer: { + push: (data: { + event: 'gtm_consent_update', + usage_consent: GrantType, + glassbox_consent: GrantType, + marketing_consent: GrantType + }) => void + } + } +} + + +const getCookiePreferences = (): string => Cookies.get('cookie_preferences') ?? '{}' + +const getCookiePreferencesSaved = (): string => Cookies.get('cookie_preferences_saved') ?? '{}' + +const setCookiePreferencesSaved = (cookiePreferences: CookiePreferences) => { + Cookies.set('cookie_preferences_saved', JSON.stringify(cookiePreferences), { expires: 365 }) +} + +const getGrantedText = (state: boolean) => state ? GrantType.GRANTED : GrantType.NOT_GRANTED + +const updateDataLayer = (cookiePreferences: CookiePreferences) => { + window.dataLayer.push({ + event: 'gtm_consent_update', + usage_consent: getGrantedText(cookiePreferences.usage), + glassbox_consent: getGrantedText(cookiePreferences.glassbox), + marketing_consent: GrantType.NOT_GRANTED + }) + + setCookiePreferencesSaved(cookiePreferences) +} + +const initGoogleAnalyticsDataLayer = () => { + if (window.dataLayer) { + const cookiePreferences = getCookiePreferences() + const cookiePreferencesSaved = getCookiePreferencesSaved() + + if (cookiePreferences !== cookiePreferencesSaved) { + updateDataLayer(JSON.parse(cookiePreferences)) + } + } +} + +export default initGoogleAnalyticsDataLayer diff --git a/app/models/concerns/static_record.rb b/app/models/concerns/static_record.rb index 192ce1069f..7bb3921c86 100644 --- a/app/models/concerns/static_record.rb +++ b/app/models/concerns/static_record.rb @@ -19,6 +19,12 @@ def all @all ||= [] end + delegate :first, :count, to: :all + + def find_each(&) + all.each(&) + end + def find_by(arg) all.find { |term| arg.all? { |k, v| term.public_send(k) == v } } end diff --git a/app/models/facilities_management/rm3830/procurement.rb b/app/models/facilities_management/rm3830/procurement.rb index 73366a65c4..6dc1908fbf 100644 --- a/app/models/facilities_management/rm3830/procurement.rb +++ b/app/models/facilities_management/rm3830/procurement.rb @@ -170,7 +170,7 @@ def unanswered_contract_date_questions? def copy_fm_rates_to_frozen ActiveRecord::Base.transaction do - Rate.all.find_each do |rate| + Rate.find_each do |rate| new_rate = FrozenRate.new new_rate.facilities_management_rm3830_procurement_id = id new_rate.code = rate.code diff --git a/app/models/facilities_management/rm3830/service.rb b/app/models/facilities_management/rm3830/service.rb index d162c46951..5f59cf2c34 100644 --- a/app/models/facilities_management/rm3830/service.rb +++ b/app/models/facilities_management/rm3830/service.rb @@ -40,7 +40,8 @@ def self.direct_award_services(procurement_id) frozen_rate = FrozenRate.where(facilities_management_rm3830_procurement_id: procurement_id) return frozen_rate.where(direct_award: true).map(&:code) if frozen_rate.exists? - return Rate.all.where(direct_award: true).map(&:code) unless frozen_rate.exists? + + Rate.where(direct_award: true).map(&:code) unless frozen_rate.exists? end end diff --git a/app/models/facilities_management/rm3830/supplier_detail.rb b/app/models/facilities_management/rm3830/supplier_detail.rb index d685eddf41..225cb6c9c2 100644 --- a/app/models/facilities_management/rm3830/supplier_detail.rb +++ b/app/models/facilities_management/rm3830/supplier_detail.rb @@ -7,7 +7,7 @@ class SupplierDetail < ApplicationRecord # rubocop:enable Rails/HasManyOrHasOneDependent def self.selected_suppliers(for_lot, for_regions, for_services) - all.order(:supplier_name).select do |s| + order(:supplier_name).select do |s| s.lot_data[for_lot] && (for_regions - s.lot_data[for_lot]['regions']).empty? && (for_services - s.lot_data[for_lot]['services']).empty? end end diff --git a/app/services/cognito/admin/roles.rb b/app/services/cognito/admin/roles.rb index f4221c26b6..15d65c5715 100644 --- a/app/services/cognito/admin/roles.rb +++ b/app/services/cognito/admin/roles.rb @@ -15,13 +15,13 @@ def initialize(access, roles, service_access) def role_selection_valid return :role_selection_required if @roles.empty? - return :invalid_role_selection unless @roles.all? { |role| @available_roles.include?(role) } + :invalid_role_selection unless @roles.all? { |role| @available_roles.include?(role) } end def service_access_selection_valid return :invalid_service_access_selection unless @service_access.all? { |service_access| SERVICE_ROLES_ACCESS.include?(service_access) } - return :service_access_selection_required if (@roles.include?('buyer') || @roles.include?('ccs_employee')) && @service_access.empty? + :service_access_selection_required if (@roles.include?('buyer') || @roles.include?('ccs_employee')) && @service_access.empty? end def combine_roles diff --git a/app/services/cognito/base_service.rb b/app/services/cognito/base_service.rb index bc19d7d77e..b52e8f4261 100644 --- a/app/services/cognito/base_service.rb +++ b/app/services/cognito/base_service.rb @@ -3,8 +3,8 @@ class BaseService attr_accessor :error # Use Class.call(args) rather than Class.new(args).call - def self.call(*args, **kwargs, &) - resp = new(*args, **kwargs, &) + def self.call(...) + resp = new(...) resp.call resp end diff --git a/app/services/facilities_management/rm3830/admin/procurement_csv_export.rb b/app/services/facilities_management/rm3830/admin/procurement_csv_export.rb index 92e52032b7..9585fd28b9 100644 --- a/app/services/facilities_management/rm3830/admin/procurement_csv_export.rb +++ b/app/services/facilities_management/rm3830/admin/procurement_csv_export.rb @@ -387,7 +387,7 @@ def self.spreadsheet_import_status(procurement) end def self.supplier_names - @supplier_names ||= SupplierDetail.all.select(:supplier_id, :supplier_name).pluck(:supplier_id, :supplier_name).to_h + @supplier_names ||= SupplierDetail.select(:supplier_id, :supplier_name).pluck(:supplier_id, :supplier_name).to_h end end end diff --git a/app/services/facilities_management/rm3830/admin/supplier_framework_data_spreadsheet.rb b/app/services/facilities_management/rm3830/admin/supplier_framework_data_spreadsheet.rb index da1a9a34ea..61499eecfd 100644 --- a/app/services/facilities_management/rm3830/admin/supplier_framework_data_spreadsheet.rb +++ b/app/services/facilities_management/rm3830/admin/supplier_framework_data_spreadsheet.rb @@ -57,7 +57,7 @@ def suppliers end def da_service_codes - @da_service_codes ||= Rate.all.where(direct_award: true).pluck(:code) + @da_service_codes ||= Rate.where(direct_award: true).pluck(:code) end def work_packages diff --git a/app/services/facilities_management/rm3830/spreadsheet_importer.rb b/app/services/facilities_management/rm3830/spreadsheet_importer.rb index b51f2dec78..424c9db3b2 100644 --- a/app/services/facilities_management/rm3830/spreadsheet_importer.rb +++ b/app/services/facilities_management/rm3830/spreadsheet_importer.rb @@ -479,7 +479,7 @@ def save_spreadsheet_data end def delete_existing_procurement_buildings_and_services - @procurement.procurement_buildings.where.not(id: nil).each(&:destroy) + @procurement.procurement_buildings.where.not(id: nil).find_each(&:destroy) end def save_building(building_hash) diff --git a/app/services/static_data_loader.rb b/app/services/static_data_loader.rb index f2ba6c36b8..227b6b75a0 100644 --- a/app/services/static_data_loader.rb +++ b/app/services/static_data_loader.rb @@ -16,7 +16,7 @@ def self.load_static_data(static_data_class) query = @queries[class_name.to_sym] static_data_class.load_db(query) rescue StandardError - call_rake static_data_class, class_name, query if static_data_class.all.count.zero? + call_rake static_data_class, class_name, query if static_data_class.count.zero? end end diff --git a/app/views/facilities_management/rm3830/home/index.html.erb b/app/views/facilities_management/rm3830/home/index.html.erb index ff7e91c497..ba32ecfb48 100644 --- a/app/views/facilities_management/rm3830/home/index.html.erb +++ b/app/views/facilities_management/rm3830/home/index.html.erb @@ -81,12 +81,3 @@ - diff --git a/app/views/facilities_management/rm6232/home/index.html.erb b/app/views/facilities_management/rm6232/home/index.html.erb index 9c4b970b6c..0dcbcab9d8 100644 --- a/app/views/facilities_management/rm6232/home/index.html.erb +++ b/app/views/facilities_management/rm6232/home/index.html.erb @@ -31,12 +31,3 @@ - diff --git a/app/views/home/cookie_policy.html.erb b/app/views/home/cookie_policy.html.erb index a11c49eebb..16969f816e 100644 --- a/app/views/home/cookie_policy.html.erb +++ b/app/views/home/cookie_policy.html.erb @@ -127,6 +127,11 @@ <%= t(".cookie_banner_cookies.row_1.purpose") %> <%= t(".cookie_banner_cookies.row_1.expires") %> + + <%= t(".cookie_banner_cookies.row_2.name") %> + <%= t(".cookie_banner_cookies.row_2.purpose") %> + <%= t(".cookie_banner_cookies.row_2.expires") %> + diff --git a/app/views/home/cookie_settings.html.erb b/app/views/home/cookie_settings.html.erb index 741614943b..2edfc233e2 100644 --- a/app/views/home/cookie_settings.html.erb +++ b/app/views/home/cookie_settings.html.erb @@ -66,11 +66,11 @@
- <%= radio_button_tag :ga_cookie_usage, true, cookie_preferences_settings['google_analytics_enabled'], class: 'govuk-radios__input' %> + <%= radio_button_tag :ga_cookie_usage, true, cookie_preferences_settings['usage'], class: 'govuk-radios__input' %> <%= label_tag :ga_cookie_usage, t('.use_cookies.ga'), for: :ga_cookie_usage_true, class: 'govuk-label govuk-radios__label' %>
- <%= radio_button_tag :ga_cookie_usage, false, !cookie_preferences_settings['google_analytics_enabled'], class: 'govuk-radios__input' %> + <%= radio_button_tag :ga_cookie_usage, false, !cookie_preferences_settings['usage'], class: 'govuk-radios__input' %> <%= label_tag :ga_cookie_usage, t('.dont_use_cookies.ga'), for: :ga_cookie_usage_false, class: 'govuk-label govuk-radios__label' %>
@@ -89,11 +89,11 @@
- <%= radio_button_tag :glassbox_cookie_usage, true, cookie_preferences_settings['glassbox_enabled'], class: 'govuk-radios__input' %> + <%= radio_button_tag :glassbox_cookie_usage, true, cookie_preferences_settings['glassbox'], class: 'govuk-radios__input' %> <%= label_tag :glassbox_cookie_usage, t('.use_cookies.glassbox'), for: :glassbox_cookie_usage_true, class: 'govuk-label govuk-radios__label' %>
- <%= radio_button_tag :glassbox_cookie_usage, false, !cookie_preferences_settings['glassbox_enabled'], class: 'govuk-radios__input' %> + <%= radio_button_tag :glassbox_cookie_usage, false, !cookie_preferences_settings['glassbox'], class: 'govuk-radios__input' %> <%= label_tag :glassbox_cookie_usage, t('.dont_use_cookies.glassbox'), for: :glassbox_cookie_usage_false, class: 'govuk-label govuk-radios__label' %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 0ca4b26ec1..09701545a0 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -22,14 +22,13 @@ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'govuk', 'ccs', 'data-turbolinks-track': 'reload', defer: false %> - <%= render partial: '/shared/google/analytics' if cookie_preferences_settings['google_analytics_enabled'] && Marketplace.google_analytics_tracking_id.present? %> <%= render partial: '/shared/google/tag_manager_head' if Marketplace.google_tag_manager_tracking_id.present? %> <%= render partial: '/shared/google/tag_manager_body' if Marketplace.google_tag_manager_tracking_id.present? %> - + <% end -%> <% if Rails.env.production? && user_signed_in? %> <%= auto_session_timeout_js %> <% end %> diff --git a/app/views/layouts/error.html.erb b/app/views/layouts/error.html.erb index e052e0598d..d0b822bcd9 100644 --- a/app/views/layouts/error.html.erb +++ b/app/views/layouts/error.html.erb @@ -20,14 +20,13 @@ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'govuk', 'ccs', 'data-turbolinks-track': 'reload', defer: false %> - <%= render partial: '/shared/google/analytics' if cookie_preferences_settings['google_analytics_enabled'] && Marketplace.google_analytics_tracking_id.present? %> <%= render partial: '/shared/google/tag_manager_head' if Marketplace.google_tag_manager_tracking_id.present? %> <%= render partial: '/shared/google/tag_manager_body' if Marketplace.google_tag_manager_tracking_id.present? %> - + <% end -%> <% if Rails.env.production? && current_user %> <%= auto_session_timeout_js %> <% end %> diff --git a/app/views/shared/google/_analytics.html.erb b/app/views/shared/google/_analytics.html.erb deleted file mode 100644 index 45fede4f1f..0000000000 --- a/app/views/shared/google/_analytics.html.erb +++ /dev/null @@ -1,12 +0,0 @@ -<% if Marketplace.google_analytics_tracking_id.present? %> - - - - -<% end %> diff --git a/app/views/shared/google/_tag_manager_head.html.erb b/app/views/shared/google/_tag_manager_head.html.erb index 8aee39efdd..ee9431a56f 100644 --- a/app/views/shared/google/_tag_manager_head.html.erb +++ b/app/views/shared/google/_tag_manager_head.html.erb @@ -1,16 +1,22 @@ <% if Marketplace.google_tag_manager_tracking_id.present? %> - + <%= javascript_tag nonce: true do -%> + (function(w, d, s, l, i) { + w[l] = w[l] || []; + w[l].push({ + 'gtm.start': new Date().getTime(), + event: 'gtm.js' + }); + var f = d.getElementsByTagName(s)[0], + j = d.createElement(s), + dl = l != 'dataLayer' ? '&l=' + l : ''; + j.async = true; + j.src = + 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; + var n = d.querySelector('[nonce]'); + n && j.setAttribute('nonce', n.nonce || n.getAttribute('nonce')); + f.parentNode.insertBefore(j, f); + })(window, document, 'script', 'dataLayer', '<%= Marketplace.google_tag_manager_tracking_id %>'); + <% end %> <% end %> diff --git a/config/application.rb b/config/application.rb index 71ad5a7420..1bd88e6cda 100644 --- a/config/application.rb +++ b/config/application.rb @@ -93,10 +93,6 @@ def self.http_basic_auth_password # :nocov: - def self.google_analytics_tracking_id - @google_analytics_tracking_id ||= ENV.fetch('GA_TRACKING_ID', nil) - end - def self.google_tag_manager_tracking_id @google_tag_manager_tracking_id ||= ENV.fetch('GTM_TRACKING_ID', nil) end @@ -163,14 +159,14 @@ def self.rm6232_live? end def self.cookie_settings_name - :crown_marketplace_cookie_options_v1 + :cookie_preferences end def self.default_cookie_options { settings_viewed: false, - google_analytics_enabled: false, - glassbox_enabled: false + usage: false, + glassbox: false }.stringify_keys end end diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 11cba3ae05..c6e1bd3164 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -6,21 +6,25 @@ Rails.application.configure do config.content_security_policy do |policy| - # policy.default_src :self, :https - # policy.font_src :self, :https, :data - # policy.img_src :self, :https, :data - # policy.object_src :none - # policy.script_src :self, :https - # policy.style_src :self, :https - # # Specify URI for violation reports - # # policy.report_uri "/csp-violation-report-endpoint" - policy.connect_src :self, :https, 'http://localhost:3035', 'ws://localhost:3035' if Rails.env.development? + policy.default_src :self, :https + policy.font_src :self, :https, :data + policy.img_src :self, :https, :data, 'https://*.google-analytics.com', 'https://*.googletagmanager.com' + policy.object_src :none + policy.script_src :self, :https, 'https://*.googletagmanager.com' + policy.style_src :self, "'unsafe-inline'", :https + + connect_src = ['https://*.google-analytics.com', 'https://*.analytics.google.com', 'https://*.googletagmanager.com'] + connect_src += ['http://localhost:3035', 'ws://localhost:3035'] if Rails.env.development? + policy.connect_src :self, :https, *connect_src + + # Specify URI for violation reports + # policy.report_uri "/csp-violation-report-endpoint" end - # - # # Generate session nonces for permitted importmap and inline scripts - # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } - # config.content_security_policy_nonce_directives = %w(script-src) - # - # # Report violations without enforcing the policy. - # # config.content_security_policy_report_only = true + + # Generate session nonces for permitted importmap and inline scripts + config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } + config.content_security_policy_nonce_directives = %w[script-src] + + # Report violations without enforcing the policy. + # config.content_security_policy_report_only = true end diff --git a/config/locales/en.yml b/config/locales/en.yml index ea53ab97d3..b56124c077 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -282,6 +282,10 @@ en: row_1: expires: 1 year purpose: Saves your cookie consent preferences + row_2: + expires: 1 year + name: cookie_preferences_saved + purpose: Allows us to check when your cookie settings have changed cookies_banner: Cookies banner ga_cookies: row_1: diff --git a/db/migrate/20190820101225_add_buildingid_to_facilities_management_buildings.rb b/db/migrate/20190820101225_add_buildingid_to_facilities_management_buildings.rb index 2cc0dc9b92..5db18eee1d 100644 --- a/db/migrate/20190820101225_add_buildingid_to_facilities_management_buildings.rb +++ b/db/migrate/20190820101225_add_buildingid_to_facilities_management_buildings.rb @@ -1,6 +1,8 @@ class AddBuildingidToFacilitiesManagementBuildings < ActiveRecord::Migration[5.2] + # rubocop:disable Rails/DangerousColumnNames def change add_column :facilities_management_buildings, :id, :uuid add_index :facilities_management_buildings, :id, unique: true end + # rubocop:enable Rails/DangerousColumnNames end diff --git a/db/migrate/20191031153244_change_procurement_building_service_primary_key.rb b/db/migrate/20191031153244_change_procurement_building_service_primary_key.rb index a2bded81ec..f0e37f0a8d 100644 --- a/db/migrate/20191031153244_change_procurement_building_service_primary_key.rb +++ b/db/migrate/20191031153244_change_procurement_building_service_primary_key.rb @@ -1,4 +1,5 @@ class ChangeProcurementBuildingServicePrimaryKey < ActiveRecord::Migration[5.2] + # rubocop:disable Rails/DangerousColumnNames def up add_column :facilities_management_procurement_building_services, :uuid, :uuid, default: 'gen_random_uuid()', null: false @@ -9,4 +10,5 @@ def up execute 'ALTER TABLE facilities_management_procurement_building_services ADD PRIMARY KEY (id);' end + # rubocop:enable Rails/DangerousColumnNames end diff --git a/db/migrate/20200430131751_update_building_types_in_the_db.rb b/db/migrate/20200430131751_update_building_types_in_the_db.rb index 4d5741983f..77e0215aa2 100644 --- a/db/migrate/20200430131751_update_building_types_in_the_db.rb +++ b/db/migrate/20200430131751_update_building_types_in_the_db.rb @@ -1,6 +1,6 @@ class UpdateBuildingTypesInTheDb < ActiveRecord::Migration[5.2] def up - FacilitiesManagement::Building.all.each do |building| + FacilitiesManagement::Building.find_each do |building| updated_building_type = BUILDING_TYPE_KEY[building.building_type&.to_sym] building.building_type = updated_building_type unless updated_building_type.nil? building.building_json[:'building-type'] = updated_building_type unless updated_building_type.nil? diff --git a/db/migrate/20200807080425_convert_nil_supplier_data_to_empty_array.rb b/db/migrate/20200807080425_convert_nil_supplier_data_to_empty_array.rb index 1930fdab31..64c043d799 100644 --- a/db/migrate/20200807080425_convert_nil_supplier_data_to_empty_array.rb +++ b/db/migrate/20200807080425_convert_nil_supplier_data_to_empty_array.rb @@ -4,7 +4,7 @@ class FMSupplier < ApplicationRecord end def self.up - FMSupplier.all.each do |supplier| + FMSupplier.find_each do |supplier| supplier.data['lots'].each do |lot| lot['services'] = [] if lot['services'].nil? end diff --git a/db/migrate/20200908110404_set_governing_law.rb b/db/migrate/20200908110404_set_governing_law.rb index b4feb765b4..e33c0b0384 100644 --- a/db/migrate/20200908110404_set_governing_law.rb +++ b/db/migrate/20200908110404_set_governing_law.rb @@ -2,11 +2,11 @@ class SetGoverningLaw < ActiveRecord::Migration[5.2] DEFAULT_LAW = 'english'.freeze def up - FacilitiesManagement::Procurement.direct_award.where(governing_law: nil).each do |procurement| + FacilitiesManagement::Procurement.direct_award.where(governing_law: nil).find_each do |procurement| procurement.update(governing_law: DEFAULT_LAW) end - FacilitiesManagement::Procurement.da_draft.where(governing_law: nil).each do |procurement| + FacilitiesManagement::Procurement.da_draft.where(governing_law: nil).find_each do |procurement| procurement.update(governing_law: DEFAULT_LAW) if %w[review_and_generate review sending sent].include?(procurement.da_journey_state) end end diff --git a/db/migrate/20201102142511_migrate_data_from_json_to_columns.rb b/db/migrate/20201102142511_migrate_data_from_json_to_columns.rb index 4c3732b9ee..6ba75eb85b 100644 --- a/db/migrate/20201102142511_migrate_data_from_json_to_columns.rb +++ b/db/migrate/20201102142511_migrate_data_from_json_to_columns.rb @@ -5,7 +5,7 @@ class FMSupplier < ApplicationRecord # rubocop:disable Metrics/AbcSize def up - FMSupplier.all.each do |supplier| + FMSupplier.find_each do |supplier| data = supplier.data supplier.contact_name = data['contact_name'] supplier.contact_email = data['contact_email'] @@ -29,7 +29,7 @@ def down add_index :fm_suppliers, ['data'], name: 'idxgin', using: :gin add_index :fm_suppliers, ['data'], name: 'idxginp', opclass: :jsonb_path_ops, using: :gin - FMSupplier.all.each do |supplier| + FMSupplier.find_each do |supplier| data = {} data['supplier_id'] = supplier.supplier_id data['contact_name'] = supplier.contact_name diff --git a/db/migrate/20201210141943_add_data_to_fm_suppliers.rb b/db/migrate/20201210141943_add_data_to_fm_suppliers.rb index 1d73e6592e..3d219de0f2 100644 --- a/db/migrate/20201210141943_add_data_to_fm_suppliers.rb +++ b/db/migrate/20201210141943_add_data_to_fm_suppliers.rb @@ -11,7 +11,7 @@ def up SupplierDetail.reset_column_information FMSupplier.reset_column_information - SupplierDetail.all.each do |supplier_detail| + SupplierDetail.find_each do |supplier_detail| contact_email = supplier_detail.contact_email fm_supplier = FMSupplier.find_by(contact_email:) next if fm_supplier.blank? diff --git a/db/migrate/20210113092431_link_user_accounts_to_supplier_details.rb b/db/migrate/20210113092431_link_user_accounts_to_supplier_details.rb index 2e485b83cf..09d059342e 100644 --- a/db/migrate/20210113092431_link_user_accounts_to_supplier_details.rb +++ b/db/migrate/20210113092431_link_user_accounts_to_supplier_details.rb @@ -10,7 +10,7 @@ class SupplierUser < ApplicationRecord def up SupplierDetail.reset_column_information - SupplierDetail.all.each do |supplier_detail| + SupplierDetail.find_each do |supplier_detail| next if supplier_detail.user_id.present? contact_email = supplier_detail.contact_email diff --git a/db/migrate/20210716112653_rename_unit_of_measure_table.rb b/db/migrate/20210716112653_rename_unit_of_measure_table.rb index 5f5b0f4cbe..1e268a1ba1 100644 --- a/db/migrate/20210716112653_rename_unit_of_measure_table.rb +++ b/db/migrate/20210716112653_rename_unit_of_measure_table.rb @@ -23,7 +23,7 @@ def up OldUnitOfMeasurement.reset_column_information NewUnitOfMeasurement.reset_column_information - OldUnitOfMeasurement.all.each do |row| + OldUnitOfMeasurement.find_each do |row| NewUnitOfMeasurement.create(row.attributes) end @@ -47,7 +47,7 @@ def down OldUnitOfMeasurement.reset_column_information NewUnitOfMeasurement.reset_column_information - NewUnitOfMeasurement.all.each do |row| + NewUnitOfMeasurement.find_each do |row| OldUnitOfMeasurement.create(row.attributes) end diff --git a/features/helpers/crown_marketplace/cognito_helper.rb b/features/helpers/crown_marketplace/cognito_helper.rb index c2c2788024..ba5860848f 100644 --- a/features/helpers/crown_marketplace/cognito_helper.rb +++ b/features/helpers/crown_marketplace/cognito_helper.rb @@ -1,4 +1,4 @@ -def stub_admin_cognito(option, **options) +def stub_admin_cognito(option, **) aws_client = instance_double(Aws::CognitoIdentityProvider::Client) allow(Aws::CognitoIdentityProvider::Client).to receive(:new).and_return(aws_client) @@ -7,7 +7,7 @@ def stub_admin_cognito(option, **options) send( method, aws_client, - **options + ** ) end diff --git a/features/helpers/facilities_management/cookies_helper.rb b/features/helpers/facilities_management/cookies_helper.rb index 9ecd845d67..64a20239a4 100644 --- a/features/helpers/facilities_management/cookies_helper.rb +++ b/features/helpers/facilities_management/cookies_helper.rb @@ -1,7 +1,7 @@ def update_banner_cookie(status) - page.driver.browser.manage.add_cookie(name: 'crown_marketplace_cookie_options_v1', value: { + page.driver.browser.manage.add_cookie(name: 'cookie_preferences', value: { settings_viewed: status, - google_analytics_enabled: false, - glassbox_enabled: false + usage: false, + glassbox: false }.to_json) end diff --git a/features/step_definitions/facilities_management/entering_requirements_steps.rb b/features/step_definitions/facilities_management/entering_requirements_steps.rb index 0b046ccd38..dd4b1a15ab 100644 --- a/features/step_definitions/facilities_management/entering_requirements_steps.rb +++ b/features/step_definitions/facilities_management/entering_requirements_steps.rb @@ -239,13 +239,13 @@ def extension_end_date(extension) Then('the following buildings can be selected:') do |building_names| building_names.raw.flatten.each do |building_name| - expect(entering_requirements_page).to have_selector('label', text: building_name) + expect(entering_requirements_page).to have_css('label', text: building_name) end end Then('the following buildings cannot be selected:') do |building_names| building_names.raw.flatten.each do |building_name| - expect(entering_requirements_page).not_to have_selector('label', text: building_name) + expect(entering_requirements_page).not_to have_css('label', text: building_name) end end diff --git a/features/step_definitions/facilities_management/home_steps.rb b/features/step_definitions/facilities_management/home_steps.rb index 621442458c..9f10748195 100644 --- a/features/step_definitions/facilities_management/home_steps.rb +++ b/features/step_definitions/facilities_management/home_steps.rb @@ -105,10 +105,10 @@ end COOKIE_TO_OPTION = { - 'ga' => 'google_analytics_enabled', - 'glassbox' => 'glassbox_enabled' + 'ga' => 'usage', + 'glassbox' => 'glassbox' }.freeze def cookie_settings - JSON.parse(CGI.unescape(page.driver.browser.manage.cookie_named('crown_marketplace_cookie_options_v1')[:value])) + JSON.parse(CGI.unescape(page.driver.browser.manage.cookie_named('cookie_preferences')[:value])) end diff --git a/features/step_definitions/facilities_management/procurement_steps.rb b/features/step_definitions/facilities_management/procurement_steps.rb index 5839a85803..1fd41a9358 100644 --- a/features/step_definitions/facilities_management/procurement_steps.rb +++ b/features/step_definitions/facilities_management/procurement_steps.rb @@ -50,8 +50,8 @@ create_completed_procurement(contract_name) end -def create_completed_procurement(contract_name, **options) - procurement = create(FRMAEOWRK_AND_STATE_TO_FACTORY[@framework][:entering_requirements], user: @user, contract_name: contract_name, **options) +def create_completed_procurement(contract_name, **) + procurement = create(FRMAEOWRK_AND_STATE_TO_FACTORY[@framework][:entering_requirements], user: @user, contract_name: contract_name, **) building = create(:facilities_management_building, building_name: 'Test building', user: @user) procurement.procurement_buildings.create(building: building, active: true, service_codes: procurement.service_codes) diff --git a/features/step_definitions/facilities_management/rm6232/admin_steps.rb b/features/step_definitions/facilities_management/rm6232/admin_steps.rb index 03429d19ff..3f475a4241 100644 --- a/features/step_definitions/facilities_management/rm6232/admin_steps.rb +++ b/features/step_definitions/facilities_management/rm6232/admin_steps.rb @@ -43,7 +43,9 @@ end Then('I deselect all checkboxes') do + # rubocop:disable Rails/FindEach admin_page.all('input[type="checkbox"][checked="checked"]').each(&:uncheck) + # rubocop:enable Rails/FindEach end Then('I select {string} for the lot status') do |option| diff --git a/features/step_definitions/hooks.rb b/features/step_definitions/hooks.rb index 0c8f7c3055..1ecda5baf6 100644 --- a/features/step_definitions/hooks.rb +++ b/features/step_definitions/hooks.rb @@ -24,7 +24,7 @@ end Before('not @javascript') do - page.driver.browser.set_cookie('crown_marketplace_cookie_options_v1=%7B%22settings_viewed%22%3Atrue%2C%22google_analytics_enabled%22%3Afalse%2C%22glassbox_enabled%22%3Afalse%7D') + page.driver.browser.set_cookie('cookie_preferences=%7B%22settings_viewed%22%3Atrue%2C%22usage%22%3Afalse%2C%22glassbox%22%3Afalse%7D') end Before('@contract_emails') do diff --git a/lib/tasks/facilities_management/rm3830/procurements.rake b/lib/tasks/facilities_management/rm3830/procurements.rake index f950283391..3c12938c9e 100644 --- a/lib/tasks/facilities_management/rm3830/procurements.rake +++ b/lib/tasks/facilities_management/rm3830/procurements.rake @@ -6,7 +6,7 @@ namespace :procurements do FacilitiesManagement::RM3830::Procurement .includes(:procurement_suppliers) - .where(aasm_state: %w[results da_draft direct_award further_competition closed]).each do |procurement| + .where(aasm_state: %w[results da_draft direct_award further_competition closed]).find_each do |procurement| if procurement.procurement_suppliers.none? puts "Deleting procurement with ID #{procurement.id}" procurement.destroy diff --git a/lib/tasks/os_data_processing.rb b/lib/tasks/os_data_processing.rb index 5b2422c8e5..9d1d4f44c2 100644 --- a/lib/tasks/os_data_processing.rb +++ b/lib/tasks/os_data_processing.rb @@ -122,7 +122,7 @@ def self.chunk_file_data(io, meta_type, &block) def self.process_csv_data(type, csv_stream) return inject_data(csv_stream.read) if type == :dat - return upsert_csv_data(csv_stream) unless type == :dat + upsert_csv_data(csv_stream) unless type == :dat end def self.handle_tar_contents(tar, summary, &) diff --git a/package.json b/package.json index 332b178eb7..a07ba6343e 100644 --- a/package.json +++ b/package.json @@ -2,21 +2,21 @@ "name": "marketplace", "private": true, "dependencies": { - "@babel/core": "^7.22.9", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@rails/ujs": "^7.0.6", + "@babel/core": "^7.23.0", + "@babel/plugin-transform-runtime": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/runtime": "^7.23.1", + "@rails/ujs": "^7.0.8", "babel-loader": "^9.1.3", "compression-webpack-plugin": "^10.0.0", "expose-loader": "^4.1.0", "govuk-frontend": "^4.7.0", - "jquery": "^3.7.0", + "jquery": "^3.7.1", "js-cookie": "^3.0.5", - "shakapacker": "7.0.2", + "shakapacker": "7.1.0", "terser-webpack-plugin": "^5.3.9", "turbolinks": "^5.2.0", - "typescript": "^5.1.6", + "typescript": "^5.2.2", "webpack": "^5.88.2", "webpack-assets-manifest": "^5.1.0", "webpack-cli": "^5.1.4", @@ -33,14 +33,14 @@ "defaults" ], "devDependencies": { - "@babel/preset-env": "^7.22.9", - "@types/jquery": "^3.5.16", - "@types/js-cookie": "^3.0.3", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.1.0", + "@babel/preset-env": "^7.22.20", + "@types/jquery": "^3.5.22", + "@types/js-cookie": "^3.0.4", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", "@webpack-cli/serve": "^2.0.5", - "eslint": "^8.45.0", - "fork-ts-checker-webpack-plugin": "^8.0.0", + "eslint": "^8.51.0", + "fork-ts-checker-webpack-plugin": "^9.0.0", "webpack-dev-server": "^4.15.1" } } diff --git a/spec/controllers/crown_marketplace/home_controller_spec.rb b/spec/controllers/crown_marketplace/home_controller_spec.rb index f79b676e6b..63d590696f 100644 --- a/spec/controllers/crown_marketplace/home_controller_spec.rb +++ b/spec/controllers/crown_marketplace/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/crown_marketplace/sessions_controller_spec.rb b/spec/controllers/crown_marketplace/sessions_controller_spec.rb index 30e6af1c5a..37f6003413 100644 --- a/spec/controllers/crown_marketplace/sessions_controller_spec.rb +++ b/spec/controllers/crown_marketplace/sessions_controller_spec.rb @@ -71,8 +71,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) post :create, params: { user: { email: email, password: 'Password12345!' } } diff --git a/spec/controllers/facilities_management/rm3830/admin/home_controller_spec.rb b/spec/controllers/facilities_management/rm3830/admin/home_controller_spec.rb index 2b4a26f5b7..2737ed7221 100644 --- a/spec/controllers/facilities_management/rm3830/admin/home_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/admin/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/facilities_management/rm3830/admin/sessions_controller_spec.rb b/spec/controllers/facilities_management/rm3830/admin/sessions_controller_spec.rb index 701ead48ac..34537b6189 100644 --- a/spec/controllers/facilities_management/rm3830/admin/sessions_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/admin/sessions_controller_spec.rb @@ -83,8 +83,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) end diff --git a/spec/controllers/facilities_management/rm3830/home_controller_spec.rb b/spec/controllers/facilities_management/rm3830/home_controller_spec.rb index 78ebcfc204..307a694952 100644 --- a/spec/controllers/facilities_management/rm3830/home_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/facilities_management/rm3830/procurements_controller_spec.rb b/spec/controllers/facilities_management/rm3830/procurements_controller_spec.rb index 9f4f07ffd2..391016db7f 100644 --- a/spec/controllers/facilities_management/rm3830/procurements_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/procurements_controller_spec.rb @@ -257,7 +257,7 @@ context 'when Save and continue is selected with no region codes' do it 'redirects to facilities_management_rm3830_procurement_path for the new record' do post :create, params: { facilities_management_rm3830_procurement: { contract_name: 'New procurement' } } - new_procurement = FacilitiesManagement::RM3830::Procurement.all.order(created_at: :asc).first + new_procurement = FacilitiesManagement::RM3830::Procurement.order(created_at: :asc).first expect(response).to redirect_to facilities_management_rm3830_procurement_path(new_procurement.id) end end @@ -265,7 +265,7 @@ context 'when Save and continue is selected with region codes' do it 'redirects to facilities_management_rm3830_procurement_path for the new record' do post :create, params: { facilities_management_rm3830_procurement: { contract_name: 'New procurement', region_codes: %w[UKC1 UKC2] } } - new_procurement = FacilitiesManagement::RM3830::Procurement.all.order(created_at: :asc).first + new_procurement = FacilitiesManagement::RM3830::Procurement.order(created_at: :asc).first expect(response).to redirect_to facilities_management_rm3830_procurement_path(new_procurement.id, what_happens_next: true) end end @@ -391,9 +391,7 @@ before do allow(FacilitiesManagement::RM3830::AssessedValueCalculator).to receive(:new).with(procurement.id).and_return(obj) allow_any_instance_of(procurement.class).to receive(:copy_fm_rate_cards_to_frozen) - allow(obj).to receive(:assessed_value).and_return(0.1234) - allow(obj).to receive(:lot_number).and_return('1a') - allow(obj).to receive(:sorted_list).and_return([]) + allow(obj).to receive_messages(assessed_value: 0.1234, lot_number: '1a', sorted_list: []) procurement.update(aasm_state: 'detailed_search') end diff --git a/spec/controllers/facilities_management/rm3830/sessions_controller_spec.rb b/spec/controllers/facilities_management/rm3830/sessions_controller_spec.rb index 11f624674f..066442a667 100644 --- a/spec/controllers/facilities_management/rm3830/sessions_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/sessions_controller_spec.rb @@ -96,8 +96,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) post :create, params: { user: { email: email, password: 'Password12345!' } } diff --git a/spec/controllers/facilities_management/rm3830/supplier/home_controller_spec.rb b/spec/controllers/facilities_management/rm3830/supplier/home_controller_spec.rb index 7e80d72f58..36faf2a9b4 100644 --- a/spec/controllers/facilities_management/rm3830/supplier/home_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/supplier/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/facilities_management/rm3830/supplier/sessions_controller_spec.rb b/spec/controllers/facilities_management/rm3830/supplier/sessions_controller_spec.rb index fb159a5187..943e127a24 100644 --- a/spec/controllers/facilities_management/rm3830/supplier/sessions_controller_spec.rb +++ b/spec/controllers/facilities_management/rm3830/supplier/sessions_controller_spec.rb @@ -83,8 +83,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) post :create, params: { user: { email: email, password: 'Password12345!' } } diff --git a/spec/controllers/facilities_management/rm6232/admin/home_controller_spec.rb b/spec/controllers/facilities_management/rm6232/admin/home_controller_spec.rb index ba73a04496..5cf2061c80 100644 --- a/spec/controllers/facilities_management/rm6232/admin/home_controller_spec.rb +++ b/spec/controllers/facilities_management/rm6232/admin/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/facilities_management/rm6232/admin/sessions_controller_spec.rb b/spec/controllers/facilities_management/rm6232/admin/sessions_controller_spec.rb index 472b491ba4..91f12c8bae 100644 --- a/spec/controllers/facilities_management/rm6232/admin/sessions_controller_spec.rb +++ b/spec/controllers/facilities_management/rm6232/admin/sessions_controller_spec.rb @@ -83,8 +83,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) end diff --git a/spec/controllers/facilities_management/rm6232/home_controller_spec.rb b/spec/controllers/facilities_management/rm6232/home_controller_spec.rb index abf92f49ba..05ceeb76f0 100644 --- a/spec/controllers/facilities_management/rm6232/home_controller_spec.rb +++ b/spec/controllers/facilities_management/rm6232/home_controller_spec.rb @@ -42,11 +42,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } ) end @@ -78,11 +78,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => true + 'usage' => false, + 'glassbox' => true } ) end @@ -114,11 +114,11 @@ let(:update_params) { { ga_cookie_usage: 'true', glassbox_cookie_usage: 'true' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true } ) end @@ -142,11 +142,11 @@ let(:update_params) { { ga_cookie_usage: 'false', glassbox_cookie_usage: 'false' } } it 'updates the cookie preferences' do - expect(JSON.parse(response.cookies['crown_marketplace_cookie_options_v1'])).to eq( + expect(JSON.parse(response.cookies['cookie_preferences'])).to eq( { 'settings_viewed' => true, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } ) end diff --git a/spec/controllers/facilities_management/rm6232/sessions_controller_spec.rb b/spec/controllers/facilities_management/rm6232/sessions_controller_spec.rb index 258752b9cd..465942293c 100644 --- a/spec/controllers/facilities_management/rm6232/sessions_controller_spec.rb +++ b/spec/controllers/facilities_management/rm6232/sessions_controller_spec.rb @@ -96,8 +96,7 @@ end before do - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username })) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(challenge_name: challenge_name, session: session, challenge_parameters: { 'USER_ID_FOR_SRP' => username }), admin_list_groups_for_user: cognito_groups) allow(Cognito::CreateUserFromCognito).to receive(:call).and_return(admin_create_user_resp_struct.new(user:)) post :create, params: { user: { email: email, password: 'Password12345!' } } diff --git a/spec/factories/facilities_management/building.rb b/spec/factories/facilities_management/building.rb index 141807e994..10eaf9a5a2 100644 --- a/spec/factories/facilities_management/building.rb +++ b/spec/factories/facilities_management/building.rb @@ -2,7 +2,7 @@ factory :facilities_management_building_defaults, class: 'FacilitiesManagement::Building' do id { SecureRandom.uuid } updated_by { Faker::Internet.unique.email } - association :user + user end factory :facilities_management_building, parent: :facilities_management_building_defaults do diff --git a/spec/factories/facilities_management/rm3830/procurement.rb b/spec/factories/facilities_management/rm3830/procurement.rb index f8afd9dee6..e92e59de7b 100644 --- a/spec/factories/facilities_management/rm3830/procurement.rb +++ b/spec/factories/facilities_management/rm3830/procurement.rb @@ -10,7 +10,7 @@ initial_call_off_period_months { 0 } initial_call_off_start_date { 6.months.from_now } service_codes { ['C.1', 'C.2'] } - association :user + user end factory :facilities_management_rm3830_procurement, parent: :facilities_management_rm3830_procurement_no_procurement_buildings do @@ -85,7 +85,7 @@ factory :facilities_management_rm3830_procurement_with_contact_details_with_buildings, parent: :facilities_management_rm3830_procurement_with_contact_details do tupe { true } procurement_buildings { build_list(:facilities_management_rm3830_procurement_building, 2) } - association :user, :with_detail + user factory: %i[user with_detail] end factory :facilities_management_rm3830_procurement_with_contact_details_with_buildings_no_tupe_london, parent: :facilities_management_rm3830_procurement_with_contact_details do @@ -100,13 +100,13 @@ initial_call_off_period_years { 1 } initial_call_off_period_months { 0 } service_codes { ['C.1', 'C.2'] } - association :user + user procurement_buildings { build_list(:facilities_management_rm3830_procurement_building_for_further_competition, 1) } end factory :facilities_management_rm3830_procurement_for_further_competition_with_gia, parent: :facilities_management_rm3830_procurement_for_further_competition do initial_call_off_start_date { 6.months.from_now } - association :user, :with_detail + user factory: %i[user with_detail] procurement_buildings { build_list(:facilities_management_rm3830_procurement_building_for_further_competition_with_gia, 1) } end @@ -121,7 +121,7 @@ factory :facilities_management_rm3830_procurement_entering_requirements, class: 'FacilitiesManagement::RM3830::Procurement' do contract_name { Faker::Name.unique.name } aasm_state { 'detailed_search' } - association :user + user end factory :facilities_management_rm3830_procurement_entering_requirements_complete, parent: :facilities_management_rm3830_procurement_entering_requirements do diff --git a/spec/factories/facilities_management/rm3830/procurement_authorised_contact_detail.rb b/spec/factories/facilities_management/rm3830/procurement_authorised_contact_detail.rb index 42c56fbf07..bdbc7333e9 100644 --- a/spec/factories/facilities_management/rm3830/procurement_authorised_contact_detail.rb +++ b/spec/factories/facilities_management/rm3830/procurement_authorised_contact_detail.rb @@ -1,10 +1,10 @@ FactoryBot.define do factory :facilities_management_rm3830_procurement_authorised_contact_detail, parent: :facilities_management_rm3830_procurement_contact_detail, class: 'FacilitiesManagement::RM3830::ProcurementAuthorisedContactDetail' do telephone_number { '07500404040' } - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end factory :facilities_management_rm3830_procurement_authorised_contact_detail_empty, parent: :facilities_management_rm3830_procurement_contact_detail_empty, class: 'FacilitiesManagement::RM3830::ProcurementAuthorisedContactDetail' do - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end end diff --git a/spec/factories/facilities_management/rm3830/procurement_call_off_extension.rb b/spec/factories/facilities_management/rm3830/procurement_call_off_extension.rb index 72644ab216..e28147a08c 100644 --- a/spec/factories/facilities_management/rm3830/procurement_call_off_extension.rb +++ b/spec/factories/facilities_management/rm3830/procurement_call_off_extension.rb @@ -4,6 +4,6 @@ years { 1 } months { 1 } extension_required { 'true' } - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end end diff --git a/spec/factories/facilities_management/rm3830/procurement_invoice_contact_detail.rb b/spec/factories/facilities_management/rm3830/procurement_invoice_contact_detail.rb index e15dc8487a..881593859b 100644 --- a/spec/factories/facilities_management/rm3830/procurement_invoice_contact_detail.rb +++ b/spec/factories/facilities_management/rm3830/procurement_invoice_contact_detail.rb @@ -1,9 +1,9 @@ FactoryBot.define do factory :facilities_management_rm3830_procurement_invoice_contact_detail, parent: :facilities_management_rm3830_procurement_contact_detail, class: 'FacilitiesManagement::RM3830::ProcurementInvoiceContactDetail' do - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end factory :facilities_management_rm3830_procurement_invoice_contact_detail_empty, parent: :facilities_management_rm3830_procurement_contact_detail_empty, class: 'FacilitiesManagement::RM3830::ProcurementInvoiceContactDetail' do - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end end diff --git a/spec/factories/facilities_management/rm3830/procurement_notices_contact_detail.rb b/spec/factories/facilities_management/rm3830/procurement_notices_contact_detail.rb index ab5da2506e..5d70e5f7df 100644 --- a/spec/factories/facilities_management/rm3830/procurement_notices_contact_detail.rb +++ b/spec/factories/facilities_management/rm3830/procurement_notices_contact_detail.rb @@ -1,9 +1,9 @@ FactoryBot.define do factory :facilities_management_rm3830_procurement_notices_contact_detail, parent: :facilities_management_rm3830_procurement_contact_detail, class: 'FacilitiesManagement::RM3830::ProcurementNoticesContactDetail' do - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end factory :facilities_management_rm3830_procurement_notices_contact_detail_empty, parent: :facilities_management_rm3830_procurement_contact_detail_empty, class: 'FacilitiesManagement::RM3830::ProcurementNoticesContactDetail' do - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end end diff --git a/spec/factories/facilities_management/rm3830/procurement_pension_funds.rb b/spec/factories/facilities_management/rm3830/procurement_pension_funds.rb index 2b0159b579..57e2993351 100644 --- a/spec/factories/facilities_management/rm3830/procurement_pension_funds.rb +++ b/spec/factories/facilities_management/rm3830/procurement_pension_funds.rb @@ -2,6 +2,6 @@ factory :facilities_management_rm3830_procurement_pension_fund, class: 'FacilitiesManagement::RM3830::ProcurementPensionFund' do name { Faker::Name.unique.name[1..150] } percentage { rand(1..100).to_s } - association :procurement, factory: :facilities_management_rm3830_procurement + procurement factory: %i[facilities_management_rm3830_procurement] end end diff --git a/spec/factories/facilities_management/rm3830/procurement_supplier.rb b/spec/factories/facilities_management/rm3830/procurement_supplier.rb index befd907325..78bf5c6970 100644 --- a/spec/factories/facilities_management/rm3830/procurement_supplier.rb +++ b/spec/factories/facilities_management/rm3830/procurement_supplier.rb @@ -1,12 +1,12 @@ FactoryBot.define do factory :facilities_management_rm3830_procurement_supplier, class: 'FacilitiesManagement::RM3830::ProcurementSupplier' do direct_award_value { rand(50000..100000) } - association :procurement, factory: :facilities_management_rm3830_procurement - association :supplier, factory: :facilities_management_rm3830_supplier_detail + procurement factory: %i[facilities_management_rm3830_procurement] + supplier factory: %i[facilities_management_rm3830_supplier_detail] end factory :facilities_management_rm3830_procurement_supplier_da, parent: :facilities_management_rm3830_procurement_supplier do - association :procurement, factory: :facilities_management_rm3830_procurement_direct_award + procurement factory: %i[facilities_management_rm3830_procurement_direct_award] end factory :facilities_management_rm3830_procurement_supplier_da_with_supplier, parent: :facilities_management_rm3830_procurement_supplier_da do @@ -14,7 +14,7 @@ end factory :facilities_management_rm3830_procurement_supplier_fc, parent: :facilities_management_rm3830_procurement_supplier do - association :procurement, factory: :facilities_management_rm3830_procurement_further_competition + procurement factory: %i[facilities_management_rm3830_procurement_further_competition] end factory :facilities_management_rm3830_procurement_supplier_with_contract_documents, parent: :facilities_management_rm3830_procurement_supplier do diff --git a/spec/factories/facilities_management/rm6232/admin/supplier_data/edit.rb b/spec/factories/facilities_management/rm6232/admin/supplier_data/edit.rb index 7c4fab7ac7..d172986d66 100644 --- a/spec/factories/facilities_management/rm6232/admin/supplier_data/edit.rb +++ b/spec/factories/facilities_management/rm6232/admin/supplier_data/edit.rb @@ -1,7 +1,7 @@ FactoryBot.define do factory :facilities_management_rm6232_admin_supplier_data_edit, class: 'FacilitiesManagement::RM6232::Admin::SupplierData::Edit' do id { SecureRandom.uuid } - association :user + user supplier_data do |edit| supplier_data = FacilitiesManagement::RM6232::Admin::SupplierData.latest_data diff --git a/spec/factories/facilities_management/rm6232/admin/upload.rb b/spec/factories/facilities_management/rm6232/admin/upload.rb index 07821c69b5..a0f5033181 100644 --- a/spec/factories/facilities_management/rm6232/admin/upload.rb +++ b/spec/factories/facilities_management/rm6232/admin/upload.rb @@ -1,6 +1,6 @@ FactoryBot.define do factory :facilities_management_rm6232_admin_upload, class: 'FacilitiesManagement::RM6232::Admin::Upload' do - association :user + user end factory :facilities_management_rm6232_admin_upload_with_upload, parent: :facilities_management_rm6232_admin_upload do diff --git a/spec/factories/facilities_management/rm6232/procurement.rb b/spec/factories/facilities_management/rm6232/procurement.rb index eaaf4e05cd..3123d65864 100644 --- a/spec/factories/facilities_management/rm6232/procurement.rb +++ b/spec/factories/facilities_management/rm6232/procurement.rb @@ -4,7 +4,7 @@ region_codes { ['UKI4', 'UKI5'] } annual_contract_value { 12_345 } contract_name { Faker::Name.unique.name } - association :user + user trait :skip_generate_contract_number do before(:create) { |procurement| procurement.class.skip_callback(:create, :before, :generate_contract_number, raise: false) } diff --git a/spec/factories/facilities_management/rm6232/procurement/call_off_extension.rb b/spec/factories/facilities_management/rm6232/procurement/call_off_extension.rb index 201ec9cf3c..af4b236799 100644 --- a/spec/factories/facilities_management/rm6232/procurement/call_off_extension.rb +++ b/spec/factories/facilities_management/rm6232/procurement/call_off_extension.rb @@ -4,6 +4,6 @@ years { 1 } months { 1 } extension_required { 'true' } - association :procurement, factory: :facilities_management_rm6232_procurement_entering_requirements + procurement factory: %i[facilities_management_rm6232_procurement_entering_requirements] end end diff --git a/spec/features/authentication.feature_spec.rb b/spec/features/authentication.feature_spec.rb index 1d7f5c765e..6747281726 100644 --- a/spec/features/authentication.feature_spec.rb +++ b/spec/features/authentication.feature_spec.rb @@ -15,8 +15,7 @@ before do allow(Aws::CognitoIdentityProvider::Client).to receive(:new).and_return(aws_client) - allow(aws_client).to receive(:initiate_auth).and_return(initiate_auth_resp_struct.new(session: '1234667')) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(initiate_auth: initiate_auth_resp_struct.new(session: '1234667'), admin_list_groups_for_user: cognito_groups) # rubocop:disable RSpec/AnyInstance allow_any_instance_of(Cognito::SignInUser).to receive(:sleep) # rubocop:enable RSpec/AnyInstance diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 0736f1606d..f0a97d7a1b 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -197,8 +197,8 @@ let(:default_cookie_settings) do { 'settings_viewed' => false, - 'google_analytics_enabled' => false, - 'glassbox_enabled' => false + 'usage' => false, + 'glassbox' => false } end @@ -209,14 +209,14 @@ end context 'when the cookie has been set' do - before { helper.request.cookies['crown_marketplace_cookie_options_v1'] = cookie_settings } + before { helper.request.cookies['cookie_preferences'] = cookie_settings } context 'and it is a hash' do let(:expected_cookie_settings) do { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => false + 'usage' => true, + 'glassbox' => false } end let(:cookie_settings) { expected_cookie_settings.to_json } diff --git a/spec/helpers/facilities_management/procurement_buildings_helper_rm3830_spec.rb b/spec/helpers/facilities_management/procurement_buildings_helper_rm3830_spec.rb index 7e6a39dd3c..89c25108c2 100644 --- a/spec/helpers/facilities_management/procurement_buildings_helper_rm3830_spec.rb +++ b/spec/helpers/facilities_management/procurement_buildings_helper_rm3830_spec.rb @@ -142,8 +142,7 @@ let(:result) { helper.return_link } before do - allow(helper).to receive(:section).and_return(section_name) - allow(helper).to receive(:procurement_show_path).and_return('procurement_show_path') + allow(helper).to receive_messages(section: section_name, procurement_show_path: 'procurement_show_path') helper.params[:framework] = 'RM3830' end diff --git a/spec/helpers/facilities_management/procurement_buildings_helper_rm6232_spec.rb b/spec/helpers/facilities_management/procurement_buildings_helper_rm6232_spec.rb index 83371a71f7..d7d6b0eeaf 100644 --- a/spec/helpers/facilities_management/procurement_buildings_helper_rm6232_spec.rb +++ b/spec/helpers/facilities_management/procurement_buildings_helper_rm6232_spec.rb @@ -116,8 +116,7 @@ let(:result) { helper.return_link } before do - allow(helper).to receive(:section).and_return(section_name) - allow(helper).to receive(:procurement_show_path).and_return('procurement_show_path') + allow(helper).to receive_messages(section: section_name, procurement_show_path: 'procurement_show_path') helper.params[:framework] = 'RM6232' end diff --git a/spec/helpers/facilities_management/procurement_details_helper_rm3830_spec.rb b/spec/helpers/facilities_management/procurement_details_helper_rm3830_spec.rb index 9d41ccb1b2..8b4bd0ed09 100644 --- a/spec/helpers/facilities_management/procurement_details_helper_rm3830_spec.rb +++ b/spec/helpers/facilities_management/procurement_details_helper_rm3830_spec.rb @@ -103,7 +103,7 @@ end end - context 'when there are errors on call_off_extensions' do + context 'when there are errors on call_off_extensions.base' do let(:months) { 0 } let(:years) { 0 } @@ -198,12 +198,12 @@ end end - context 'when there are errors on call_off_extensions' do + context 'when there are errors on call_off_extensions.base' do let(:months) { 0 } let(:years) { 0 } - it 'returns an array with -error' do - expect(helper.display_extension_error_anchor).to eq ['call_off_extensions-error'] + it 'returns an array with base-error' do + expect(helper.display_extension_error_anchor).to eq ['call_off_extensions.base-error'] end end end diff --git a/spec/helpers/facilities_management/procurement_details_helper_rm6232_spec.rb b/spec/helpers/facilities_management/procurement_details_helper_rm6232_spec.rb index 3b7375d34f..1cccdd6702 100644 --- a/spec/helpers/facilities_management/procurement_details_helper_rm6232_spec.rb +++ b/spec/helpers/facilities_management/procurement_details_helper_rm6232_spec.rb @@ -103,7 +103,7 @@ end end - context 'when there are errors on call_off_extensions' do + context 'when there are errors on call_off_extensions.base' do let(:months) { 0 } let(:years) { 0 } @@ -202,8 +202,8 @@ let(:months) { 0 } let(:years) { 0 } - it 'returns an array with -error' do - expect(helper.display_extension_error_anchor).to eq ['call_off_extensions-error'] + it 'returns an array with base-error' do + expect(helper.display_extension_error_anchor).to eq ['call_off_extensions.base-error'] end end end diff --git a/spec/helpers/facilities_management/rm3830/procurements_helper_spec.rb b/spec/helpers/facilities_management/rm3830/procurements_helper_spec.rb index 29839cf4d7..f9250436de 100644 --- a/spec/helpers/facilities_management/rm3830/procurements_helper_spec.rb +++ b/spec/helpers/facilities_management/rm3830/procurements_helper_spec.rb @@ -617,7 +617,7 @@ context 'when the contract_datetime is 06/09/2021 - 2:26am' do let(:contract_datetime) { '06/09/2021 - 2:26am' } - it 'returns 6 September 2021, 3:26am ' do + it 'returns 6 September 2021, 3:26am' do expect(helper.further_competition_saved_date(procurement)).to eq ' 6 September 2021, 3:26am' end end diff --git a/spec/models/facilities_management/rm3830/procurement_spec.rb b/spec/models/facilities_management/rm3830/procurement_spec.rb index 01da60aa19..95e9bad444 100644 --- a/spec/models/facilities_management/rm3830/procurement_spec.rb +++ b/spec/models/facilities_management/rm3830/procurement_spec.rb @@ -457,9 +457,7 @@ def continue_error_list before do allow(FacilitiesManagement::RM3830::AssessedValueCalculator).to receive(:new).with(procurement.id).and_return(obj) - allow(obj).to receive(:assessed_value).and_return(0.1234) - allow(obj).to receive(:lot_number).and_return('1a') - allow(obj).to receive(:sorted_list).and_return([{ supplier_name: 'test', supplier_id: supplier_ids[0], da_value: da_value_test }, { supplier_name: 'test1', supplier_id: supplier_ids[1], da_value: da_value_test1 }]) + allow(obj).to receive_messages(assessed_value: 0.1234, lot_number: '1a', sorted_list: [{ supplier_name: 'test', supplier_id: supplier_ids[0], da_value: da_value_test }, { supplier_name: 'test1', supplier_id: supplier_ids[1], da_value: da_value_test1 }]) end context 'when no eligible suppliers' do @@ -1545,8 +1543,7 @@ def continue_error_list context 'when both Services and Buildings tasks are not COMPLETED yet' do before do - allow(procurement).to receive(:services_status).and_return(:not_started) - allow(procurement).to receive(:buildings_status).and_return(:not_started) + allow(procurement).to receive_messages(services_status: :not_started, buildings_status: :not_started) end it 'shown with the CANNOT START YET status label' do @@ -1556,8 +1553,7 @@ def continue_error_list context 'when both Services and Buildings tasks are COMPLETED' do before do - allow(procurement).to receive(:services_status).and_return(:completed) - allow(procurement).to receive(:buildings_status).and_return(:completed) + allow(procurement).to receive_messages(services_status: :completed, buildings_status: :completed) end context 'when no service has been assigned to any building yet' do diff --git a/spec/models/facilities_management/rm3830/rate_spec.rb b/spec/models/facilities_management/rm3830/rate_spec.rb index e68dde5ebc..02fbb7a752 100644 --- a/spec/models/facilities_management/rm3830/rate_spec.rb +++ b/spec/models/facilities_management/rm3830/rate_spec.rb @@ -4,7 +4,7 @@ it 'contains data' do benchmark_rates = {} framework_rates = {} - described_class.all.each do |row| + described_class.find_each do |row| code = row['code'].remove('.') benchmark_rates[code] = row['benchmark'].to_f framework_rates[code] = row['framework'].to_f diff --git a/spec/models/facilities_management/rm6232/procurement_spec.rb b/spec/models/facilities_management/rm6232/procurement_spec.rb index 354df29c88..695fb85cf0 100644 --- a/spec/models/facilities_management/rm6232/procurement_spec.rb +++ b/spec/models/facilities_management/rm6232/procurement_spec.rb @@ -778,8 +778,7 @@ context 'when both Services and Buildings tasks are not COMPLETED yet' do before do - allow(procurement).to receive(:services_status).and_return(:not_started) - allow(procurement).to receive(:buildings_status).and_return(:not_started) + allow(procurement).to receive_messages(services_status: :not_started, buildings_status: :not_started) end it 'shown with the CANNOT START YET status label' do @@ -789,8 +788,7 @@ context 'when both Services and Buildings tasks are COMPLETED' do before do - allow(procurement).to receive(:services_status).and_return(:completed) - allow(procurement).to receive(:buildings_status).and_return(:completed) + allow(procurement).to receive_messages(services_status: :completed, buildings_status: :completed) end context 'when no service has been assigned to any building yet' do diff --git a/spec/models/static_record_spec.rb b/spec/models/static_record_spec.rb index 64d4fefb6c..406cbbc158 100644 --- a/spec/models/static_record_spec.rb +++ b/spec/models/static_record_spec.rb @@ -65,7 +65,7 @@ end it 'freezes individual records' do - expect { klass.all.first.name = 'NEW' } + expect { klass.first.name = 'NEW' } .to raise_exception(FrozenError) end diff --git a/spec/services/cognito/admin/user_spec.rb b/spec/services/cognito/admin/user_spec.rb index 9c9b13a461..34342c76bf 100644 --- a/spec/services/cognito/admin/user_spec.rb +++ b/spec/services/cognito/admin/user_spec.rb @@ -933,22 +933,17 @@ before do allow(Aws::CognitoIdentityProvider::Client).to receive(:new).and_return(aws_client) - allow(aws_client).to receive(:admin_get_user).and_return( - admin_get_user_resp_struct.new( - user_attributes: [ - cognito_user_attribute_struct.new({ name: 'email', value: email }), - cognito_user_attribute_struct.new({ name: 'phone_number', value: cognito_telephone_number }) - ], - enabled: cognio_enabled, - user_status: 'CONFIRMED', - user_mfa_setting_list: cognito_mfa_setting_list - ) - ) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return( - admin_list_groups_for_user_resp_struct.new( - groups: cognito_groups.map { |cognito_role| cognito_group_struct.new(group_name: cognito_role) } - ) - ) + allow(aws_client).to receive_messages(admin_get_user: admin_get_user_resp_struct.new( + user_attributes: [ + cognito_user_attribute_struct.new({ name: 'email', value: email }), + cognito_user_attribute_struct.new({ name: 'phone_number', value: cognito_telephone_number }) + ], + enabled: cognio_enabled, + user_status: 'CONFIRMED', + user_mfa_setting_list: cognito_mfa_setting_list + ), admin_list_groups_for_user: admin_list_groups_for_user_resp_struct.new( + groups: cognito_groups.map { |cognito_role| cognito_group_struct.new(group_name: cognito_role) } + )) end context 'when considering the attributes' do diff --git a/spec/services/cognito/create_user_from_cognito_spec.rb b/spec/services/cognito/create_user_from_cognito_spec.rb index dea436e519..58185d560f 100644 --- a/spec/services/cognito/create_user_from_cognito_spec.rb +++ b/spec/services/cognito/create_user_from_cognito_spec.rb @@ -78,8 +78,7 @@ context 'when success' do before do - allow(aws_client).to receive(:admin_get_user).and_return(cognito_user) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(admin_get_user: cognito_user, admin_list_groups_for_user: cognito_groups) end it 'creates user' do @@ -134,8 +133,7 @@ context 'when user already exists' do before do - allow(aws_client).to receive(:admin_get_user).and_return(cognito_user) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(admin_get_user: cognito_user, admin_list_groups_for_user: cognito_groups) create(:user, :without_detail, cognito_uuid: '0987', email: email, roles: %i[buyer fm_access]) end @@ -184,8 +182,7 @@ end before do - allow(aws_client).to receive(:admin_get_user).and_return(cognito_user) - allow(aws_client).to receive(:admin_list_groups_for_user).and_return(cognito_groups) + allow(aws_client).to receive_messages(admin_get_user: cognito_user, admin_list_groups_for_user: cognito_groups) end context 'when supplier detail exists with the same contact_name' do diff --git a/spec/services/cognito/sign_up_user_spec.rb b/spec/services/cognito/sign_up_user_spec.rb index 2bab6639dd..4b4059a911 100644 --- a/spec/services/cognito/sign_up_user_spec.rb +++ b/spec/services/cognito/sign_up_user_spec.rb @@ -67,8 +67,7 @@ let(:response) { described_class.new(email, password, password_confirmation, roles) } before do - allow(aws_client).to receive(:sign_up).and_return(JSON[{ user_sub: '12345'.to_json }]) - allow(aws_client).to receive(:admin_add_user_to_group).and_return(JSON[{ user_sub: '12345'.to_json }]) + allow(aws_client).to receive_messages(sign_up: JSON[{ user_sub: '12345'.to_json }], admin_add_user_to_group: JSON[{ user_sub: '12345'.to_json }]) end context 'when password shorter than 8 characters' do @@ -234,8 +233,7 @@ let(:response) { described_class.call(email, password, password_confirmation, roles) } before do - allow(aws_client).to receive(:sign_up).and_return(JSON[{ user_sub: '12345'.to_json }]) - allow(aws_client).to receive(:admin_add_user_to_group).and_return(JSON[{ user_sub: '12345'.to_json }]) + allow(aws_client).to receive_messages(sign_up: JSON[{ user_sub: '12345'.to_json }], admin_add_user_to_group: JSON[{ user_sub: '12345'.to_json }]) end it 'creates user' do diff --git a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_0_spec.rb b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_0_spec.rb index 8da3b4f743..56f892e30a 100644 --- a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_0_spec.rb +++ b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_0_spec.rb @@ -73,10 +73,10 @@ before do create(:facilities_management_rm3830_procurement_building_av_normal_building, procurement:, service_codes:) create(:facilities_management_rm3830_procurement_building_av_london_building, procurement:, service_codes:) - procurement.procurement_building_services.where(code: %w[C.2 C.5 G.1]).each { |pbs| pbs.update(service_standard: 'A') } - procurement.procurement_building_services.where(code: 'G.1').each { |pbs| pbs.update(no_of_building_occupants: volume) } - procurement.procurement_building_services.where(code: 'E.4').each { |pbs| pbs.update(no_of_appliances_for_testing: volume) } - procurement.procurement_building_services.where(code: 'C.5').each { |pbs| no_of_lifts.times { pbs.lifts.create(number_of_floors:) } } + procurement.procurement_building_services.where(code: %w[C.2 C.5 G.1]).find_each { |pbs| pbs.update(service_standard: 'A') } + procurement.procurement_building_services.where(code: 'G.1').find_each { |pbs| pbs.update(no_of_building_occupants: volume) } + procurement.procurement_building_services.where(code: 'E.4').find_each { |pbs| pbs.update(no_of_appliances_for_testing: volume) } + procurement.procurement_building_services.where(code: 'C.5').find_each { |pbs| no_of_lifts.times { pbs.lifts.create(number_of_floors:) } } end context 'and the lot is 1a' do diff --git a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1a_spec.rb b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1a_spec.rb index 49bb095c7b..46f4a4b494 100644 --- a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1a_spec.rb +++ b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1a_spec.rb @@ -253,11 +253,11 @@ before do create(:facilities_management_rm3830_procurement_building_av_normal_building, procurement:, service_codes:) create(:facilities_management_rm3830_procurement_building_av_london_building, procurement:, service_codes:) - procurement.procurement_building_services.where(code: 'C.1').each { |pbs| pbs.update(service_standard: 'A') } - procurement.procurement_building_services.where(code: 'G.1').each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: 88000) } - procurement.procurement_building_services.where(code: 'I.1').each { |pbs| pbs.update(service_hours: 8736) } - procurement.procurement_building_services.where(code: 'K.2').each { |pbs| pbs.update(tones_to_be_collected_and_removed: 13000) } - procurement.procurement_building_services.where(code: 'H.4').each { |pbs| pbs.update(service_hours: 8736) } + procurement.procurement_building_services.where(code: 'C.1').find_each { |pbs| pbs.update(service_standard: 'A') } + procurement.procurement_building_services.where(code: 'G.1').find_each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: 88000) } + procurement.procurement_building_services.where(code: 'I.1').find_each { |pbs| pbs.update(service_hours: 8736) } + procurement.procurement_building_services.where(code: 'K.2').find_each { |pbs| pbs.update(tones_to_be_collected_and_removed: 13000) } + procurement.procurement_building_services.where(code: 'H.4').find_each { |pbs| pbs.update(service_hours: 8736) } end context 'and the variance is just below -30%' do diff --git a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1b_spec.rb b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1b_spec.rb index dbc2f77a88..f2ced5ee98 100644 --- a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1b_spec.rb +++ b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_1b_spec.rb @@ -156,10 +156,10 @@ before do create(:facilities_management_rm3830_procurement_building_av_normal_building, procurement:, service_codes:) create(:facilities_management_rm3830_procurement_building_av_london_building, procurement:, service_codes:) - procurement.procurement_building_services.where(code: 'C.1').each { |pbs| pbs.update(service_standard: 'A') } - procurement.procurement_building_services.where(code: 'G.1').each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: 3400) } - procurement.procurement_building_services.where(code: 'I.1').each { |pbs| pbs.update(service_hours: 6240) } - procurement.procurement_building_services.where(code: 'K.2').each { |pbs| pbs.update(tones_to_be_collected_and_removed: 13000) } + procurement.procurement_building_services.where(code: 'C.1').find_each { |pbs| pbs.update(service_standard: 'A') } + procurement.procurement_building_services.where(code: 'G.1').find_each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: 3400) } + procurement.procurement_building_services.where(code: 'I.1').find_each { |pbs| pbs.update(service_hours: 6240) } + procurement.procurement_building_services.where(code: 'K.2').find_each { |pbs| pbs.update(tones_to_be_collected_and_removed: 13000) } end context 'and the variance is just below -30%' do diff --git a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_4_spec.rb b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_4_spec.rb index 2ba50acf55..dfa4e0e9ad 100644 --- a/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_4_spec.rb +++ b/spec/services/facilities_management/rm3830/assessed_value_calculator_scenario_4_spec.rb @@ -112,10 +112,10 @@ before do create(:facilities_management_rm3830_procurement_building_av_normal_building, procurement:, service_codes:) create(:facilities_management_rm3830_procurement_building_av_london_building, procurement:, service_codes:) - procurement.procurement_building_services.where(code: %w[C.1 C.2 C.3]).each { |pbs| pbs.update(service_standard: 'A') } - procurement.procurement_building_services.where(code: 'G.1').each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: no_of_building_occupants) } - procurement.procurement_building_services.where(code: 'I.1').each { |pbs| pbs.update(service_hours: 6240) } - procurement.procurement_building_services.where(code: %w[K.2 K.3]).each { |pbs| pbs.update(tones_to_be_collected_and_removed:) } + procurement.procurement_building_services.where(code: %w[C.1 C.2 C.3]).find_each { |pbs| pbs.update(service_standard: 'A') } + procurement.procurement_building_services.where(code: 'G.1').find_each { |pbs| pbs.update(service_standard: 'A', no_of_building_occupants: no_of_building_occupants) } + procurement.procurement_building_services.where(code: 'I.1').find_each { |pbs| pbs.update(service_hours: 6240) } + procurement.procurement_building_services.where(code: %w[K.2 K.3]).find_each { |pbs| pbs.update(tones_to_be_collected_and_removed:) } end context 'and the variance is just below 30%' do diff --git a/spec/services/facilities_management/rm3830/spreadsheet_importer_spec.rb b/spec/services/facilities_management/rm3830/spreadsheet_importer_spec.rb index c6fcf4df31..fbc045a66c 100644 --- a/spec/services/facilities_management/rm3830/spreadsheet_importer_spec.rb +++ b/spec/services/facilities_management/rm3830/spreadsheet_importer_spec.rb @@ -47,17 +47,14 @@ fake_spreadsheet.write # Stub out import methods not under test - allow(spreadsheet_importer).to receive(:check_file).and_return(nil) + allow(spreadsheet_importer).to receive_messages(check_file: nil, procurement_buildings_valid?: true, procurement_building_services_valid?: true, service_codes: ['C.1']) (process_file_order - %i[import_buildings]).each do |other_process_method| allow(spreadsheet_importer).to receive(other_process_method).and_return(nil) end - allow(spreadsheet_importer).to receive(:procurement_buildings_valid?).and_return(true) - allow(spreadsheet_importer).to receive(:procurement_building_services_valid?).and_return(true) allow(spreadsheet_importer).to receive(:save_procurement_building).with(anything).and_return(nil) allow(spreadsheet_importer).to receive(:save_procurement_building_services).with(anything).and_return(nil) - allow(spreadsheet_importer).to receive(:service_codes).and_return(['C.1']) allow(FacilitiesManagement::RM3830::SpreadsheetImport).to receive(:find_by).and_return(true) allow(FacilitiesManagement::RM3830::SpreadsheetImport).to receive(:find_by).with(anything).and_return(true) diff --git a/spec/services/facilities_management/rm6232/admin/change_logs_csv_generator_spec.rb b/spec/services/facilities_management/rm6232/admin/change_logs_csv_generator_spec.rb index d8f579a557..e038618c44 100644 --- a/spec/services/facilities_management/rm6232/admin/change_logs_csv_generator_spec.rb +++ b/spec/services/facilities_management/rm6232/admin/change_logs_csv_generator_spec.rb @@ -9,8 +9,8 @@ let(:supplier_1_id) { supplier_data_1.data.find { |data| data['supplier_name'] == 'Abshire, Schumm and Farrell' }['id'] } let(:supplier_2_id) { supplier_data_1.data.find { |data| data['supplier_name'] == 'Skiles LLC' }['id'] } - def get_time(*time_array) - Time.zone.local(*time_array).in_time_zone('London') + def get_time(*) + Time.zone.local(*).in_time_zone('London') end before do diff --git a/spec/services/facilities_management/rm6232/admin/supplier_data_snapshot_generator_spec.rb b/spec/services/facilities_management/rm6232/admin/supplier_data_snapshot_generator_spec.rb index 297a19c53e..96b3ab03b7 100644 --- a/spec/services/facilities_management/rm6232/admin/supplier_data_snapshot_generator_spec.rb +++ b/spec/services/facilities_management/rm6232/admin/supplier_data_snapshot_generator_spec.rb @@ -9,8 +9,8 @@ let(:supplier_1_id) { supplier_data_1.data.find { |data| data['supplier_name'] == 'Abshire, Schumm and Farrell' }['id'] } let(:supplier_2_id) { supplier_data_1.data.find { |data| data['supplier_name'] == 'Skiles LLC' }['id'] } - def get_time(*time_array) - Time.zone.local(*time_array).in_time_zone('London') + def get_time(*) + Time.zone.local(*).in_time_zone('London') end before do diff --git a/spec/services/static_data_loader_spec.rb b/spec/services/static_data_loader_spec.rb index 77a02f0cdc..393f4783a8 100644 --- a/spec/services/static_data_loader_spec.rb +++ b/spec/services/static_data_loader_spec.rb @@ -4,21 +4,21 @@ describe '.nuts1_codes_not_empty' do it 'there is at least one Nuts1 Region' do described_class.load_static_data(Nuts1Region) - expect(Nuts1Region.all.count.zero?).to be(false) + expect(Nuts1Region.count.zero?).to be(false) end end describe '.nuts2_codes_not_empty' do it 'there is at least 1 Nuts2 Regions' do described_class.load_static_data(Nuts2Region) - expect(Nuts2Region.all.count.zero?).to be(false) + expect(Nuts2Region.count.zero?).to be(false) end end describe '.nuts3_codes_not_empty' do it 'there is at least 1 Nuts3 Region' do described_class.load_static_data(Nuts3Region) - expect(Nuts3Region.all.count.zero?).to be(false) + expect(Nuts3Region.count.zero?).to be(false) end end end diff --git a/spec/support/facilities_management/admin/supplier_framework_data_helper.rb b/spec/support/facilities_management/admin/supplier_framework_data_helper.rb index e6fd99917a..d802f8825d 100644 --- a/spec/support/facilities_management/admin/supplier_framework_data_helper.rb +++ b/spec/support/facilities_management/admin/supplier_framework_data_helper.rb @@ -153,7 +153,7 @@ def add_other_sheet(sheet_name) end def da_service_codes - @da_service_codes ||= FacilitiesManagement::RM3830::Rate.all.where(direct_award: true).pluck(:code) + @da_service_codes ||= FacilitiesManagement::RM3830::Rate.where(direct_award: true).pluck(:code) end def work_packages diff --git a/spec/support/stub_auth.rb b/spec/support/stub_auth.rb index bbf357c218..de255d678a 100644 --- a/spec/support/stub_auth.rb +++ b/spec/support/stub_auth.rb @@ -49,17 +49,17 @@ def unstub_auth RSpec.configure do |config| config.include SpecSupport::StubAuth, type: :feature - config.around(:example, supply_teachers: true, type: :feature) do |example| + config.around(:example, :supply_teachers, type: :feature) do |example| stub_auth_st example.run unstub_auth end - config.around(:example, management_consultancy: true, type: :feature) do |example| + config.around(:example, :management_consultancy, type: :feature) do |example| stub_auth_mc example.run unstub_auth end - config.around(:example, dfe: true, type: :feature) do |example| + config.around(:example, :dfe, type: :feature) do |example| stub_dfe example.run unstub_dfe diff --git a/spec/views/layouts/application.html.erb_spec.rb b/spec/views/layouts/application.html.erb_spec.rb index e59f6c1c2e..b1874ebb4c 100644 --- a/spec/views/layouts/application.html.erb_spec.rb +++ b/spec/views/layouts/application.html.erb_spec.rb @@ -4,22 +4,18 @@ let(:support_link_feedback_address) { 'https://www.smartsurvey.co.uk/s/J1VQQI/' } before do - allow(view).to receive(:user_signed_in?).and_return(false) - allow(view).to receive(:ccs_homepage_url).and_return('https://CCSHOMEPAGE') - allow(view).to receive(:service_path_base).and_return('/supply-teachers') + allow(view).to receive_messages(user_signed_in?: false, ccs_homepage_url: 'https://CCSHOMEPAGE', service_path_base: '/supply-teachers') - cookies[:crown_marketplace_cookie_options_v1] = { + cookies[:cookie_preferences] = { value: { 'settings_viewed' => true, - 'google_analytics_enabled' => true, - 'glassbox_enabled' => true + 'usage' => true, + 'glassbox' => true }.to_json } allow(cookies.class).to receive(:new).and_return(cookies) - allow(Marketplace).to receive(:google_analytics_tracking_id).and_return('123') - allow(Marketplace).to receive(:google_tag_manager_tracking_id).and_return('456') - allow(Marketplace).to receive(:fm_survey_link).and_return(support_link_feedback_address) + allow(Marketplace).to receive_messages(google_tag_manager_tracking_id: '456', fm_survey_link: support_link_feedback_address) end describe 'feedback links' do @@ -49,12 +45,6 @@ end end - it 'includes google analytics partial' do - stub_template 'shared/google/_analytics.html.erb' => 'GA GA GA GA' - render - expect(rendered).to match(/GA GA GA GA/) - end - it 'includes google tag manager partials' do stub_template 'shared/google/_tag_manager_body.html.erb' => 'GTM BODY' stub_template 'shared/google/_tag_manager_head.html.erb' => 'GTM HEAD' diff --git a/spec/views/shared/google/_analytics.html.erb_spec.rb b/spec/views/shared/google/_analytics.html.erb_spec.rb deleted file mode 100644 index be1943acce..0000000000 --- a/spec/views/shared/google/_analytics.html.erb_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'rails_helper' - -RSpec.describe 'shared/google/_analytics.html.erb' do - before do - allow(Marketplace).to receive(:google_analytics_tracking_id) - .and_return(google_analytics_tracking_id) - end - - context 'when Google Analytics tracking ID is missing' do - let(:google_analytics_tracking_id) { nil } - - it 'does not render anything' do - render partial: 'shared/google/analytics' - - expect(rendered).to be_blank - end - end - - context 'when Google Analytics tracking ID is set' do - let(:google_analytics_tracking_id) { 'UA-999-9' } - - it 'renders the Google Analytics tracking code' do - render partial: 'shared/google/analytics' - - expect(rendered).to match(/script/) - expect(rendered).to match(/UA-999-9/) - end - end -end diff --git a/yarn.lock b/yarn.lock index c3225b1f91..8f1a126b6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,43 +15,54 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== -"@babel/core@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== +"@babel/core@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" + integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== dependencies: "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" @@ -79,17 +90,62 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" + integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" + integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" @@ -122,10 +178,10 @@ regexpu-core "^5.3.1" semver "^6.3.0" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -133,6 +189,11 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -146,6 +207,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -153,6 +222,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621" + integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA== + dependencies: + "@babel/types" "^7.22.15" + "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -160,23 +236,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -200,6 +276,15 @@ "@babel/helper-wrap-function" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-remap-async-to-generator@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" + integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.9" + "@babel/helper-replace-supers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" @@ -212,6 +297,15 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-replace-supers@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -245,15 +339,20 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-identifier@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helper-wrap-function@^7.22.5": version "7.22.5" @@ -265,58 +364,59 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helper-wrap-function@^7.22.9": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== dependencies: + "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/helpers@^7.23.0": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@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== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -366,6 +466,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-attributes@^7.22.0": + 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.22.5" + "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -465,14 +572,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -491,10 +598,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== +"@babel/plugin-transform-block-scoping@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841" + integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -506,27 +613,27 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== +"@babel/plugin-transform-class-static-block@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" @@ -538,14 +645,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== +"@babel/plugin-transform-destructuring@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz#e7404ea5bb3387073b9754be654eecb578324694" + integrity sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -560,10 +667,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== +"@babel/plugin-transform-dynamic-import@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -576,18 +683,18 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -600,10 +707,10 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== +"@babel/plugin-transform-json-strings@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -615,10 +722,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -638,22 +745,22 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== +"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== +"@babel/plugin-transform-modules-systemjs@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" + integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" @@ -680,32 +787,32 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== +"@babel/plugin-transform-numeric-separator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" @@ -715,27 +822,27 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== +"@babel/plugin-transform-optional-catch-binding@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba" + integrity sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== +"@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -747,13 +854,13 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" @@ -764,13 +871,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" + regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" @@ -779,16 +886,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== +"@babel/plugin-transform-runtime@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" + integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== dependencies: - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.22.5": @@ -827,20 +934,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" - integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== +"@babel/plugin-transform-typescript@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" + integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -868,17 +975,17 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== +"@babel/preset-env@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" + integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/compat-data" "^7.22.20" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -899,117 +1006,115 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.15" "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-class-static-block" "^7.22.11" + "@babel/plugin-transform-classes" "^7.22.15" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.15" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" - "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-for-of" "^7.22.15" "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" "@babel/plugin-transform-shorthand-properties" "^7.22.5" "@babel/plugin-transform-spread" "^7.22.5" "@babel/plugin-transform-sticky-regex" "^7.22.5" "@babel/plugin-transform-template-literals" "^7.22.5" "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" "@babel/plugin-transform-unicode-property-regex" "^7.22.5" "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.19" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== +"@babel/preset-typescript@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz#cc6602d13e7e5b2087c811912b87cf937a9129d9" + integrity sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-typescript" "^7.22.15" "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== +"@babel/runtime@^7.23.1", "@babel/runtime@^7.8.4": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" @@ -1031,6 +1136,24 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" + integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.22.15": + version "7.22.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" + integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -1043,15 +1166,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.0.tgz#5b63f0df5528a44e28aa8578d393de908cc3d4d0" - integrity sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1063,15 +1186,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== +"@humanwhocodes/config-array@^0.11.11": + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1145,11 +1268,6 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1171,10 +1289,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@rails/ujs@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.6.tgz#fd8937c92335f3da9495e07292511ad5f7547a6a" - integrity sha512-s5v3AC6AywOIFMz0RIMW83Xc8FPIvKMkP3ZHFlM4ISNkhdUwP9HdhVtxxo6z3dIhe9vI0Our2A8kN/QpUV02Qg== +"@rails/ujs@^7.0.8": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.8.tgz#59853367d0827b3955d2c4bedfd5eba4a79d3422" + integrity sha512-tOQQBVH8LsUpGXqDnk+kaOGVsgZ8maHAhEiw3Git3p88q+c0Slgu47HuDnL6sVxeCfz24zbq7dOjsVYDiTpDIA== "@types/body-parser@*": version "1.19.2" @@ -1253,17 +1371,17 @@ dependencies: "@types/node" "*" -"@types/jquery@^3.5.16": - version "3.5.16" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.16.tgz#632131baf30951915b0317d48c98e9890bdf051d" - integrity sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw== +"@types/jquery@^3.5.22": + version "3.5.22" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.22.tgz#893273736f5695a520986c019c873b75b157f26a" + integrity sha512-ISQFeUK5GwRftLK4PVvKTWEVCxZ2BpaqBz0TWkIq5w4vGojxZP9+XkqgcPjxoqmPeew+HLyWthCBvK7GdF5NYA== dependencies: "@types/sizzle" "*" -"@types/js-cookie@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.3.tgz#d6bfbbdd0c187354ca555213d1962f6d0691ff4e" - integrity sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww== +"@types/js-cookie@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.4.tgz#23475b6d3b03acc84192e7c24da88eb38c1039ef" + integrity sha512-vMMnFF+H5KYqdd/myCzq6wLDlPpteJK+jGFgBus3Da7lw+YsDmx2C8feGTzY2M3Fo823yON+HC2CL240j4OV+w== "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" @@ -1344,90 +1462,89 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" - integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== +"@typescript-eslint/eslint-plugin@^6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz#057338df21b6062c2f2fc5999fbea8af9973ac6d" + integrity sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/type-utils" "6.1.0" - "@typescript-eslint/utils" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/scope-manager" "6.7.4" + "@typescript-eslint/type-utils" "6.7.4" + "@typescript-eslint/utils" "6.7.4" + "@typescript-eslint/visitor-keys" "6.7.4" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" natural-compare "^1.4.0" - natural-compare-lite "^1.4.0" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5" - integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw== +"@typescript-eslint/parser@^6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.4.tgz#23d1dd4fe5d295c7fa2ab651f5406cd9ad0bd435" + integrity sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA== dependencies: - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/typescript-estree" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/scope-manager" "6.7.4" + "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/typescript-estree" "6.7.4" + "@typescript-eslint/visitor-keys" "6.7.4" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" - integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== +"@typescript-eslint/scope-manager@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz#a484a17aa219e96044db40813429eb7214d7b386" + integrity sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A== dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/visitor-keys" "6.7.4" -"@typescript-eslint/type-utils@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" - integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== +"@typescript-eslint/type-utils@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz#847cd3b59baf948984499be3e0a12ff07373e321" + integrity sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ== dependencies: - "@typescript-eslint/typescript-estree" "6.1.0" - "@typescript-eslint/utils" "6.1.0" + "@typescript-eslint/typescript-estree" "6.7.4" + "@typescript-eslint/utils" "6.7.4" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" - integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== +"@typescript-eslint/types@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.4.tgz#5d358484d2be986980c039de68e9f1eb62ea7897" + integrity sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA== -"@typescript-eslint/typescript-estree@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" - integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== +"@typescript-eslint/typescript-estree@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz#f2baece09f7bb1df9296e32638b2e1130014ef1a" + integrity sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ== dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/visitor-keys" "6.7.4" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" - integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== +"@typescript-eslint/utils@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.4.tgz#2236f72b10e38277ee05ef06142522e1de470ff2" + integrity sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/scope-manager" "6.7.4" + "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/typescript-estree" "6.7.4" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" - integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== +"@typescript-eslint/visitor-keys@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz#80dfecf820fc67574012375859085f91a4dff043" + integrity sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA== dependencies: - "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/types" "6.7.4" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.11.5", "@webassemblyjs/ast@^1.11.5": @@ -1618,7 +1735,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1698,29 +1815,36 @@ babel-loader@^9.1.3: find-cache-dir "^4.0.0" schema-utils "^4.0.0" -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.2" + +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.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.0" balanced-match@^1.0.0: version "1.0.2" @@ -1790,6 +1914,16 @@ browserslist@^4.14.5, browserslist@^4.21.9: node-releases "^2.0.12" update-browserslist-db "^1.0.11" +browserslist@^4.21.5: + version "4.21.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.6.tgz#18ab9830a5a61806a909a4717f85665792e7f267" + integrity sha512-PF07dKGXKR+/bljJzCB6rAYtHEu21TthLxmJagtQizx+rwiqdRDBO5971Xu1N7MgcMLi4+mr4Cnl76x7O3DHtA== + dependencies: + caniuse-lite "^1.0.30001489" + electron-to-chromium "^1.4.411" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -1823,6 +1957,11 @@ caniuse-lite@^1.0.30001503: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== +caniuse-lite@^1.0.30001489: + version "1.0.30001489" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz#ca82ee2d4e4dbf2bd2589c9360d3fcc2c7ba3bd8" + integrity sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1963,10 +2102,10 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie-signature@1.0.6: version "1.0.6" @@ -2102,6 +2241,11 @@ electron-to-chromium@^1.4.431: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.459.tgz#25a23370f4ae8aaa8f77aaf00133aa4994f4148e" integrity sha512-XXRS5NFv8nCrBL74Rm3qhJjA2VCsRFx0OjHKBMPI0otij56aun8UWiKTDABmd5/7GTR021pA4wivs+Ri6XCElg== +electron-to-chromium@^1.4.411: + version "1.4.411" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.411.tgz#8cb7787f0442fcb4209590e9951bdb482caa93b2" + integrity sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2160,40 +2304,40 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.45.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== +eslint@^8.51.0: + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.51.0" + "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -2216,10 +2360,10 @@ eslint@^8.45.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" @@ -2448,10 +2592,10 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -fork-ts-checker-webpack-plugin@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz#dae45dfe7298aa5d553e2580096ced79b6179504" - integrity sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg== +fork-ts-checker-webpack-plugin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.0.tgz#e12b9e6116d32b07a2dbc0ea08f62b1cea24d35a" + integrity sha512-Kw3JjsfGs0piB0V2Em8gCuo51O3p4KyCOK0Tn8X57oq2mSNBrMmONALRBw5frcmWsOVU7iELXXsJ+FVxJeQuhA== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" @@ -2852,10 +2996,10 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jquery@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" - integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== +jquery@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== js-cookie@^3.0.5: version "3.0.5" @@ -2904,7 +3048,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.2: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -3108,11 +3252,6 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -3465,15 +3604,15 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" @@ -3697,10 +3836,10 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shakapacker@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-7.0.2.tgz#cd7cb5075fdbf4d06e60d894f9076c8e56643a98" - integrity sha512-TF2GFb0E28fvQpn2L6RdvAHJRZmFMTvpJg93102tCbFywHq3tmTqwD/ijvlD+eMuZ8d1i3AMTnhO+45ayN3dYg== +shakapacker@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-7.1.0.tgz#95bd37db60702ffa21f9ea29a88f438de3db25b2" + integrity sha512-xKfF4LKrFQdMLYeIi/uBV6pfkPTO4lgCAIMx3W5+MHW61ENOXu4WeQ50qVR9u5hV6XXzi7AiS7C6dWO2GFnYAg== dependencies: glob "^7.2.0" js-yaml "^4.1.0" @@ -3944,10 +4083,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -3995,6 +4134,14 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"