From d38eb1258422ec45c0e7d655dcb17bc3f7a4743a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Pierzcha=C5=82a?= Date: Tue, 24 Sep 2024 14:54:39 +0200 Subject: [PATCH 01/33] Add polish translations for search status (#8487) --- config/locales/pl.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/locales/pl.yml b/config/locales/pl.yml index d11f8822edf..9f6b31bdeb7 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -49,6 +49,8 @@ pl: scopes: all: "Wszystko" search_status: + title: "Wyszukiwanie" + title_with_scope: "Wyszukiwanie %{name}" no_current_filters: "Brak" status_tag: "yes": "Tak" From c2af325c0cd38163024b6af769c2b3b6291a80f0 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Tue, 24 Sep 2024 11:26:54 -0400 Subject: [PATCH 02/33] Update webrick to resolve security alert --- Gemfile.lock | 2 +- docs/Gemfile.lock | 2 +- gemfiles/rails_61/Gemfile.lock | 2 +- gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bf6628660dc..d0f9f04fa16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -417,7 +417,7 @@ GEM useragent (0.16.10) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.1) + webrick (1.8.2) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index b470870d28b..7840e3ca988 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -266,7 +266,7 @@ GEM concurrent-ruby (~> 1.0) unicode-display_width (1.8.0) uri (0.13.1) - webrick (1.8.1) + webrick (1.8.2) PLATFORMS ruby diff --git a/gemfiles/rails_61/Gemfile.lock b/gemfiles/rails_61/Gemfile.lock index 9231511f2b9..dc52255dde0 100644 --- a/gemfiles/rails_61/Gemfile.lock +++ b/gemfiles/rails_61/Gemfile.lock @@ -356,7 +356,7 @@ GEM unicode-display_width (2.6.0) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.1) + webrick (1.8.2) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index dffff94eac2..83a3d1bebe1 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -362,7 +362,7 @@ GEM unicode-display_width (2.6.0) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.1) + webrick (1.8.2) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 0a976a0ad97..ef7c9080e54 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -388,7 +388,7 @@ GEM unicode-display_width (2.6.0) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.1) + webrick (1.8.2) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) From bb4162f71e79f04333c0908704e175c086518741 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Tue, 24 Sep 2024 11:27:41 -0400 Subject: [PATCH 03/33] Bump arbre from 2.0.1 to 2.0.2 --- Gemfile.lock | 2 +- gemfiles/rails_61/Gemfile.lock | 2 +- gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d0f9f04fa16..db4cea268fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.1) + arbre (2.0.2) activesupport (>= 3.0.0) ast (2.4.2) base64 (0.2.0) diff --git a/gemfiles/rails_61/Gemfile.lock b/gemfiles/rails_61/Gemfile.lock index dc52255dde0..688c865a136 100644 --- a/gemfiles/rails_61/Gemfile.lock +++ b/gemfiles/rails_61/Gemfile.lock @@ -79,7 +79,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.1) + arbre (2.0.2) activesupport (>= 3.0.0) ast (2.4.2) bcrypt (3.1.20) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 83a3d1bebe1..217bb76950b 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -85,7 +85,7 @@ GEM tzinfo (~> 2.0) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.1) + arbre (2.0.2) activesupport (>= 3.0.0) ast (2.4.2) bcrypt (3.1.20) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index ef7c9080e54..5a163047a6d 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -94,7 +94,7 @@ GEM tzinfo (~> 2.0) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.1) + arbre (2.0.2) activesupport (>= 3.0.0) ast (2.4.2) base64 (0.2.0) From 3b54bde14bbce666198c73f1aac1e43458bdcc83 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Tue, 24 Sep 2024 11:27:56 -0400 Subject: [PATCH 04/33] Bump inherited_resources from 2.0.0 to 2.0.1 --- Gemfile.lock | 2 +- gemfiles/rails_61/Gemfile.lock | 2 +- gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index db4cea268fd..50f120b8199 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (2.0.0) + inherited_resources (2.0.1) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) diff --git a/gemfiles/rails_61/Gemfile.lock b/gemfiles/rails_61/Gemfile.lock index 688c865a136..0396214e801 100644 --- a/gemfiles/rails_61/Gemfile.lock +++ b/gemfiles/rails_61/Gemfile.lock @@ -191,7 +191,7 @@ GEM actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (2.0.0) + inherited_resources (2.0.1) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 217bb76950b..f4b9baff22f 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -197,7 +197,7 @@ GEM actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (2.0.0) + inherited_resources (2.0.1) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 5a163047a6d..5993bf3b800 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -209,7 +209,7 @@ GEM actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (2.0.0) + inherited_resources (2.0.1) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) From 6baaefd522f52932a9023d512367d1483371ead9 Mon Sep 17 00:00:00 2001 From: Matias Grunberg Date: Mon, 30 Sep 2024 17:23:05 -0300 Subject: [PATCH 05/33] Drop support for Rails 6.1 (#8449) * remove rails 6.1 from gemspec * remove rails 6.1 gemfiles * exclude rails 6.1 from github actions workflows * remove rails 6.1 conditional code * add TargetRailsVersion --- .github/workflows/ci.yaml | 1 - .rubocop.yml | 1 + Gemfile.lock | 2 +- activeadmin.gemspec | 2 +- gemfiles/rails_61/Gemfile | 44 -- gemfiles/rails_61/Gemfile.lock | 402 ------------------ gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- .../views/components/active_admin_form.rb | 14 +- .../posts/_starred_batch_action_form.html.erb | 3 +- 10 files changed, 7 insertions(+), 466 deletions(-) delete mode 100644 gemfiles/rails_61/Gemfile delete mode 100644 gemfiles/rails_61/Gemfile.lock diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2413d225e3a..80c94afc3f0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,7 +28,6 @@ jobs: - rails_72 - rails_71 - rails_70 - - rails_61 include: - ruby: '3.0' os: ubuntu-latest diff --git a/.rubocop.yml b/.rubocop.yml index 13df9963651..a65a55a5ecc 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -14,6 +14,7 @@ require: AllCops: DisabledByDefault: true TargetRubyVersion: 3.0 + TargetRailsVersion: 7.0 Exclude: - .git/**/* diff --git a/Gemfile.lock b/Gemfile.lock index 50f120b8199..3758916c5a8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,7 +8,7 @@ PATH formtastic_i18n (>= 0.4) inherited_resources (~> 2.0) kaminari (>= 1.2.1) - railties (>= 6.1) + railties (>= 7.0) ransack (>= 4.0) GEM diff --git a/activeadmin.gemspec b/activeadmin.gemspec index 816eb964986..2ee548d3c9b 100644 --- a/activeadmin.gemspec +++ b/activeadmin.gemspec @@ -37,6 +37,6 @@ Gem::Specification.new do |s| s.add_dependency "formtastic_i18n", ">= 0.4" s.add_dependency "inherited_resources", "~> 2.0" s.add_dependency "kaminari", ">= 1.2.1" - s.add_dependency "railties", ">= 6.1" + s.add_dependency "railties", ">= 7.0" s.add_dependency "ransack", ">= 4.0" end diff --git a/gemfiles/rails_61/Gemfile b/gemfiles/rails_61/Gemfile deleted file mode 100644 index 4b5f4b12729..00000000000 --- a/gemfiles/rails_61/Gemfile +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -group :development, :test do - gem "rake" - - gem "cancancan" - gem "pundit" - gem "jruby-openssl", platform: :jruby - - gem "draper" - gem "devise" - - gem "rails", "~> 6.1.0" - gem "activerecord-jdbcsqlite3-adapter", platform: :jruby - - gem "sprockets-rails" - - gem "cssbundling-rails" - gem "importmap-rails" -end - -group :test do - gem "cuprite" - gem "capybara" - gem "webrick" - - gem "simplecov", require: false # Test coverage generator. Go to /coverage/ after running tests - gem "simplecov-cobertura", require: false - gem "cucumber-rails", require: false - gem "cucumber" - gem "database_cleaner-active_record" - gem "launchy" - gem "parallel_tests" - gem "rspec-rails" - gem "sqlite3", "~> 1.7", platform: :mri - - # Translations - gem "i18n-tasks" - gem "i18n-spec" - gem "rails-i18n" # Provides default i18n for many languages -end - -gemspec path: "../.." diff --git a/gemfiles/rails_61/Gemfile.lock b/gemfiles/rails_61/Gemfile.lock deleted file mode 100644 index 0396214e801..00000000000 --- a/gemfiles/rails_61/Gemfile.lock +++ /dev/null @@ -1,402 +0,0 @@ -PATH - remote: ../.. - specs: - activeadmin (4.0.0.beta13) - arbre (~> 2.0) - csv - formtastic (>= 3.1) - formtastic_i18n (>= 0.4) - inherited_resources (~> 2.0) - kaminari (>= 1.2.1) - railties (>= 6.1) - ransack (>= 4.0) - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (>= 2.7.1) - actionmailer (6.1.7.8) - actionpack (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.1.7.8) - actionview (= 6.1.7.8) - activesupport (= 6.1.7.8) - rack (~> 2.0, >= 2.0.9) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.8) - actionpack (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - nokogiri (>= 1.8.5) - actionview (6.1.7.8) - activesupport (= 6.1.7.8) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.7.8) - activesupport (= 6.1.7.8) - globalid (>= 0.3.6) - activemodel (6.1.7.8) - activesupport (= 6.1.7.8) - activemodel-serializers-xml (1.0.3) - activemodel (>= 5.0.0.a) - activesupport (>= 5.0.0.a) - builder (~> 3.1) - activerecord (6.1.7.8) - activemodel (= 6.1.7.8) - activesupport (= 6.1.7.8) - activestorage (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activesupport (= 6.1.7.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (6.1.7.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.2) - activesupport (>= 3.0.0) - ast (2.4.2) - bcrypt (3.1.20) - bigdecimal (3.1.8) - builder (3.3.0) - cancancan (3.6.1) - capybara (3.40.0) - addressable - matrix - mini_mime (>= 0.1.3) - nokogiri (~> 1.11) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) - xpath (~> 3.2) - childprocess (5.1.0) - logger (~> 1.5) - concurrent-ruby (1.3.4) - crass (1.0.6) - cssbundling-rails (1.4.1) - railties (>= 6.0.0) - csv (3.3.0) - cucumber (9.2.0) - builder (~> 3.2) - cucumber-ci-environment (> 9, < 11) - cucumber-core (> 13, < 14) - cucumber-cucumber-expressions (~> 17.0) - cucumber-gherkin (> 24, < 28) - cucumber-html-formatter (> 20.3, < 22) - cucumber-messages (> 19, < 25) - diff-lcs (~> 1.5) - mini_mime (~> 1.1) - multi_test (~> 1.1) - sys-uname (~> 1.2) - cucumber-ci-environment (10.0.1) - cucumber-core (13.0.3) - cucumber-gherkin (>= 27, < 28) - cucumber-messages (>= 20, < 23) - cucumber-tag-expressions (> 5, < 7) - cucumber-cucumber-expressions (17.1.0) - bigdecimal - cucumber-gherkin (27.0.0) - cucumber-messages (>= 19.1.4, < 23) - cucumber-html-formatter (21.7.0) - cucumber-messages (> 19, < 27) - cucumber-messages (22.0.0) - cucumber-rails (3.0.0) - capybara (>= 3.11, < 4) - cucumber (>= 5, < 10) - railties (>= 5.2, < 8) - cucumber-tag-expressions (6.1.0) - cuprite (0.15.1) - capybara (~> 3.0) - ferrum (~> 0.15.0) - database_cleaner-active_record (2.2.0) - activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) - database_cleaner-core (2.0.1) - date (3.3.4) - devise (4.9.4) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0) - responders - warden (~> 1.2.3) - diff-lcs (1.5.1) - docile (1.4.1) - draper (4.0.2) - actionpack (>= 5.0) - activemodel (>= 5.0) - activemodel-serializers-xml (>= 1.0) - activesupport (>= 5.0) - request_store (>= 1.0) - ruby2_keywords - erubi (1.13.0) - ferrum (0.15) - addressable (~> 2.5) - concurrent-ruby (~> 1.1) - webrick (~> 1.7) - websocket-driver (~> 0.7) - ffi (1.17.0) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86_64-linux-gnu) - formtastic (5.0.0) - actionpack (>= 6.0.0) - formtastic_i18n (0.7.0) - globalid (1.2.1) - activesupport (>= 6.1) - has_scope (0.8.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - highline (3.1.1) - reline - i18n (1.14.6) - concurrent-ruby (~> 1.0) - i18n-spec (0.6.0) - iso - i18n-tasks (1.0.14) - activesupport (>= 4.0.2) - ast (>= 2.1.0) - erubi - highline (>= 2.0.0) - i18n - parser (>= 3.2.2.1) - rails-i18n - rainbow (>= 2.2.2, < 4.0) - terminal-table (>= 1.5.1) - importmap-rails (2.0.1) - actionpack (>= 6.0.0) - activesupport (>= 6.0.0) - railties (>= 6.0.0) - inherited_resources (2.0.1) - actionpack (>= 6.0) - has_scope (>= 0.6) - railties (>= 6.0) - responders (>= 2) - io-console (0.7.2) - iso (0.4.0) - i18n - kaminari (1.2.2) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.2) - kaminari-activerecord (= 1.2.2) - kaminari-core (= 1.2.2) - kaminari-actionview (1.2.2) - actionview - kaminari-core (= 1.2.2) - kaminari-activerecord (1.2.2) - activerecord - kaminari-core (= 1.2.2) - kaminari-core (1.2.2) - launchy (3.0.1) - addressable (~> 2.8) - childprocess (~> 5.0) - logger (1.6.1) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - matrix (0.4.2) - method_source (1.1.0) - mini_mime (1.1.5) - mini_portile2 (2.8.7) - minitest (5.25.1) - multi_test (1.1.0) - net-imap (0.4.16) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.5.0) - net-protocol - nio4r (2.7.3) - nokogiri (1.16.7) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - nokogiri (1.16.7-arm64-darwin) - racc (~> 1.4) - nokogiri (1.16.7-x86_64-linux) - racc (~> 1.4) - orm_adapter (0.5.0) - parallel (1.26.3) - parallel_tests (4.7.2) - parallel - parser (3.3.5.0) - ast (~> 2.4.1) - racc - public_suffix (6.0.1) - pundit (2.4.0) - activesupport (>= 3.0.0) - racc (1.8.1) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (6.1.7.8) - actioncable (= 6.1.7.8) - actionmailbox (= 6.1.7.8) - actionmailer (= 6.1.7.8) - actionpack (= 6.1.7.8) - actiontext (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activemodel (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - bundler (>= 1.15.0) - railties (= 6.1.7.8) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - rails-i18n (7.0.9) - i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 8) - railties (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - method_source - rake (>= 12.2) - thor (~> 1.0) - rainbow (3.1.1) - rake (13.2.1) - ransack (4.2.1) - activerecord (>= 6.1.5) - activesupport (>= 6.1.5) - i18n - regexp_parser (2.9.2) - reline (0.5.10) - io-console (~> 0.5) - request_store (1.7.0) - rack (>= 1.4) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.3.7) - rspec-core (3.13.1) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-rails (6.1.5) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) - rspec-core (~> 3.13) - rspec-expectations (~> 3.13) - rspec-mocks (~> 3.13) - rspec-support (~> 3.13) - rspec-support (3.13.1) - ruby2_keywords (0.0.5) - simplecov (0.22.0) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.13.1) - simplecov_json_formatter (0.1.4) - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.5.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - sprockets (>= 3.0.0) - sqlite3 (1.7.3) - mini_portile2 (~> 2.8.0) - sqlite3 (1.7.3-arm64-darwin) - sqlite3 (1.7.3-x86_64-linux) - sys-uname (1.3.0) - ffi (~> 1.1) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - thor (1.3.2) - timeout (0.4.1) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (2.6.0) - warden (1.2.9) - rack (>= 2.0.9) - webrick (1.8.2) - 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.18) - -PLATFORMS - arm64-darwin-23 - ruby - x86_64-linux - -DEPENDENCIES - activeadmin! - activerecord-jdbcsqlite3-adapter - cancancan - capybara - cssbundling-rails - cucumber - cucumber-rails - cuprite - database_cleaner-active_record - devise - draper - i18n-spec - i18n-tasks - importmap-rails - jruby-openssl - launchy - parallel_tests - pundit - rails (~> 6.1.0) - rails-i18n - rake - rspec-rails - simplecov - simplecov-cobertura - sprockets-rails - sqlite3 (~> 1.7) - webrick - -BUNDLED WITH - 2.5.19 diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index f4b9baff22f..06b9ca63d7d 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -8,7 +8,7 @@ PATH formtastic_i18n (>= 0.4) inherited_resources (~> 2.0) kaminari (>= 1.2.1) - railties (>= 6.1) + railties (>= 7.0) ransack (>= 4.0) GEM diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 5993bf3b800..007378991cd 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -8,7 +8,7 @@ PATH formtastic_i18n (>= 0.4) inherited_resources (~> 2.0) kaminari (>= 1.2.1) - railties (>= 6.1) + railties (>= 7.0) ransack (>= 4.0) GEM diff --git a/lib/active_admin/views/components/active_admin_form.rb b/lib/active_admin/views/components/active_admin_form.rb index 23d72337f07..27c91e951ff 100644 --- a/lib/active_admin/views/components/active_admin_form.rb +++ b/lib/active_admin/views/components/active_admin_form.rb @@ -132,23 +132,11 @@ def build(form_builder, *args, &block) legend = args.shift if args.first.is_a?(::String) legend = html_options.delete(:name) if html_options.key?(:name) legend_tag = legend ? helpers.tag.legend(legend, class: "fieldset-title") : "" - fieldset_attrs = tag_attributes html_options + fieldset_attrs = helpers.tag.attributes html_options @opening_tag = "
#{legend_tag}
    " @closing_tag = "
" super(*(args << html_options), &block) end - - private - - def tag_attributes(html_options) - if Rails::VERSION::MAJOR <= 6 - # Reimplement tag.attributes to backport support for Rails 6.1. - # TODO: this can be removed when support for Rails 6.x is dropped - helpers.tag.tag_options(html_options.to_h).to_s.strip.html_safe - else - helpers.tag.attributes html_options - end - end end class SemanticActionsProxy < FormtasticProxy diff --git a/spec/support/templates/views/admin/posts/_starred_batch_action_form.html.erb b/spec/support/templates/views/admin/posts/_starred_batch_action_form.html.erb index 3f8bd74d5e8..8b5cd0420db 100644 --- a/spec/support/templates/views/admin/posts/_starred_batch_action_form.html.erb +++ b/spec/support/templates/views/admin/posts/_starred_batch_action_form.html.erb @@ -18,8 +18,7 @@

Toggle Starred

- <% form_action = (Rails::VERSION::MAJOR >= 7) ? false : {} %> - <%= form_tag form_action, "data-batch-action-form": "" do %> + <%= form_tag false, "data-batch-action-form": "" do %>
From fc5bcddcc4d65ebd5980cb466fd3cbdbc9a864da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 30 Sep 2024 22:58:49 +0200 Subject: [PATCH 06/33] run update_resource inside a transaction to avoid autosaving relationships through assign_attributes when the record is invalid (#7437) * write a spec about the issue * run update_resource inside a transaction to avoid autosaving relationships through assign_attributes when the record is invalid * write a controller spec * Update spec/unit/resource_controller_spec.rb Co-authored-by: Javier Julio --------- Co-authored-by: Matias Grunberg Co-authored-by: Javier Julio --- .../resource_controller/data_access.rb | 11 ++++++++--- features/edit_page.feature | 15 +++++++++++++++ features/step_definitions/attribute_steps.rb | 9 +++++++-- features/step_definitions/factory_steps.rb | 6 ++++++ features/step_definitions/web_steps.rb | 6 ++++++ spec/support/rails_template.rb | 4 ++++ spec/support/templates/admin/companies.rb | 16 ++++++++++++++++ .../templates/migrations/create_companies.tt | 9 +++++++++ .../create_join_table_companies_stores.tt | 5 +++++ spec/support/templates/models/company.rb | 6 ++++++ .../templates/policies/company_policy.rb | 3 +++ spec/unit/application_spec.rb | 4 ++-- spec/unit/resource_controller_spec.rb | 18 ++++++++++++++++++ 13 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 spec/support/templates/admin/companies.rb create mode 100644 spec/support/templates/migrations/create_companies.tt create mode 100644 spec/support/templates/migrations/create_join_table_companies_stores.tt create mode 100644 spec/support/templates/models/company.rb create mode 100644 spec/support/templates/policies/company_policy.rb diff --git a/app/controllers/active_admin/resource_controller/data_access.rb b/app/controllers/active_admin/resource_controller/data_access.rb index 8abdc98f43c..f08fdea25d1 100644 --- a/app/controllers/active_admin/resource_controller/data_access.rb +++ b/app/controllers/active_admin/resource_controller/data_access.rb @@ -168,11 +168,16 @@ def save_resource(object) # # @return [void] def update_resource(object, attributes) - object = assign_attributes(object, attributes) + status = nil + ActiveRecord::Base.transaction do + object = assign_attributes(object, attributes) - run_update_callbacks object do - save_resource(object) + run_update_callbacks object do + status = save_resource(object) + raise ActiveRecord::Rollback unless status + end end + status end # Destroys an object from the database and calls appropriate callbacks. diff --git a/features/edit_page.feature b/features/edit_page.feature index 7ed9be47873..03f36a1b717 100644 --- a/features/edit_page.feature +++ b/features/edit_page.feature @@ -136,3 +136,18 @@ Feature: Edit Page And I follow "Edit" Then I should see a fieldset titled "Details" And the "Name" field should contain "Bugs" + + Scenario: Save resource within a transaction + Given a company named "My company" with a store named "First store" exists + And a store named "Second store" exists + When I am on the index page for companies + And I follow "Edit" + Then the "Stores" select should have "First store" selected + When I fill in "Name" with "" + And I select "Second store" from "Stores" + And I press "Update Company" + Then I should see "can't be blank" + When I press "Cancel" + And I follow "View" + Then I should see the attribute "Stores" with "First store" + And I should not see the attribute "Stores" with "Second store" diff --git a/features/step_definitions/attribute_steps.rb b/features/step_definitions/attribute_steps.rb index a00b201b47e..ccfec9387b4 100644 --- a/features/step_definitions/attribute_steps.rb +++ b/features/step_definitions/attribute_steps.rb @@ -1,7 +1,12 @@ # frozen_string_literal: true -Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value| +Then /^I should( not)? see the attribute "([^"]*)" with "([^"]*)"$/ do |negate, title, value| elems = all ".attributes-table th:contains('#{title}') ~ td:contains('#{value}')" - expect(elems.first).to_not eq(nil), "attribute missing" + + if negate + expect(elems.first).to eq(nil), "attribute missing" + else + expect(elems.first).to_not eq(nil), "attribute missing" + end end Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title| diff --git a/features/step_definitions/factory_steps.rb b/features/step_definitions/factory_steps.rb index 210b560ffa6..189b4ec9806 100644 --- a/features/step_definitions/factory_steps.rb +++ b/features/step_definitions/factory_steps.rb @@ -32,6 +32,12 @@ def create_user(name, type = "User") Tag.create! name: name end +Given /^a company named "([^"]*)"(?: with a store named "([^"]*)")? exists$/ do |name, store_name| + store = Store.create! name: store_name if store_name + + Company.create! name: name, stores: [store].compact +end + Given /^I create a new post with the title "([^"]*)"$/ do |title| first(:link, "Posts").click click_on "New Post" diff --git a/features/step_definitions/web_steps.rb b/features/step_definitions/web_steps.rb index 41562e5703d..9b91ffa2a44 100644 --- a/features/step_definitions/web_steps.rb +++ b/features/step_definitions/web_steps.rb @@ -106,6 +106,12 @@ def selector_for(locator) end end +Then /^the "([^"]*)" select(?: within (.*))? should have "([^"]+)" selected$/ do |label, parent, option| + with_scope(parent) do + expect(page).to have_select(label, selected: option) + end +end + Then /^the "([^"]*)" checkbox(?: within (.*))? should( not)? be checked$/ do |label, parent, negate| with_scope(parent) do checkbox = find_field(label) diff --git a/spec/support/rails_template.rb b/spec/support/rails_template.rb index 93047e52d91..a03f7026980 100644 --- a/spec/support/rails_template.rb +++ b/spec/support/rails_template.rb @@ -44,6 +44,10 @@ copy_file File.expand_path("templates/helpers/time_helper.rb", __dir__), "app/helpers/time_helper.rb" +copy_file File.expand_path("templates/models/company.rb", __dir__), "app/models/company.rb" +template File.expand_path("templates/migrations/create_companies.tt", __dir__), "db/migrate/#{initial_timestamp + 8}_create_companies.rb" +template File.expand_path("templates/migrations/create_join_table_companies_stores.tt", __dir__), "db/migrate/#{initial_timestamp + 9}_create_join_table_companies_stores.rb" + inject_into_file "app/models/application_record.rb", before: "end" do <<-RUBY diff --git a/spec/support/templates/admin/companies.rb b/spec/support/templates/admin/companies.rb new file mode 100644 index 00000000000..5094c380ef2 --- /dev/null +++ b/spec/support/templates/admin/companies.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true +ActiveAdmin.register Company do + permit_params :name, store_ids: [] + + form do |f| + f.inputs 'Company' do + f.input :name + f.input :stores + end + f.actions + end + + show do + attributes_table :name, :stores, :created_at, :update_at + end +end diff --git a/spec/support/templates/migrations/create_companies.tt b/spec/support/templates/migrations/create_companies.tt new file mode 100644 index 00000000000..5c19d956c86 --- /dev/null +++ b/spec/support/templates/migrations/create_companies.tt @@ -0,0 +1,9 @@ +class CreateCompanies < ActiveRecord::Migration[<%= Rails::VERSION::MAJOR %>.<%= Rails::VERSION::MINOR %>] + def change + create_table :companies do |t| + t.string :name + t.datetime :created_at + t.datetime :updated_at + end + end +end diff --git a/spec/support/templates/migrations/create_join_table_companies_stores.tt b/spec/support/templates/migrations/create_join_table_companies_stores.tt new file mode 100644 index 00000000000..57b391f68ce --- /dev/null +++ b/spec/support/templates/migrations/create_join_table_companies_stores.tt @@ -0,0 +1,5 @@ +class CreateJoinTableCompaniesStores < ActiveRecord::Migration[<%= Rails::VERSION::MAJOR %>.<%= Rails::VERSION::MINOR %>] + def change + create_join_table :companies, :stores + end +end diff --git a/spec/support/templates/models/company.rb b/spec/support/templates/models/company.rb new file mode 100644 index 00000000000..7b7ec03c715 --- /dev/null +++ b/spec/support/templates/models/company.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true +class Company < ApplicationRecord + has_and_belongs_to_many :stores + + validates :name, presence: true +end diff --git a/spec/support/templates/policies/company_policy.rb b/spec/support/templates/policies/company_policy.rb new file mode 100644 index 00000000000..385626ffb2f --- /dev/null +++ b/spec/support/templates/policies/company_policy.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true +class CompanyPolicy < ApplicationPolicy +end diff --git a/spec/unit/application_spec.rb b/spec/unit/application_spec.rb index 2ca8b0dcc59..8f75ae3f07d 100644 --- a/spec/unit/application_spec.rb +++ b/spec/unit/application_spec.rb @@ -74,7 +74,7 @@ describe "files in load path" do it "it should load sorted files" do - expect(application.files.map { |f| File.basename(f) }).to eq(%w(admin_users.rb dashboard.rb stores.rb)) + expect(application.files.map { |f| File.basename(f) }).to eq(%w(admin_users.rb companies.rb dashboard.rb stores.rb)) end it "should load files in the first level directory" do @@ -103,7 +103,7 @@ begin FileUtils.mkdir_p(test_dir) FileUtils.touch(test_file) - expect(application.files.map { |f| File.basename(f) }).to eq(%w(posts.rb admin_users.rb dashboard.rb stores.rb)) + expect(application.files.map { |f| File.basename(f) }).to eq(%w(posts.rb admin_users.rb companies.rb dashboard.rb stores.rb)) ensure FileUtils.remove_entry_secure(test_dir, force: true) end diff --git a/spec/unit/resource_controller_spec.rb b/spec/unit/resource_controller_spec.rb index bdcdd46f968..2413dfe1ed6 100644 --- a/spec/unit/resource_controller_spec.rb +++ b/spec/unit/resource_controller_spec.rb @@ -124,6 +124,24 @@ def call_after_destroy(obj); end expect(controller.action_methods.sort).to eq ["batch_action", "create", "destroy", "edit", "index", "new", "show", "update"] end end + + describe "resource update" do + let(:controller) { Admin::CompaniesController.new } + + around do |example| + with_resources_during(example) do + ActiveAdmin.register Company + end + end + + it "should not update habtm associations when the resource validation fails" do + resource = Company.create! name: "my company", stores: [Store.create!(name: "store 1")] + + controller.send(:update_resource, resource, [{ name: "", store_ids: [] }]) + + expect(resource.reload.stores).not_to be_empty + end + end end RSpec.describe "A specific resource controller", type: :controller do From 2bdb59002271044f538c19ed6df17e0485c2f508 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Tue, 1 Oct 2024 08:10:28 +0200 Subject: [PATCH 07/33] Drop Ruby 3.0 compatibility (#8489) --- .github/workflows/ci.yaml | 4 ---- .rubocop.yml | 3 ++- Gemfile.lock | 14 +++++++------- activeadmin.gemspec | 2 +- docs/Gemfile.lock | 4 ++-- gemfiles/rails_70/Gemfile.lock | 4 ++-- gemfiles/rails_71/Gemfile.lock | 12 ++++++------ tasks/test_application.rb | 11 +++++------ 8 files changed, 25 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 80c94afc3f0..be13deb833e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,10 +28,6 @@ jobs: - rails_72 - rails_71 - rails_70 - include: - - ruby: '3.0' - os: ubuntu-latest - rails: rails_71 steps: - uses: actions/checkout@v4 - name: Configure bundler (default) diff --git a/.rubocop.yml b/.rubocop.yml index a65a55a5ecc..5ea7612dfb4 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -13,7 +13,7 @@ require: AllCops: DisabledByDefault: true - TargetRubyVersion: 3.0 + TargetRubyVersion: 3.1 TargetRailsVersion: 7.0 Exclude: @@ -331,6 +331,7 @@ Style/FrozenStringLiteralComment: Style/HashSyntax: Enabled: true + EnforcedShorthandSyntax: never Style/ParallelAssignment: Enabled: true diff --git a/Gemfile.lock b/Gemfile.lock index 3758916c5a8..8cf800616a8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -212,7 +212,7 @@ GEM railties (>= 6.0) responders (>= 2) io-console (0.7.2) - irb (1.14.0) + irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) iso (0.4.0) @@ -337,7 +337,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.7) + rexml (3.3.8) rspec-core (3.13.1) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) @@ -400,10 +400,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.0.4-aarch64-linux-gnu) - sqlite3 (2.0.4-arm64-darwin) - sqlite3 (2.0.4-x86_64-darwin) - sqlite3 (2.0.4-x86_64-linux-gnu) + sqlite3 (2.1.0-aarch64-linux-gnu) + sqlite3 (2.1.0-arm64-darwin) + sqlite3 (2.1.0-x86_64-darwin) + sqlite3 (2.1.0-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -470,4 +470,4 @@ DEPENDENCIES yard BUNDLED WITH - 2.5.19 + 2.5.20 diff --git a/activeadmin.gemspec b/activeadmin.gemspec index 2ee548d3c9b..cb30db3739c 100644 --- a/activeadmin.gemspec +++ b/activeadmin.gemspec @@ -29,7 +29,7 @@ Gem::Specification.new do |s| "wiki_uri" => "https://github.com/activeadmin/activeadmin/wiki" } - s.required_ruby_version = ">= 3.0" + s.required_ruby_version = ">= 3.1" s.add_dependency "arbre", "~> 2.0" s.add_dependency "csv" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 7840e3ca988..caca7195fc2 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -244,7 +244,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.3.7) + rexml (3.3.8) rouge (3.30.0) rubyzip (2.3.2) safe_yaml (1.0.5) @@ -275,4 +275,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 2.5.19 + 2.5.20 diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 06b9ca63d7d..18ba860df18 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -312,7 +312,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.7) + rexml (3.3.8) rspec-core (3.13.1) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) @@ -403,4 +403,4 @@ DEPENDENCIES webrick BUNDLED WITH - 2.5.19 + 2.5.20 diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 007378991cd..f9aa99bab68 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -215,7 +215,7 @@ GEM railties (>= 6.0) responders (>= 2) io-console (0.7.2) - irb (1.14.0) + irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) iso (0.4.0) @@ -337,7 +337,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.7) + rexml (3.3.8) rspec-core (3.13.1) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) @@ -372,10 +372,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.0.4) + sqlite3 (2.1.0) mini_portile2 (~> 2.8.0) - sqlite3 (2.0.4-arm64-darwin) - sqlite3 (2.0.4-x86_64-linux-gnu) + sqlite3 (2.1.0-arm64-darwin) + sqlite3 (2.1.0-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -431,4 +431,4 @@ DEPENDENCIES webrick BUNDLED WITH - 2.5.19 + 2.5.20 diff --git a/tasks/test_application.rb b/tasks/test_application.rb index 1bb73b4f8be..308f093cbf1 100644 --- a/tasks/test_application.rb +++ b/tasks/test_application.rb @@ -32,23 +32,22 @@ def generate FileUtils.mkdir_p base_dir args = %W( -m spec/support/#{template}.rb + --skip-action-cable --skip-action-mailbox --skip-action-text --skip-active-storage - --skip-action-cable --skip-bootsnap + --skip-brakeman + --skip-ci --skip-decrypted-diffs --skip-dev-gems --skip-docker --skip-git --skip-hotwire --skip-jbuilder - --skip-listen - --skip-spring - --skip-turbolinks - --skip-test + --skip-rubocop --skip-system-test - --skip-webpack-install + --skip-test --javascript=importmap ) From b651a0f7728bd405a3050a8c0fa01067bb178aca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:59:42 +0200 Subject: [PATCH 08/33] Bump the npm group with 4 updates (#8491) Bumps the npm group with 4 updates: [@rollup/plugin-alias](https://github.com/rollup/plugins/tree/HEAD/packages/alias), [eslint](https://github.com/eslint/eslint), [rollup](https://github.com/rollup/rollup) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss). Updates `@rollup/plugin-alias` from 5.1.0 to 5.1.1 - [Changelog](https://github.com/rollup/plugins/blob/master/packages/alias/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/wasm-v5.1.1/packages/alias) Updates `eslint` from 9.9.1 to 9.11.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.9.1...v9.11.1) Updates `rollup` from 4.22.4 to 4.22.5 - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.22.4...v4.22.5) Updates `tailwindcss` from 3.4.10 to 3.4.13 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.13/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.13) --- updated-dependencies: - dependency-name: "@rollup/plugin-alias" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 267 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 140 insertions(+), 127 deletions(-) diff --git a/yarn.lock b/yarn.lock index 15f6fc49a98..27efe127ebd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28,6 +28,11 @@ debug "^4.3.1" minimatch "^3.1.2" +"@eslint/core@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" + integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== + "@eslint/eslintrc@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" @@ -43,16 +48,23 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.9.1": - version "9.9.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06" - integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ== +"@eslint/js@9.11.1": + version "9.11.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986" + integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA== "@eslint/object-schema@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== +"@eslint/plugin-kit@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" + integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== + dependencies: + levn "^0.4.1" + "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" @@ -197,96 +209,99 @@ integrity sha512-YwvXm3BR5tn+VCAKYGycLejMRVZE3Ionj5gFjEeGXCZnI0Rpi+7dKpmyu90kdUY7dRUFpHTdu9zZceEzFLl38w== "@rollup/plugin-alias@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz#99a94accc4ff9a3483be5baeedd5d7da3b597e93" - integrity sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ== - dependencies: - slash "^4.0.0" - -"@rollup/rollup-android-arm-eabi@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5" - integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w== - -"@rollup/rollup-android-arm64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb" - integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA== - -"@rollup/rollup-darwin-arm64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b" - integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q== - -"@rollup/rollup-darwin-x64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791" - integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw== - -"@rollup/rollup-linux-arm-gnueabihf@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232" - integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ== - -"@rollup/rollup-linux-arm-musleabihf@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa" - integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg== - -"@rollup/rollup-linux-arm64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15" - integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw== - -"@rollup/rollup-linux-arm64-musl@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820" - integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e" - integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg== - -"@rollup/rollup-linux-riscv64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128" - integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA== - -"@rollup/rollup-linux-s390x-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc" - integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q== - -"@rollup/rollup-linux-x64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0" - integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg== - -"@rollup/rollup-linux-x64-musl@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f" - integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g== - -"@rollup/rollup-win32-arm64-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0" - integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw== - -"@rollup/rollup-win32-ia32-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422" - integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g== - -"@rollup/rollup-win32-x64-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202" - integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q== - -"@types/estree@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz#53601d88cda8b1577aa130b4a6e452283605bf26" + integrity sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ== + +"@rollup/rollup-android-arm-eabi@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.5.tgz#e0f5350845090ca09690fe4a472717f3b8aae225" + integrity sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww== + +"@rollup/rollup-android-arm64@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.5.tgz#08270faef6747e2716d3e978a8bbf479f75fb19a" + integrity sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ== + +"@rollup/rollup-darwin-arm64@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.5.tgz#691671133b350661328d42c8dbdedd56dfb97dfd" + integrity sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw== + +"@rollup/rollup-darwin-x64@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.5.tgz#b2ec52a1615f24b1cd40bc8906ae31af81e8a342" + integrity sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg== + +"@rollup/rollup-linux-arm-gnueabihf@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.5.tgz#217f01f304808920680bd269002df38e25d9205f" + integrity sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw== + +"@rollup/rollup-linux-arm-musleabihf@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.5.tgz#93ac1c5a1e389f4482a2edaeec41fcffee54a930" + integrity sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ== + +"@rollup/rollup-linux-arm64-gnu@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.5.tgz#a7f146787d6041fecc4ecdf1aa72234661ca94a4" + integrity sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w== + +"@rollup/rollup-linux-arm64-musl@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.5.tgz#6a37236189648e678bd564d6e8ca798f42cf42c5" + integrity sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.5.tgz#5661420dc463bec31ecb2d17d113de858cfcfe2d" + integrity sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w== + +"@rollup/rollup-linux-riscv64-gnu@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.5.tgz#cb00342b7432bdef723aa606281de2f522d6dcf7" + integrity sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A== + +"@rollup/rollup-linux-s390x-gnu@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.5.tgz#0708889674dccecccd28e2befccf791e0767fcb7" + integrity sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ== + +"@rollup/rollup-linux-x64-gnu@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.5.tgz#a135b040b21582e91cfed2267ccfc7d589e1dbc6" + integrity sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA== + +"@rollup/rollup-linux-x64-musl@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.5.tgz#88395a81a3ab7ee3dc8dc31a73ff62ed3185f34d" + integrity sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g== + +"@rollup/rollup-win32-arm64-msvc@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.5.tgz#12ee49233b1125f2c1da38392f63b1dbb0c31bba" + integrity sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w== + +"@rollup/rollup-win32-ia32-msvc@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.5.tgz#0f987b134c6b3123c22842b33ba0c2b6fb78cc3b" + integrity sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg== + +"@rollup/rollup-win32-x64-msvc@4.22.5": + version "4.22.5" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz#f2feb149235a5dc1deb5439758f8871255e5a161" + integrity sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ== + +"@types/estree@1.0.6", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/long@^4.0.1": version "4.0.2" @@ -556,18 +571,22 @@ eslint-visitor-keys@^4.0.0: integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== eslint@^9.8.0: - version "9.9.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec" - integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg== + version "9.11.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567" + integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.6.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.9.1" + "@eslint/js" "9.11.1" + "@eslint/plugin-kit" "^0.2.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -587,7 +606,6 @@ eslint@^9.8.0: is-glob "^4.0.0" is-path-inside "^3.0.3" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" @@ -1258,28 +1276,28 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rollup@^4.19.2: - version "4.22.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f" - integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A== + version "4.22.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.5.tgz#d5108cc470249417e50492456253884d19f5d40f" + integrity sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w== dependencies: - "@types/estree" "1.0.5" + "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.22.4" - "@rollup/rollup-android-arm64" "4.22.4" - "@rollup/rollup-darwin-arm64" "4.22.4" - "@rollup/rollup-darwin-x64" "4.22.4" - "@rollup/rollup-linux-arm-gnueabihf" "4.22.4" - "@rollup/rollup-linux-arm-musleabihf" "4.22.4" - "@rollup/rollup-linux-arm64-gnu" "4.22.4" - "@rollup/rollup-linux-arm64-musl" "4.22.4" - "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4" - "@rollup/rollup-linux-riscv64-gnu" "4.22.4" - "@rollup/rollup-linux-s390x-gnu" "4.22.4" - "@rollup/rollup-linux-x64-gnu" "4.22.4" - "@rollup/rollup-linux-x64-musl" "4.22.4" - "@rollup/rollup-win32-arm64-msvc" "4.22.4" - "@rollup/rollup-win32-ia32-msvc" "4.22.4" - "@rollup/rollup-win32-x64-msvc" "4.22.4" + "@rollup/rollup-android-arm-eabi" "4.22.5" + "@rollup/rollup-android-arm64" "4.22.5" + "@rollup/rollup-darwin-arm64" "4.22.5" + "@rollup/rollup-darwin-x64" "4.22.5" + "@rollup/rollup-linux-arm-gnueabihf" "4.22.5" + "@rollup/rollup-linux-arm-musleabihf" "4.22.5" + "@rollup/rollup-linux-arm64-gnu" "4.22.5" + "@rollup/rollup-linux-arm64-musl" "4.22.5" + "@rollup/rollup-linux-powerpc64le-gnu" "4.22.5" + "@rollup/rollup-linux-riscv64-gnu" "4.22.5" + "@rollup/rollup-linux-s390x-gnu" "4.22.5" + "@rollup/rollup-linux-x64-gnu" "4.22.5" + "@rollup/rollup-linux-x64-musl" "4.22.5" + "@rollup/rollup-win32-arm64-msvc" "4.22.5" + "@rollup/rollup-win32-ia32-msvc" "4.22.5" + "@rollup/rollup-win32-x64-msvc" "4.22.5" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -1311,11 +1329,6 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -1418,9 +1431,9 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwindcss@^3.3.5: - version "3.4.10" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.10.tgz#70442d9aeb78758d1f911af29af8255ecdb8ffef" - integrity sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w== + version "3.4.13" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.13.tgz#3d11e5510660f99df4f1bfb2d78434666cb8f831" + integrity sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" From 5d558381d8a167364129a93a2f94c44505ac754e Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Wed, 2 Oct 2024 15:19:11 -0400 Subject: [PATCH 09/33] Do not run Codecov upload on forks --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index be13deb833e..1abe212e475 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -79,6 +79,8 @@ jobs: upload_coverage: name: Upload Coverage runs-on: ubuntu-latest + # Do not run on forks + if: ${{ github.repository_owner == 'activeadmin' }} needs: [test] steps: - uses: actions/checkout@v4 From 6db02fbbac19aad19fb37ece92c548f208530a90 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Sat, 12 Oct 2024 12:07:15 -0400 Subject: [PATCH 10/33] Migrate docs to VitePress (#8194) * Consolidate tabs docs * Reference custom index views only * Update CSS tip: remove require_tree command * Add VitePress with docs setup * Remove Jekyll based docs * Add docs CI workflows Added a docs deployment workflow - https://vitepress.dev/guide/deploy#github-pages Updated the tests CI workflow to build docs for testing * Remove docs group in Gemfile --- .github/workflows/ci.yaml | 22 + .github/workflows/docs-deployment.yml | 47 + .github/workflows/lint.yml | 20 - .github/workflows/rubocop.yml | 1 - .gitignore | 2 + .yardopts | 7 - Gemfile | 5 - Gemfile.lock | 5 - Rakefile | 1 - bin/bundle | 2 - docs/.gitignore | 1 - docs/.vitepress/config.js | 94 ++ docs/12-arbre-components.md | 4 +- docs/14-gotchas.md | 10 +- docs/5-forms.md | 27 - docs/9-batch-actions.md | 29 +- docs/Gemfile | 4 - docs/Gemfile.lock | 278 ------ docs/README.md | 24 - docs/_config.yml | 4 - docs/_includes/footer.html | 8 - docs/_includes/google-analytics.html | 16 - docs/_includes/head.html | 7 - docs/_includes/toc.html | 98 -- docs/_includes/top-menu.html | 16 - docs/_layouts/default.html | 21 - docs/documentation.md | 62 +- docs/images/activeadmin.png | Bin 4387 -> 0 bytes docs/images/code-header.png | Bin 1932 -> 0 bytes docs/images/divider.png | Bin 113 -> 0 bytes docs/images/features.png | Bin 143602 -> 0 bytes docs/images/tidelift.svg | 14 - docs/index.html | 226 ----- docs/index.md | 49 + docs/markdown-examples.md | 127 +++ docs/stylesheets/main.css | 1205 ------------------------- package.json | 8 +- tasks/docs.rake | 63 -- yarn.lock | 1193 +++++++++++++++++++++++- 39 files changed, 1510 insertions(+), 2190 deletions(-) create mode 100644 .github/workflows/docs-deployment.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .yardopts delete mode 100644 docs/.gitignore create mode 100644 docs/.vitepress/config.js delete mode 100644 docs/Gemfile delete mode 100644 docs/Gemfile.lock delete mode 100644 docs/README.md delete mode 100644 docs/_config.yml delete mode 100644 docs/_includes/footer.html delete mode 100644 docs/_includes/google-analytics.html delete mode 100644 docs/_includes/head.html delete mode 100644 docs/_includes/toc.html delete mode 100644 docs/_includes/top-menu.html delete mode 100644 docs/_layouts/default.html delete mode 100644 docs/images/activeadmin.png delete mode 100644 docs/images/code-header.png delete mode 100644 docs/images/divider.png delete mode 100644 docs/images/features.png delete mode 100644 docs/images/tidelift.svg delete mode 100644 docs/index.html create mode 100644 docs/index.md create mode 100644 docs/markdown-examples.md delete mode 100644 docs/stylesheets/main.css delete mode 100644 tasks/docs.rake diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1abe212e475..9dffc7db54b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -94,3 +94,25 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} directory: coverage fail_ci_if_error: true + + test_docs_build: + name: Build docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: tj-actions/changed-files@v44 + id: changed-files + with: + files: | + docs/** + package*.json + yarn.lock + - uses: actions/setup-node@v4 + if: steps.changed-files.outputs.any_changed == 'true' + with: + node-version: 22 + cache: yarn + - run: yarn install + if: steps.changed-files.outputs.any_changed == 'true' + - run: yarn docs:build + if: steps.changed-files.outputs.any_changed == 'true' diff --git a/.github/workflows/docs-deployment.yml b/.github/workflows/docs-deployment.yml new file mode 100644 index 00000000000..664e9961df5 --- /dev/null +++ b/.github/workflows/docs-deployment.yml @@ -0,0 +1,47 @@ +name: Docs Deployment + +on: + release: + types: + - published + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +jobs: + build_docs: + name: Build docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: yarn + - uses: actions/configure-pages@v4 + - run: yarn install + - run: yarn docs:build + - uses: actions/upload-pages-artifact@v3 + with: + path: docs/.vitepress/dist + + deploy_docs: + name: Deploy docs site + runs-on: ubuntu-latest + needs: build_docs + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/deploy-pages@v4 + id: deployment diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index ce3d0cefa1a..00000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: General Lint - -on: - pull_request: - -env: - RUBY_VERSION: 3.3 - -jobs: - lint: - name: lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ env.RUBY_VERSION }} - bundler-cache: true - - name: Generate docs - run: bin/rake docs:build diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index 7030c403d84..856287bf707 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -24,7 +24,6 @@ jobs: **.rake **.arb bin/* - docs/Gemfile gemfiles/**/Gemfile Gemfile* Rakefile diff --git a/.gitignore b/.gitignore index 0a2ba67dace..e26ea760672 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ /vendor/bundle /rails_70 /dist +docs/.vitepress/cache +docs/.vitepress/dist diff --git a/.yardopts b/.yardopts deleted file mode 100644 index fe65f43518e..00000000000 --- a/.yardopts +++ /dev/null @@ -1,7 +0,0 @@ -lib/**/*.rb ---protected ---no-private -- -README.md -CHANGELOG.md -docs/**/*.md diff --git a/Gemfile b/Gemfile index 26cbaa8041c..88ca055ce88 100644 --- a/Gemfile +++ b/Gemfile @@ -50,9 +50,4 @@ group :rubocop do gem "rubocop-rails" end -group :docs do - gem "yard" # Documentation generator - gem "kramdown" # Markdown implementation (for yard) -end - gemspec path: "." diff --git a/Gemfile.lock b/Gemfile.lock index 8cf800616a8..7437921720d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -230,8 +230,6 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - kramdown (2.4.0) - rexml language_server-protocol (3.17.0.3) launchy (3.0.1) addressable (~> 2.8) @@ -423,7 +421,6 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - yard (0.9.37) zeitwerk (2.6.18) PLATFORMS @@ -447,7 +444,6 @@ DEPENDENCIES i18n-spec i18n-tasks importmap-rails - kramdown launchy parallel_tests pundit @@ -467,7 +463,6 @@ DEPENDENCIES sprockets-rails sqlite3 webrick - yard BUNDLED WITH 2.5.20 diff --git a/Rakefile b/Rakefile index d0a47d170fb..e26229820b9 100644 --- a/Rakefile +++ b/Rakefile @@ -8,7 +8,6 @@ import "tasks/dependencies.rake" gemfile = ENV["BUNDLE_GEMFILE"] if gemfile.nil? || File.expand_path(gemfile) == File.expand_path("Gemfile") - import "tasks/docs.rake" import "tasks/release.rake" end diff --git a/bin/bundle b/bin/bundle index a79fdfb657e..9004a197a1f 100755 --- a/bin/bundle +++ b/bin/bundle @@ -5,5 +5,3 @@ for gemfile in gemfiles/*/Gemfile; do ( set -x; BUNDLE_GEMFILE="$gemfile" bundle $@ ) done - -( set -x; BUNDLE_GEMFILE="docs/Gemfile" bundle $@ ) diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 57510a2be4e..00000000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_site/ diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js new file mode 100644 index 00000000000..3bd37b28c43 --- /dev/null +++ b/docs/.vitepress/config.js @@ -0,0 +1,94 @@ +import { version } from '../../package.json' +import { defineConfig } from 'vitepress' + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + title: "ActiveAdmin", + description: "The administration framework for business critical Ruby on Rails applications.", + head: [ + // ['link', { rel: 'icon', type: 'image/svg+xml', href: '/vitepress-logo-mini.svg' }], + // ['link', { rel: 'icon', type: 'image/png', href: '/vitepress-logo-mini.png' }], + // ['meta', { name: 'theme-color', content: '#5f67ee' }], + ['meta', { name: 'og:type', content: 'website' }], + ['meta', { name: 'og:locale', content: 'en' }], + ['meta', { name: 'og:site_name', content: 'ActiveAdmin' }], + // ['meta', { name: 'og:image', content: 'https://vitepress.dev/vitepress-og.jpg' }], + ], + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: 'Guide', link: '/0-installation' }, + { text: 'Discuss', link: 'https://github.com/activeadmin/activeadmin/discussions' }, + { + text: 'Demo', + items: [ + { text: 'GitHub Repository', link: 'https://github.com/activeadmin/demo.activeadmin.info' }, + { text: 'Demo App', link: 'https://demo.activeadmin.info/' }, + ] + }, + { + text: version.replace("-", "."), // use Ruby format for version text + items: [ + { + text: 'Changelog', + link: 'https://github.com/activeadmin/activeadmin/releases', + }, + { + text: 'Contributing', + link: 'https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md', + }, + ], + } + ], + sidebar: [ + { + text: 'Setup', + items: [ + { text: 'Installation', link: '/0-installation' }, + { text: 'Configuration', link: '/1-general-configuration' } + ] + }, + { + text: 'Resources', + items: [ + { text: 'Working with Resources', link: '/2-resource-customization' }, + { text: 'Customize the Index page', link: '/3-index-pages' }, + { text: 'Index as a Table', link: '/3-index-pages/index-as-table' }, + { text: 'Custom Index View', link: '/3-index-pages/custom-index' }, + { text: 'CSV Format', link: '/4-csv-format' }, + { text: 'Forms', link: '/5-forms' }, + { text: 'Customize the Show Page', link: '/6-show-pages' }, + { text: 'Sidebar Sections', link: '/7-sidebars' }, + { text: 'Custom Controller Actions', link: '/8-custom-actions' }, + { text: 'Batch Actions', link: '/9-batch-actions' }, + { text: 'Decorators', link: '/11-decorators' }, + { text: 'Authorization Adapter', link: '/13-authorization-adapter' } + ] + }, + { + text: 'Other', + items: [ + { text: 'Custom Pages', link: '/10-custom-pages' }, + { text: 'Arbre Components', link: '/12-arbre-components' }, + { text: 'Gotchas', link: '/14-gotchas' }, + { text: 'Documentation Tips', link: '/markdown-examples' }, + ] + } + ], + socialLinks: [ + { icon: 'github', link: 'https://github.com/activeadmin/activeadmin' }, + { icon: 'slack', link: 'https://activeadmin.slack.com/' }, + ], + editLink: { + pattern: 'https://github.com/activeadmin/activeadmin/edit/master/docs/:path', + text: 'Edit this page on GitHub' + }, + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2010-present' + }, + search: { + provider: 'local' + } + } +}) diff --git a/docs/12-arbre-components.md b/docs/12-arbre-components.md index c1dc69e7419..13b14da38ce 100644 --- a/docs/12-arbre-components.md +++ b/docs/12-arbre-components.md @@ -205,10 +205,12 @@ tabs do end end - tab :inactive do + tab :inactive, html_options: { class: "specific_css_class" } do table_for orders.inactive do # ... end end end ``` + +The `html_options` will set additional HTML attributes on the tab button. diff --git a/docs/14-gotchas.md b/docs/14-gotchas.md index 6c62830399b..1d61629dac2 100644 --- a/docs/14-gotchas.md +++ b/docs/14-gotchas.md @@ -68,13 +68,9 @@ end ## CSS -In order to avoid the override of your application style with the Active Admin -one, you can do one of these things: - -* You can properly move the generated file `active_admin.scss` from - `app/assets/stylesheets` to `vendor/assets/stylesheets`. -* You can remove all `require_tree` commands from your root level css files, - where the `active_admin.scss` is in the tree. +To avoid overriding your application styles with the ActiveAdmin styles, +remove the `require_tree` command from your application's CSS files, where +the `active_admin.scss` is in the tree. ## Conflicts diff --git a/docs/5-forms.md b/docs/5-forms.md index 07c88081cb4..19f3ddb0325 100644 --- a/docs/5-forms.md +++ b/docs/5-forms.md @@ -189,33 +189,6 @@ end This is particularly useful to display errors on virtual or hidden attributes. -# Tabs - -You can arrange content in tabs as shown below: - -```ruby - form do |f| - tabs do - tab 'Basic' do - f.inputs 'Basic Details' do - f.input :email - f.input :password - f.input :password_confirmation - end - end - - tab 'Advanced', html_options: { class: 'specific_css_class' } do - f.inputs 'Advanced Details' do - f.input :role - end - end - end - f.actions - end -``` - -`html_options` allows you set additional html params for tab's menu item. - # Customize the Create Another checkbox In order to simplify creating multiple resources you may enable ActiveAdmin to diff --git a/docs/9-batch-actions.md b/docs/9-batch-actions.md index ad699e9d42c..3331ad8008e 100644 --- a/docs/9-batch-actions.md +++ b/docs/9-batch-actions.md @@ -194,38 +194,23 @@ en: publish: "Publish" ``` -### Support for other index types +### Support for custom index views -You can easily use `batch_action` in the other index views, *Grid*, *Block*, -and *Blog*; however, these will require custom styling to fit your needs. +You can use `batch_action` in a custom index view, however, these will require custom styling to fit your needs. ```ruby ActiveAdmin.register Post do - # By default, the "Delete" batch action is provided - - # Index as Grid - index as: :grid do |post| + index as: :custom do |post| resource_selection_cell post h2 auto_link post end - - # Index as Blog requires nothing special - - # Index as Block - index as: :block do |post| - div for: post do - resource_selection_cell post - end - end - -end ``` -### BTW +### Note on implementation -In order to perform the batch action, the entire *Table*, *Grid*, etc. is -wrapped in a form that submits the IDs of the selected rows to your batch_action. +In order to perform the batch action, the entire index view is +wrapped in a form that submits the IDs of the selected rows to your `batch_action`. Since nested `
` tags in HTML often results in unexpected behavior, you may need to modify the custom behavior you've built using to prevent conflicts. @@ -233,5 +218,5 @@ may need to modify the custom behavior you've built using to prevent conflicts. Specifically, if you are using HTTP methods like `PUT` or `PATCH` with a custom form on your index page this may result in your batch action being `PUT`ed instead of `POST`ed which will create a routing error. You can get around this -by either moving the nested form to another page or using a POST so it doesn't +by either moving the nested form to another page or using a `POST` so it doesn't override the batch action. As well, behavior may vary by browser. diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 4ac36b061cd..00000000000 --- a/docs/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "github-pages" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock deleted file mode 100644 index caca7195fc2..00000000000 --- a/docs/Gemfile.lock +++ /dev/null @@ -1,278 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (7.2.1) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - logger (>= 1.4.2) - minitest (>= 5.1) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - base64 (0.2.0) - bigdecimal (3.1.8) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - colorator (1.1.0) - commonmarker (0.23.10) - concurrent-ruby (1.3.4) - connection_pool (2.4.1) - csv (3.3.0) - dnsruby (1.72.2) - simpleidn (~> 0.2.1) - drb (2.2.1) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - ethon (0.16.0) - ffi (>= 1.15.0) - eventmachine (1.2.7) - execjs (2.9.1) - faraday (2.12.0) - faraday-net_http (>= 2.0, < 3.4) - json - logger - faraday-net_http (3.3.0) - net-http - ffi (1.17.0) - forwardable-extended (2.6.0) - gemoji (4.1.0) - github-pages (232) - github-pages-health-check (= 1.18.2) - jekyll (= 3.10.0) - jekyll-avatar (= 0.8.0) - jekyll-coffeescript (= 1.2.2) - jekyll-commonmark-ghpages (= 0.5.1) - jekyll-default-layout (= 0.1.5) - jekyll-feed (= 0.17.0) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.16.1) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.13.0) - kramdown (= 2.4.0) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.4) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.16.2, < 2.0) - rouge (= 3.30.0) - terminal-table (~> 1.4) - webrick (~> 1.8) - github-pages-health-check (1.18.2) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (>= 4, < 8) - public_suffix (>= 3.0, < 6.0) - typhoeus (~> 1.3) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (1.14.6) - concurrent-ruby (~> 1.0) - jekyll (3.10.0) - addressable (~> 2.4) - colorator (~> 1.0) - csv (~> 3.0) - em-websocket (~> 0.5) - i18n (>= 0.7, < 2) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - webrick (>= 1.0) - jekyll-avatar (0.8.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.2.2) - coffee-script (~> 2.2) - coffee-script-source (~> 1.12) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.5.1) - commonmarker (>= 0.23.7, < 1.1.0) - jekyll (>= 3.9, < 4.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 5.0) - jekyll-default-layout (0.1.5) - jekyll (>= 3.0, < 5.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.16.1) - jekyll (>= 3.4, < 5.0) - octokit (>= 4, < 7, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.7.2) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.9.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.1) - mercenary (0.3.6) - mini_portile2 (2.8.7) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.25.1) - net-http (0.4.1) - uri - nokogiri (1.16.7) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.1.1) - racc (1.8.1) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rexml (3.3.8) - rouge (3.30.0) - rubyzip (2.3.2) - safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - securerandom (0.3.1) - simpleidn (0.2.3) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) - uri (0.13.1) - webrick (1.8.2) - -PLATFORMS - ruby - -DEPENDENCIES - github-pages - -BUNDLED WITH - 2.5.20 diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index ba065644bf5..00000000000 --- a/docs/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# ActiveAdmin Documentation - -## Content - -- [Installation](0-installation.md) -- [General Configuration](1-general-configuration.md) -- [Resource Customization](2-resource-customization.md) -- [Index Pages](3-index-pages.md) - - [Custom Index](3-index-pages/custom-index.md) - - [Index as Table](3-index-pages/index-as-table.md) - - [Index as Grid](3-index-pages/index-as-grid.md) - - [Index as Blocks](3-index-pages/index-as-block.md) - - [Index as Blog](3-index-pages/index-as-blog.md) -- [Csv Format](4-csv-format.md) -- [Forms](5-forms.md) -- [Show Pages](6-show-pages.md) -- [Sidebars](7-sidebars.md) -- [Custom Actions](8-custom-actions.md) -- [Batch Actions](9-batch-actions.md) -- [Custom Pages](10-custom-pages.md) -- [Decorators](11-decorators.md) -- [Arbre Components](12-arbre-components.md) -- [Authorization Adapter](13-authorization-adapter.md) -- [Gotchas](14-gotchas.md) diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index fc4acfd6012..00000000000 --- a/docs/_config.yml +++ /dev/null @@ -1,4 +0,0 @@ -plugins: - - jekyll-default-layout - - jekyll-redirect-from - - jekyll-relative-links diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html deleted file mode 100644 index e1c5b7139f4..00000000000 --- a/docs/_includes/footer.html +++ /dev/null @@ -1,8 +0,0 @@ -
- Copyright 2011 Greg Bell and VersaPay -
-
-

-
-

diff --git a/docs/_includes/google-analytics.html b/docs/_includes/google-analytics.html deleted file mode 100644 index 7d4aa11830f..00000000000 --- a/docs/_includes/google-analytics.html +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/docs/_includes/head.html b/docs/_includes/head.html deleted file mode 100644 index 4a59660ee95..00000000000 --- a/docs/_includes/head.html +++ /dev/null @@ -1,7 +0,0 @@ - - Active Admin | The administration framework for Ruby on Rails - - - - - diff --git a/docs/_includes/toc.html b/docs/_includes/toc.html deleted file mode 100644 index a803b8b7ed8..00000000000 --- a/docs/_includes/toc.html +++ /dev/null @@ -1,98 +0,0 @@ -
    -
  1. Installation
  2. -
      -
    1. Setting up Active Admin
    2. -
    3. Upgrading
    4. -
    5. Gem Compatibility
    6. -
    -
  3. General Configuration
  4. -
      -
    1. Authentication
    2. -
    3. Site Title Options
    4. -
    5. Internationalization (I18n)
    6. -
    7. Namespaces
    8. -
    9. Load paths
    10. -
    11. Comments
    12. -
    13. Utility Navigation
    14. -
    -
  5. Working with Resources
  6. -
      -
    1. Rename the Resource
    2. -
    3. Customize the Namespace
    4. -
    5. Customize the Menu
    6. -
    7. Scoping the queries
    8. -
    9. Customizing resource - retrieval
    10. -
    11. Belongs To
    12. -
    -
  7. Customizing the Index Page
  8. -
      -
    1. Custom Index
    2. -
    3. Index as a Block
    4. -
    5. Index as Blog
    6. -
    7. Index as a Grid
    8. -
    9. Index as a Table
    10. -
    -
  9. Customizing the CSV format
  10. -
  11. Customizing the Form
  12. -
      -
    1. Default
    2. -
    3. Partials
    4. -
    5. Nested Resources
    6. -
    7. Datepicker
    8. -
    9. Displaying Errors
    10. -
    -
  13. Customize the Show Page
  14. -
  15. Sidebar Sections
  16. -
  17. Custom Controller Actions
  18. -
      -
    1. Collection Actions
    2. -
    3. Member Actions
    4. -
    5. HTTP Verbs
    6. -
    7. Rendering
    8. -
    9. Action Items
    10. -
    11. Modifying the Controller
    12. -
    -
  19. Index Batch Actions
  20. -
      -
    1. Provided Batch Action
    2. -
    3. Creating Your Own
    4. -
    -
  21. Custom Pages
  22. -
      -
    1. Create a new Page
    2. -
    3. Customize the Menu
    4. -
    5. Add a Sidebar
    6. -
    7. Add an Action Item
    8. -
    9. Add a Page Action
    10. -
    -
  23. Decorators
  24. -
      -
    1. Example Usage
    2. -
    3. Forms
    4. -
    -
  25. Arbre Components
  26. -
      -
    1. Text Node
    2. -
    3. Panels
    4. -
    5. Columns
    6. -
    7. Table For
    8. -
    9. Status tag
    10. -
    11. Tabs
    12. -
    -
  27. Authorization Adapter
  28. -
      -
    1. Setting up your own - AuthorizationAdapter
    2. -
    3. Getting Access to the - Current User
    4. -
    5. Scoping - Collections in Authorization Adapters
    6. -
    7. Managing Access to Pages
    8. -
    9. Action Types
    10. -
    11. Checking - for Authorization in Controllers and Views
    12. -
    13. Using the CanCan Adapter
    14. -
    15. Using the Pundit Adapter
    16. -
    -
diff --git a/docs/_includes/top-menu.html b/docs/_includes/top-menu.html deleted file mode 100644 index 5a1c1715e27..00000000000 --- a/docs/_includes/top-menu.html +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html deleted file mode 100644 index 8bc396bf5bf..00000000000 --- a/docs/_layouts/default.html +++ /dev/null @@ -1,21 +0,0 @@ - - - {% include head.html %} - -
- {% include top-menu.html %} -
-
- {% include toc.html %} -
-
-
- {{ content }} -
-
-
- {% include footer.html %} -
- {% include google-analytics.html %} - - diff --git a/docs/documentation.md b/docs/documentation.md index adde1b175c0..8b0f0726b87 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -1,60 +1,8 @@ --- -redirect_from: /docs/documentation.html +head: + - - meta + - http-equiv: refresh + content: 0; url=/ --- -Active Admin is a framework for creating administration style interfaces. It -abstracts common business application patterns to make it simple for developers -to implement beautiful and elegant interfaces with very little effort. - -# Getting Started - -Active Admin is released as a Ruby Gem. The gem is to be installed within a Ruby -on Rails application. To install, simply add the following to your Gemfile: - -```ruby -# Gemfile -gem 'activeadmin' -``` - -After updating your bundle, run the installer - -```bash -rails generate active_admin:install -``` - -The installer creates an initializer used for configuring defaults used by -Active Admin as well as a new folder at `app/admin` to put all your admin -configurations. - -Migrate your db and start the server: - -```bash -$> rails db:migrate -$> rails server -``` - -Visit `http://localhost:3000/admin` and log in using: - -* __User__: admin@example.com -* __Password__: password - -Voila! You’re on your brand new Active Admin dashboard. - -To register your first model, run: - -```bash -$> rails generate active_admin:resource - [MyModelName] -``` - -This creates a file at `app/admin/my_model_names.rb` for configuring the -resource. Refresh your web browser to see the interface. - -# Next Steps - -Now that you have a working Active Admin installation, learn how to customize it: - -* [Customize the Index Page](3-index-pages.md) -* [Customize the New and Edit Form](5-forms.md) -* [Customize the Show Page](6-show-pages.md) -* [Customize the Resource in General](2-resource-customization.md) +This page has been removed. You will be redirected to [the homepage](/). diff --git a/docs/images/activeadmin.png b/docs/images/activeadmin.png deleted file mode 100644 index a2890603239ac4d0510c0b59d00c0fcb4938d198..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4387 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 diff --git a/docs/images/code-header.png b/docs/images/code-header.png deleted file mode 100644 index f94e9cac2406fa0a6762fb08b603b52f6164ec61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 zcmV;72Xpv|P)+AnxN=YeV}kJAc^BhaTCXN z8eg)dIN~LeyUX33otX|viKQ-Emt{o#eF&~r%iqop=lcGB!yOWzKl|r=zM$zkLW*dD zR-b6?wz-D@00000c;qOn&(>!34_bM&Kqw5uY^EC*ip9yPsh*x*O6i7_n&)mu=T{6{ z)(`Lql(w;GJ^%m!004LhV2pjge(C*-cxfqr@~h9~^Z8C^K~Yr&W9s{?=>cFuuwn2h z5}a?4cm-iyzQp~y5M0%C)v^?+_ne8fsxLKOl@CP?!g|D*+#|Y)H5_reI(YybUJq1J z{@?3ZHhonUjefD?qHC5OKj89f=2!M(4qX%aCh(;uolaM)HC%IQk(BBV6_?dscirpn zy?f`KcbHp4LLuGVW8XSG`t;LAW43<{l=J0(e^UPY1$OtArYKA&=CR|M=U+%Ekbdw)oMRi*Nt> zuOIy2<=?CbWl1!>j3}&01is*S;R2sB5Kk)su40jJLjG|^SwlDQehdV z%ABgLE4@U0?@xcsPEHO@PqU`6s%cKSB6w} z{Z}=_1?N)fk)r(b^7$Ly?DR8(**=q4+_IJNqrJDxyJu$K9L|kpy0Z-8h{Fp^6#@VN zgUKVIF?lceN@U*_S{73GgZEFG`s1b=Teykd{0(MNwz~XO-0+;BJUiPrHPxEkE0mXUX-*h_~gQ_N2$6J4n|CIn$! z5JGfa3xda3Jp|D*j)cKV17nHUP`{B*Xojw+f~UG7*W}pfE8nh!9%FV(>;vkX zy<+spU@B>0Rl%ytc`W1x<=mN~b+^VM{;(r^m`Mfz;DCW)2YBSPKB>p@Nhxhl;|o=g zuC%EM(%;WhHnQ!;dc8{7sw|sgQBNi*4N=Qj4HcbeY1_)Bane#O6KSeOBh3mJM<`X1 zTR|hlBemfLh_1Muvf{QClTJho8iaxOnkkD~GTDel(Cc8>0s!bW@Qz@>+26>X zGmb?gQ2$?K-&k-nbF^~xqoJW;lmAd>6jKOUSgb+xQHlfEZ5_@W@O1Qb;@=wnNZC*u_&XO>Xv**c%-*$B%lEo z4Eibn001}#!2XK8tOd-)nj7?_G?U}Umul6%L@LuafKsW(nmC<&?s&_SQ+RSB^8FP{ zN;P|=>dh=HERNM5g{p78s3$%xt-L|d}RZ|U( z=I1Lt`b6634MHCp1ONa40PKHcFE&K>QuzfT`q#hl>D~Fkx}TI1E>Oj*FIX`&b5us( zO2>-)DD>3+Z_ZaP(JO`AfJF@K)abo=zhs^YtdS`2+WIXomLQq&__r5s%!bu_@t74x zQK94zZ*<5$;d^xiLJt4{008@q)OW!JZtZp69LIvdF%0$Cmv1f-HTg2Df7i@`Ht(-C_*;RBxAX1 zr6LeVp!NU&JW^my7ZmlO6?-JbzB!G*?oRl?^9sIi*|v)t-T)25dbunu)y7@)d~JnA z<#NF=?T`$VxXP`__i9m8*>q06=2UPUCt^o%s3XLs{1<~l``bXFN&o-=1pN63GD%DbFvYTEV007{Cfq@7( zl(d8!BaSEyH~Gms000000KVij7R<}Y-f`Wt=l>D}LF2Cb{rcRzom9(FRW#b5z-B_un`QZNKQ&rHLMt=j{xh zyKB8$wFGqEdPiFr?4sT7qV%?EsAwmHu=1eN-pk;;Q@z_uxglg2M%{J(E5HC%)-+Wc SZm~E30000DSr z1<%~X^wgl##FWaylc_d9MZ%sgjv*Ddk}7_FkvshV|9?g%9tJT{)>W>aK_H_TJYD@< J);T3K0RZK)9`yhK diff --git a/docs/images/features.png b/docs/images/features.png deleted file mode 100644 index e5a5c753bf15384858efa94ed06e6c2f60d115ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143602 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 diff --git a/docs/images/tidelift.svg b/docs/images/tidelift.svg deleted file mode 100644 index 5ba88eda39f..00000000000 --- a/docs/images/tidelift.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 3f87095e3e5..00000000000 --- a/docs/index.html +++ /dev/null @@ -1,226 +0,0 @@ ---- ---- - - - {% include head.html %} - - -

- {% include google-analytics.html %} -

- - diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000000..dd8b02ed0d0 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,49 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: ActiveAdmin + text: An admin engine for Rails applications + tagline: Abstracts common patterns to implement beautiful and elegant interfaces with ease. + + actions: + - theme: brand + text: Getting Started + link: /0-installation + - theme: alt + text: View on GitHub + link: https://github.com/activeadmin/activeadmin + +features: + - icon: 🌎 + title: Global Navigation + details: Customizable navigation allows you to create usable admin interfaces for your business. + - icon: 🔒 + title: User Authentication + details: Use the bundled Devise configuration or implement your own authorization using the provided hooks. + - icon: 🎬 + title: Action Items + details: Add buttons or links as action items in the page header for a resource. + link: /8-custom-actions + linkText: Learn about action items + - icon: 🔍 + title: Filters + details: Allow users to filter resources by searching strings, text fields, dates, and numeric values. + link: /3-index-pages + linkText: Learn about filters + - icon: 🗂️ + title: Scopes + details: Use scopes to create sections of mutually exclusive resources for quick navigation and reporting. + - icon: 📑 + title: Custom Index Views + details: The default index screen is a table view, but custom index views are supported. + - icon: 📋 + title: Sidebar Sections + details: Add your own sections to the sidebar using a simple DSL. + link: /7-sidebars + linkText: Learn about sidebar sections + - icon: 💾 + title: Downloads + details: Each resource becomes available as CSV, JSON, and XML with customizable output. +--- diff --git a/docs/markdown-examples.md b/docs/markdown-examples.md new file mode 100644 index 00000000000..d715a2bf94a --- /dev/null +++ b/docs/markdown-examples.md @@ -0,0 +1,127 @@ +--- +outline: deep +--- + +# Markdown Extension Examples + +This page demonstrates some of the built-in markdown extensions provided by VitePress. + +## Syntax Highlighting + +VitePress provides Syntax Highlighting powered by [Shikiji](https://github.com/antfu/shikiji), with additional features like line-highlighting: + +**Input** + +````md +```js{4} +export default { + data () { + return { + msg: 'Highlighted!' + } + } +} +``` +```` + +**Output** + +```js{4} +export default { + data () { + return { + msg: 'Highlighted!' + } + } +} +``` + +## Custom Containers + +**Input** + +```md +::: info +This is an info box. +::: + +::: tip +This is a tip. +::: + +::: warning +This is a warning. +::: + +::: danger +This is a dangerous warning. +::: + +::: details +This is a details block. +::: +``` + +**Output** + +::: info +This is an info box. +::: + +::: tip +This is a tip. +::: + +::: warning +This is a warning. +::: + +::: danger +This is a dangerous warning. +::: + +::: details +This is a details block. +::: + +## Runtime API Examples + +This page demonstrates usage of some of the runtime APIs provided by VitePress. + +The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: + +```md + + +### Theme Data +
{{ theme }}
+ +### Page Data +
{{ page }}
+ +### Page Frontmatter +
{{ frontmatter }}
+``` + + + +### Theme Data +
{{ theme }}
+ +### Page Data +
{{ page }}
+ +### Page Frontmatter +
{{ frontmatter }}
+ +## More + +Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown) and the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). diff --git a/docs/stylesheets/main.css b/docs/stylesheets/main.css deleted file mode 100644 index 8e64ef8d204..00000000000 --- a/docs/stylesheets/main.css +++ /dev/null @@ -1,1205 +0,0 @@ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} - -body { - line-height: 1; -} - -ol, ul { - list-style: none; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -caption, th, td { - text-align: left; - font-weight: normal; - vertical-align: middle; -} - -q, blockquote { - quotes: none; -} - -q:before, q:after, blockquote:before, blockquote:after { - content: ""; - content: none; -} - -a img { - border: none; -} - -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} - -#dsl { - /* Comment */ - /* Error */ - /* Keyword */ - /* Literal */ - /* Name */ - /* Operator */ - /* Punctuation */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Emph */ - /* Generic.Strong */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Namespace */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Date */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Decorator */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Label */ - /* Name.Namespace */ - /* Name.Other */ - /* Name.Property */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ -} - -#dsl .highlight .hll { - background-color: #49483e; -} - -#dsl .highlight { - background: #272822; - color: #f8f8f2; -} - -#dsl .highlight .c { - color: #75715e; -} - -#dsl .highlight .err { - color: #960050; - background-color: #1e0010; -} - -#dsl .highlight .k { - color: #66d9ef; -} - -#dsl .highlight .l { - color: #ae81ff; -} - -#dsl .highlight .n { - color: #f8f8f2; -} - -#dsl .highlight .o { - color: #f92672; -} - -#dsl .highlight .p { - color: #f8f8f2; -} - -#dsl .highlight .cm { - color: #75715e; -} - -#dsl .highlight .cp { - color: #75715e; -} - -#dsl .highlight .c1 { - color: #75715e; -} - -#dsl .highlight .cs { - color: #75715e; -} - -#dsl .highlight .ge { - font-style: italic; -} - -#dsl .highlight .gs { - font-weight: bold; -} - -#dsl .highlight .kc { - color: #66d9ef; -} - -#dsl .highlight .kd { - color: #66d9ef; -} - -#dsl .highlight .kn { - color: #f92672; -} - -#dsl .highlight .kp { - color: #66d9ef; -} - -#dsl .highlight .kr { - color: #66d9ef; -} - -#dsl .highlight .kt { - color: #66d9ef; -} - -#dsl .highlight .ld { - color: #e6db74; -} - -#dsl .highlight .m { - color: #ae81ff; -} - -#dsl .highlight .s { - color: #e6db74; -} - -#dsl .highlight .na { - color: #a6e22e; -} - -#dsl .highlight .nb { - color: #f8f8f2; -} - -#dsl .highlight .nc { - color: #a6e22e; -} - -#dsl .highlight .no { - color: #66d9ef; -} - -#dsl .highlight .nd { - color: #a6e22e; -} - -#dsl .highlight .ni { - color: #f8f8f2; -} - -#dsl .highlight .ne { - color: #a6e22e; -} - -#dsl .highlight .nf { - color: #a6e22e; -} - -#dsl .highlight .nl { - color: #f8f8f2; -} - -#dsl .highlight .nn { - color: #f8f8f2; -} - -#dsl .highlight .nx { - color: #a6e22e; -} - -#dsl .highlight .py { - color: #f8f8f2; -} - -#dsl .highlight .nt { - color: #f92672; -} - -#dsl .highlight .nv { - color: #f8f8f2; -} - -#dsl .highlight .ow { - color: #f92672; -} - -#dsl .highlight .w { - color: #f8f8f2; -} - -#dsl .highlight .mf { - color: #ae81ff; -} - -#dsl .highlight .mh { - color: #ae81ff; -} - -#dsl .highlight .mi { - color: #ae81ff; -} - -#dsl .highlight .mo { - color: #ae81ff; -} - -#dsl .highlight .sb { - color: #e6db74; -} - -#dsl .highlight .sc { - color: #e6db74; -} - -#dsl .highlight .sd { - color: #e6db74; -} - -#dsl .highlight .s2 { - color: #e6db74; -} - -#dsl .highlight .se { - color: #ae81ff; -} - -#dsl .highlight .sh { - color: #e6db74; -} - -#dsl .highlight .si { - color: #e6db74; -} - -#dsl .highlight .sx { - color: #e6db74; -} - -#dsl .highlight .sr { - color: #e6db74; -} - -#dsl .highlight .s1 { - color: #e6db74; -} - -#dsl .highlight .ss { - color: #AE81FF; -} - -#dsl .highlight .bp { - color: #f8f8f2; -} - -#dsl .highlight .vc { - color: #f8f8f2; -} - -#dsl .highlight .vg { - color: #f8f8f2; -} - -#dsl .highlight .vi { - color: #f8f8f2; -} - -#dsl .highlight .il { - color: #ae81ff; -} - -body { - line-height: 1.5; - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - color: #333333; - font-size: 75%; -} - -h1, h2, h3, h4, h5, h6 { - font-weight: normal; - color: #222222; -} - -h1 img, h2 img, h3 img, h4 img, h5 img, h6 img { - margin: 0; -} - -h1 { - font-size: 3em; - line-height: 1; - margin-bottom: 0.50em; -} - -h2 { - font-size: 2em; - margin-bottom: 0.75em; -} - -h3 { - font-size: 1.5em; - line-height: 1; - margin-bottom: 1.00em; -} - -h4 { - font-size: 1.2em; - line-height: 1.25; - margin-bottom: 1.25em; -} - -h5 { - font-size: 1em; - font-weight: bold; - margin-bottom: 1.50em; -} - -h6 { - font-size: 1em; - font-weight: bold; -} - -p { - margin: 0 0 1.5em; -} - -p .left { - display: inline; - float: left; - margin: 1.5em 1.5em 1.5em 0; - padding: 0; -} - -p .right { - display: inline; - float: right; - margin: 1.5em 0 1.5em 1.5em; - padding: 0; -} - -a { - text-decoration: underline; - color: #0066cc; -} - -a:visited { - color: #004c99; -} - -a:focus { - color: #0099ff; -} - -a:hover { - color: #0099ff; -} - -a:active { - color: #bf00ff; -} - -blockquote { - margin: 1.5em; - color: #666666; - font-style: italic; -} - -strong, dfn { - font-weight: bold; -} - -em, dfn { - font-style: italic; -} - -sup, sub { - line-height: 0; -} - -abbr, acronym { - border-bottom: 1px dotted #666666; -} - -address { - margin: 0 0 1.5em; - font-style: italic; -} - -del { - color: #666666; -} - -pre { - margin: 1.5em 0; - white-space: pre; -} - -pre, code, tt { - font: 1em "andale mono", "lucida console", monospace; - line-height: 1.5; -} - -li ul, li ol { - margin: 0; -} - -ul, ol { - margin: 0 1.5em 1.5em 0; - padding-left: 1.5em; -} - -ul { - list-style-type: disc; -} - -ol { - list-style-type: decimal; -} - -dl { - margin: 0 0 1.5em 0; -} - -dl dt { - font-weight: bold; -} - -dd { - margin-left: 1.5em; -} - -table { - margin-bottom: 1.4em; - width: 100%; -} - -th { - font-weight: bold; -} - -thead th { - background: #c3d9ff; -} - -th, td, caption { - padding: 4px 10px 4px 5px; -} - -table.striped tr:nth-child(even) td, -table tr.even td { - background: #e5ecf9; -} - -tfoot { - font-style: italic; -} - -caption { - background: #eeeeee; -} - -.quiet { - color: #666666; -} - -.loud { - color: #111111; -} - -body { - background: #f6f4f1; - color: #676767; - width: 768px; - padding: 0 20px; - font-size: 95%; - margin: 25px auto; - font-family: 'Georgia'; -} - -body #wrapper { - position: relative; -} - -body a, body a:hover, body a:link, body a:visited { - color: #407985; -} - -body h1, body h2, body h3, body h4, body h5, body h6 { - color: #595959; - font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif; -} - -body h1 a { - background: url("../images/activeadmin.png") 0 0 no-repeat; - display: block; - width: 257px; - height: 55px; -} - -body h1 a span { - display: none; -} - -body #header { - margin: 40px 0; -} - -body #header h1 { - margin-bottom: 0; -} - -body #tidelift { - display: flex; - justify-content: flex-start; -} - -body #tidelift a { - border: 1px solid #666666; - margin-left: auto; - padding: 10px; - text-decoration: none; -} - -body #tidelift a .cta { - background: url("../images/tidelift.svg") no-repeat; - padding-left: 30px; -} - -body .tidelift-buttons a { - display: table; - width: 200px; - border: 2px solid #407985; - border-radius: 4px; - text-decoration: none; - font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif; - font-size: 18px; - letter-spacing: 1px; - margin: 0 10px; -} - -body .tidelift-buttons a:first-child { - float: left; - color: #407985; - background: #FFF; -} - -body .tidelift-buttons a:last-child { - color: #FFF; - background: #407985; -} - -body .tidelift-buttons a span { - display: table-cell; - vertical-align: middle; - text-align: center; -} - -body .clear { - clear: both; -} - -body .intro { - color: #595959; - font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif; - font-size: 3.2em; - font-weight: 300; - line-height: 1em; - margin-bottom: 0.3em; - padding-top: 35px; - background: url("../images/divider.png") 0 0 repeat-x; -} - -body .intro strong { - font-weight: 400; -} - -body h2 { - margin: 50px 0 10px 0; - padding-top: 35px; - background: url("../images/divider.png") 0 0 repeat-x; - font-size: 2.5em; - font-weight: 200; - line-height: 105%; -} - -body h3 { - margin-top: 30px; - margin-bottom: 10px; - font-size: 1.7em; - font-weight: 300; -} - -body #nav, body #tidelift .cta { - font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif; - font-weight: 400; - font-size: 1.2em; - text-transform: uppercase; -} - -body #nav { - position: absolute; - right: 0; - top: 20px; - text-align: right; -} - -body #nav a { - text-decoration: none; - color: #8b9091; - margin-left: 20px; -} - -body #features { - padding-top: 0; - clear: both; - background: url("../images/features.png") 0 0 no-repeat; - margin: 0 -35px; - overflow: visible; - min-height: 569px; - font-size: 1.0em; - line-height: 1.2em; - font-weight: 300; - font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif; -} - -body #features #features-left { - float: left; - width: 150px; - margin-left: -150px; -} - -body #features #features-right { - float: right; - width: 150px; - margin-right: -150px; -} - -body #features h3 { - font-size: 1.2em; - padding-bottom: 0; - margin-bottom: 5px; -} - -body #features h3.first { - margin-top: 10px; -} - -body.with-sidebar { - width: 976px; -} - -body .toc { - font-family: Helvetica, Arial, sans-serif; - padding-top: 35px; - width: 270px; - float: right; - font-size: 0.9em; - background: url("../images/divider.png") top left repeat-x; -} - -body .toc ol li { - list-style: none; -} - -body .toc a, body .toc a:link, body .toc a:hover, body .toc a:visited { - text-decoration: none; - color: #595959; -} - -body .toc ol.level-1 > li { - font-size: 1.0em; - font-weight: bold; - margin-top: 20px; -} - -body .toc ol.level-1 > ol { - padding-left: 0; - font-size: 0.95em; - margin: 0; -} - -body .toc ol.level-2 > ol { - display: none; -} - -body .toc-content { - width: 676px; -} - -body #dsl { - margin-top: 20px; -} - -body #dsl .highlight { - font-size: 0.82em; - background: #292929 url("../images/code-header.png") 0 0 no-repeat; - padding: 40px 15px 20px 15px !important; - -moz-box-shadow: 0 8px 20px #444444; - -webkit-box-shadow: 0 8px 20px #444444; - -o-box-shadow: 0 8px 20px #444444; - box-shadow: 0 8px 20px #444444; -} - -body .getting-started { - font-size: 2em; - text-align: center; -} - -body .getting-started a { - margin-right: 15px; - display: block; -} - -body .getting-started-heading { - text-align: center; -} - -body .left { - float: left; -} - -body .right { - float: right; -} - -body .highlight { - background-color: #333; - font-family: "Droid Sans Mono", Monaco, monospace; - padding: 10px 5px; - font-size: 0.9em; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - -o-border-radius: 2px; - -ms-border-radius: 2px; - -khtml-border-radius: 2px; - border-radius: 2px; - margin-bottom: 1.5em; -} - -body .highlight > pre, body .highlight code, body .highlight span { - line-height: 1.3em; - margin: 0; - padding: 0; -} - -body #footer { - margin-top: 50px; - margin-bottom: 20px; - background: url("../images/divider.png") 0 0 repeat-x; - clear: both; - padding-top: 20px; - font-size: 0.9em; -} - -body .post .post-date, body .post .post-meta { - font-size: 0.7em; -} - -body .post .post-date { - display: inline-block; - width: 100px; -} - -body .post .post-meta { - font-size: 0.6em; - padding-left: 40px; -} - -span.breadcrumb { - display: block; - font-size: 45%; - font-weight: 200; - margin: 0; - padding: 0; -} - -h2.in-docs { - font-weight: 400; -} - -.docs-content { - /* Comment */ - /* Error */ - /* Keyword */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Namespace */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Name */ - /* Name */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Decorator */ - /* Name.Entity */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ -} - -.docs-content h3 { - margin-top: 50px; - margin-bottom: 10px; - font-size: 2em; - font-weight: 400; -} - -.docs-content h4 { - font-size: 1.5em; - font-weight: 400; - margin-bottom: 0; -} - -.docs-content p, .docs-content li { - font-family: Helvetica, Arial, sans-serif; - font-size: 0.9em; -} - -.docs-content .highlight { - font-size: 0.85em; - background-color: #ece8e1; - color: #000000; -} - -.docs-content .highlight .hll { - background-color: #ffffcc; -} - -.docs-content .highlight .c { - color: #aaaaaa; - font-style: italic; -} - -.docs-content .highlight .err { - color: #F00000; - background-color: #F0A0A0; -} - -.docs-content .highlight .k { - color: #0000aa; -} - -.docs-content .highlight .cm { - color: #aaaaaa; - font-style: italic; -} - -.docs-content .highlight .cp { - color: #4c8317; -} - -.docs-content .highlight .c1 { - color: #aaaaaa; - font-style: italic; -} - -.docs-content .highlight .cs { - color: #0000aa; - font-style: italic; -} - -.docs-content .highlight .gd { - color: #aa0000; -} - -.docs-content .highlight .ge { - font-style: italic; -} - -.docs-content .highlight .gr { - color: #aa0000; -} - -.docs-content .highlight .gh { - color: #000080; - font-weight: bold; -} - -.docs-content .highlight .gi { - color: #00aa00; -} - -.docs-content .highlight .go { - color: #888888; -} - -.docs-content .highlight .gp { - color: #555555; -} - -.docs-content .highlight .gs { - font-weight: bold; -} - -.docs-content .highlight .gu { - color: #800080; - font-weight: bold; -} - -.docs-content .highlight .gt { - color: #aa0000; -} - -.docs-content .highlight .kc { - color: #0000aa; -} - -.docs-content .highlight .kd { - color: #0000aa; -} - -.docs-content .highlight .kn { - color: #0000aa; -} - -.docs-content .highlight .kp { - color: #0000aa; -} - -.docs-content .highlight .kr { - color: #0000aa; -} - -.docs-content .highlight .kt { - color: #00aaaa; -} - -.docs-content .highlight .m { - color: #009999; -} - -.docs-content .highlight .n { - color: #000000; -} - -.docs-content .highlight .p { - color: #000000; -} - -.docs-content .highlight .s { - color: #aa5500; -} - -.docs-content .highlight .na { - color: #1e90ff; -} - -.docs-content .highlight .nb { - color: #00aaaa; -} - -.docs-content .highlight .nc { - color: #00aa00; - text-decoration: underline; -} - -.docs-content .highlight .no { - color: #aa0000; -} - -.docs-content .highlight .nd { - color: #888888; -} - -.docs-content .highlight .ni { - color: #800000; - font-weight: bold; -} - -.docs-content .highlight .nf { - color: #00aa00; -} - -.docs-content .highlight .nn { - color: #00aaaa; - text-decoration: underline; -} - -.docs-content .highlight .nt { - color: #1e90ff; - font-weight: bold; -} - -.docs-content .highlight .nv { - color: #aa0000; -} - -.docs-content .highlight .ow { - color: #0000aa; -} - -.docs-content .highlight .w { - color: #bbbbbb; -} - -.docs-content .highlight .mf { - color: #009999; -} - -.docs-content .highlight .mh { - color: #009999; -} - -.docs-content .highlight .mi { - color: #009999; -} - -.docs-content .highlight .mo { - color: #009999; -} - -.docs-content .highlight .sb { - color: #aa5500; -} - -.docs-content .highlight .sc { - color: #aa5500; -} - -.docs-content .highlight .sd { - color: #aa5500; -} - -.docs-content .highlight .s2 { - color: #aa5500; -} - -.docs-content .highlight .se { - color: #aa5500; -} - -.docs-content .highlight .sh { - color: #aa5500; -} - -.docs-content .highlight .si { - color: #aa5500; -} - -.docs-content .highlight .sx { - color: #aa5500; -} - -.docs-content .highlight .sr { - color: #009999; -} - -.docs-content .highlight .s1 { - color: #aa5500; -} - -.docs-content .highlight .ss { - color: #0000aa; -} - -.docs-content .highlight .bp { - color: #00aaaa; -} - -.docs-content .highlight .vc { - color: #aa0000; -} - -.docs-content .highlight .vg { - color: #aa0000; -} - -.docs-content .highlight .vi { - color: #aa0000; -} - -.docs-content .highlight .il { - color: #009999; -} diff --git a/package.json b/package.json index c1b5d5b7e08..5993e2138af 100644 --- a/package.json +++ b/package.json @@ -29,14 +29,18 @@ "eslint": "^9.8.0", "gherkin-lint": "^4.2.2", "rollup": "^4.19.2", - "tailwindcss": "^3.3.5" + "tailwindcss": "^3.3.5", + "vitepress": "^1.4.0" }, "scripts": { "gherkin-lint": "gherkin-lint", "lint": "eslint .", "prebuild": "npm run lint && rm -rf dist", "build": "rollup --config rollup.config.js", - "prepublishOnly": "npm run build" + "prepublishOnly": "npm run build", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" }, "dependencies": { "@rails/ujs": "7.1.400", diff --git a/tasks/docs.rake b/tasks/docs.rake deleted file mode 100644 index d30e1ea429e..00000000000 --- a/tasks/docs.rake +++ /dev/null @@ -1,63 +0,0 @@ -# frozen_string_literal: true -require "yard" -require "yard/rake/yardoc_task" - -namespace :docs do - YARD::Rake::YardocTask.new do |t| - t.files = ["lib/**/*.rb"] - t.options = ["--no-output"] - end - - def jekyll_redirect_string(filename) - <<-EOD.strip_heredoc - --- - redirect_from: /docs/3-index-pages/#{filename} - --- - - EOD - end - - def filename_from_module(mod) - mod.name.to_s.underscore.tr("_", "-") - end - - def write_docstrings_to(path, mods) - mods.each do |mod| - filename = filename_from_module(mod) - - File.open("#{path}/#{filename}.md", "w+") do |f| - f << jekyll_redirect_string("#{filename}.html") + mod.docstring + "\n" - end - end - end - - def docs_synchronized? - # Do not print diff and yield whether exit code was zero - sh("git diff --quiet docs/3-index-pages") do |outcome, _| - return if outcome - - # Output diff before raising error - sh("git diff docs/3-index-pages") - - raise <<-MSG.strip_heredoc - The docs/3-index-pages directory is out of sync. - Run `bin/rake docs:build` and commit the results. - MSG - end - end - - desc "Update docs in the docs folder" - task build: :yard do - require "yard" - require "active_support/all" - - YARD::Registry.load! - views = YARD::Registry.at("ActiveAdmin::Views") - - # Index Types - index_types = views.children.select { |obj| obj.name.to_s =~ /^IndexAs/ } - write_docstrings_to "docs/3-index-pages", index_types - - docs_synchronized? if ENV["CI"] - end -end diff --git a/yarn.lock b/yarn.lock index 27efe127ebd..02d5739546c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,323 @@ # yarn lockfile v1 +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== + +"@algolia/cache-browser-local-storage@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz#97bc6d067a9fd932b9c922faa6b7fd6e546e1348" + integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/cache-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.24.0.tgz#81a8d3a82ceb75302abb9b150a52eba9960c9744" + integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== + +"@algolia/cache-in-memory@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz#ffcf8872f3a10cb85c4f4641bdffd307933a6e44" + integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/client-account@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.24.0.tgz#eba7a921d828e7c8c40a32d4add21206c7fe12f1" + integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-analytics@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.24.0.tgz#9d2576c46a9093a14e668833c505ea697a1a3e30" + integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.24.0.tgz#77c46eee42b9444a1d1c1583a83f7df4398a649d" + integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== + dependencies: + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-personalization@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.24.0.tgz#8b47789fb1cb0f8efbea0f79295b7c5a3850f6ae" + integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-search@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.24.0.tgz#75e6c02d33ef3e0f34afd9962c085b856fc4a55f" + integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/logger-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.24.0.tgz#28d439976019ec0a46ba7a1a739ef493d4ef8123" + integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== + +"@algolia/logger-console@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.24.0.tgz#c6ff486036cd90b81d07a95aaba04461da7e1c65" + integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== + dependencies: + "@algolia/logger-common" "4.24.0" + +"@algolia/recommend@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.24.0.tgz#8a3f78aea471ee0a4836b78fd2aad4e9abcaaf34" + integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/requester-browser-xhr@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz#313c5edab4ed73a052e75803855833b62dd19c16" + integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/requester-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.24.0.tgz#1c60c198031f48fcdb9e34c4057a3ea987b9a436" + integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== + +"@algolia/requester-node-http@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz#4461593714031d02aa7da221c49df675212f482f" + integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/transporter@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.24.0.tgz#226bb1f8af62430374c1972b2e5c8580ab275102" + integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== + dependencies: + "@algolia/cache-common" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== +"@babel/helper-string-parser@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" + integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== + +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== + +"@babel/parser@^7.25.3": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590" + integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw== + dependencies: + "@babel/types" "^7.25.7" + +"@babel/types@^7.25.7": + version "7.25.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b" + integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ== + dependencies: + "@babel/helper-string-parser" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + to-fast-properties "^2.0.0" + +"@docsearch/css@3.6.2", "@docsearch/css@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.2.tgz#ccd9c83dbfeaf34efe4e3547ee596714ae7e5891" + integrity sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw== + +"@docsearch/js@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.2.tgz#000d7d255e8387e7c5b82c7b87d3060398e1605d" + integrity sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA== + dependencies: + "@docsearch/react" "3.6.2" + preact "^10.0.0" + +"@docsearch/react@3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.2.tgz#32b16dd7d5614f0d39e6bc018549816b68d171b8" + integrity sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.2" + algoliasearch "^4.19.1" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -88,18 +400,18 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz#9b18145d26cf33d08576cf4c7665b28554480ed7" + integrity sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -111,10 +423,15 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + version "0.3.23" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz#afc96847f3f07841477f303eed687707a5aacd80" + integrity sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -218,107 +535,426 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.5.tgz#e0f5350845090ca09690fe4a472717f3b8aae225" integrity sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww== +"@rollup/rollup-android-arm-eabi@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54" + integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA== + "@rollup/rollup-android-arm64@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.5.tgz#08270faef6747e2716d3e978a8bbf479f75fb19a" integrity sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ== +"@rollup/rollup-android-arm64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e" + integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA== + "@rollup/rollup-darwin-arm64@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.5.tgz#691671133b350661328d42c8dbdedd56dfb97dfd" integrity sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw== +"@rollup/rollup-darwin-arm64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f" + integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA== + "@rollup/rollup-darwin-x64@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.5.tgz#b2ec52a1615f24b1cd40bc8906ae31af81e8a342" integrity sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg== +"@rollup/rollup-darwin-x64@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724" + integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ== + "@rollup/rollup-linux-arm-gnueabihf@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.5.tgz#217f01f304808920680bd269002df38e25d9205f" integrity sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw== +"@rollup/rollup-linux-arm-gnueabihf@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb" + integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA== + "@rollup/rollup-linux-arm-musleabihf@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.5.tgz#93ac1c5a1e389f4482a2edaeec41fcffee54a930" integrity sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ== +"@rollup/rollup-linux-arm-musleabihf@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3" + integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw== + "@rollup/rollup-linux-arm64-gnu@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.5.tgz#a7f146787d6041fecc4ecdf1aa72234661ca94a4" integrity sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w== +"@rollup/rollup-linux-arm64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496" + integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA== + "@rollup/rollup-linux-arm64-musl@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.5.tgz#6a37236189648e678bd564d6e8ca798f42cf42c5" integrity sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw== +"@rollup/rollup-linux-arm64-musl@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065" + integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw== + "@rollup/rollup-linux-powerpc64le-gnu@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.5.tgz#5661420dc463bec31ecb2d17d113de858cfcfe2d" integrity sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w== +"@rollup/rollup-linux-powerpc64le-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d" + integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw== + "@rollup/rollup-linux-riscv64-gnu@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.5.tgz#cb00342b7432bdef723aa606281de2f522d6dcf7" integrity sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A== +"@rollup/rollup-linux-riscv64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983" + integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg== + "@rollup/rollup-linux-s390x-gnu@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.5.tgz#0708889674dccecccd28e2befccf791e0767fcb7" integrity sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ== +"@rollup/rollup-linux-s390x-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58" + integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g== + "@rollup/rollup-linux-x64-gnu@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.5.tgz#a135b040b21582e91cfed2267ccfc7d589e1dbc6" integrity sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA== +"@rollup/rollup-linux-x64-gnu@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b" + integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A== + "@rollup/rollup-linux-x64-musl@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.5.tgz#88395a81a3ab7ee3dc8dc31a73ff62ed3185f34d" integrity sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g== +"@rollup/rollup-linux-x64-musl@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127" + integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ== + "@rollup/rollup-win32-arm64-msvc@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.5.tgz#12ee49233b1125f2c1da38392f63b1dbb0c31bba" integrity sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w== +"@rollup/rollup-win32-arm64-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5" + integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ== + "@rollup/rollup-win32-ia32-msvc@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.5.tgz#0f987b134c6b3123c22842b33ba0c2b6fb78cc3b" integrity sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg== +"@rollup/rollup-win32-ia32-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2" + integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ== + "@rollup/rollup-win32-x64-msvc@4.22.5": version "4.22.5" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz#f2feb149235a5dc1deb5439758f8871255e5a161" integrity sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ== +"@rollup/rollup-win32-x64-msvc@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" + integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== + +"@shikijs/core@1.22.0", "@shikijs/core@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.22.0.tgz#74e5d4485e5f7afa85109e322b42e400686f92bb" + integrity sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q== + dependencies: + "@shikijs/engine-javascript" "1.22.0" + "@shikijs/engine-oniguruma" "1.22.0" + "@shikijs/types" "1.22.0" + "@shikijs/vscode-textmate" "^9.3.0" + "@types/hast" "^3.0.4" + hast-util-to-html "^9.0.3" + +"@shikijs/engine-javascript@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.22.0.tgz#2e5db29f0421755492f5279f8224ef7a7f907a29" + integrity sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw== + dependencies: + "@shikijs/types" "1.22.0" + "@shikijs/vscode-textmate" "^9.3.0" + oniguruma-to-js "0.4.3" + +"@shikijs/engine-oniguruma@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.0.tgz#74c661fac4cd1f08f2c09b5d6e2fd2a6720d0401" + integrity sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw== + dependencies: + "@shikijs/types" "1.22.0" + "@shikijs/vscode-textmate" "^9.3.0" + +"@shikijs/transformers@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.22.0.tgz#f36fa4d769e36db9a91e09877cf48b3a04d26aba" + integrity sha512-k7iMOYuGQA62KwAuJOQBgH2IQb5vP8uiB3lMvAMGUgAMMurePOx3Z7oNqJdcpxqZP6I9cc7nc4DNqSKduCxmdg== + dependencies: + shiki "1.22.0" + +"@shikijs/types@1.22.0", "@shikijs/types@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.22.0.tgz#d2a572381395c9308b472c8199b8e0289753b9ad" + integrity sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww== + dependencies: + "@shikijs/vscode-textmate" "^9.3.0" + "@types/hast" "^3.0.4" + +"@shikijs/vscode-textmate@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz#b2f1776e488c1d6c2b6cd129bab62f71bbc9c7ab" + integrity sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA== + "@types/estree@1.0.6", "@types/estree@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/hast@^3.0.0", "@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + "@types/json-schema@^7.0.15": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== + "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/markdown-it@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== + dependencies: + "@types/linkify-it" "^5" + "@types/mdurl" "^2" + +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== + "@types/node@>=13.7.0": - version "20.8.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.4.tgz#0e9ebb2ff29d5c3302fc84477d066fa7c6b441aa" - integrity sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A== + version "20.11.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.20.tgz#f0a2aee575215149a62784210ad88b3a34843659" + integrity sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg== dependencies: - undici-types "~5.25.1" + undici-types "~5.26.4" + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== "@types/uuid@^3.4.6": - version "3.4.11" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.11.tgz#201bf1ca5756537886931aac6672c21c1a06f98a" - integrity sha512-CJNkbEu4IdVuBMRVaNC2GjASgJK7ziqDlVXWuJ1pvhOLADl7nzxhTKjHRdOmo2SuXuygcWBmzgYgn9foTX0UiA== + version "3.4.13" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.13.tgz#fe890e517fb840620be284ee213e81d702b1f76b" + integrity sha512-pAeZeUbLE4Z9Vi9wsWV2bYPTweEHeJJy0G4pEjOA/FSvy1Ad5U5Km8iDV6TKre1mjBiVNfAdVHKruP8bAh4Q5A== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@ungap/structured-clone@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-vue@^5.1.4": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4" + integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A== + +"@vue/compiler-core@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.11.tgz#3dcd0c1bab10732f44ab1790735afb03a4b69edc" + integrity sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.11" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.11.tgz#950f8fc610e26326fed008b8d102cc8ee78a6ce5" + integrity sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew== + dependencies: + "@vue/compiler-core" "3.5.11" + "@vue/shared" "3.5.11" + +"@vue/compiler-sfc@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.11.tgz#68ba7bc6fed4fec6892aed118cb3ee8e4b180d06" + integrity sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.11" + "@vue/compiler-dom" "3.5.11" + "@vue/compiler-ssr" "3.5.11" + "@vue/shared" "3.5.11" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.47" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.11.tgz#02d9891c7a649bbf06490ecd8d24dd1575d53e60" + integrity sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA== + dependencies: + "@vue/compiler-dom" "3.5.11" + "@vue/shared" "3.5.11" + +"@vue/devtools-api@^7.4.6": + version "7.4.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.4.6.tgz#5e9249d6de3cee58624e511fdc727837b1f2d273" + integrity sha512-XipBV5k0/IfTr0sNBDTg7OBUCp51cYMMXyPxLXJZ4K/wmUeMqt8cVdr2ZZGOFq+si/jTyCYnNxeKoyev5DOUUA== + dependencies: + "@vue/devtools-kit" "^7.4.6" + +"@vue/devtools-kit@^7.4.6": + version "7.4.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.4.6.tgz#80aa30db65bf5b2b0eda4e818749d3c37d80f709" + integrity sha512-NbYBwPWgEic1AOd9bWExz9weBzFdjiIfov0yRn4DrRfR+EQJCI9dn4I0XS7IxYGdkmUJi8mFW42LLk18WsGqew== + dependencies: + "@vue/devtools-shared" "^7.4.6" + birpc "^0.2.17" + hookable "^5.5.3" + mitt "^3.0.1" + perfect-debounce "^1.0.0" + speakingurl "^14.0.1" + superjson "^2.2.1" + +"@vue/devtools-shared@^7.4.6": + version "7.4.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.4.6.tgz#492c2301caacc83a32542dd95dfcae3980621417" + integrity sha512-rPeSBzElnHYMB05Cc056BQiJpgocQjY8XVulgni+O9a9Gr9tNXgPteSzFFD+fT/iWMxNuUgGKs9CuW5DZewfIg== + dependencies: + rfdc "^1.4.1" + +"@vue/reactivity@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.11.tgz#d27df4fba10c2de1c7234701f18247a775b7a391" + integrity sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w== + dependencies: + "@vue/shared" "3.5.11" + +"@vue/runtime-core@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.11.tgz#7beccd013efe5d33981ffd6b6e05d0a5b9058316" + integrity sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA== + dependencies: + "@vue/reactivity" "3.5.11" + "@vue/shared" "3.5.11" + +"@vue/runtime-dom@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.11.tgz#14a3181ab7057de41b345b4b3d37b744b3ff8ff5" + integrity sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ== + dependencies: + "@vue/reactivity" "3.5.11" + "@vue/runtime-core" "3.5.11" + "@vue/shared" "3.5.11" + csstype "^3.1.3" + +"@vue/server-renderer@3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.11.tgz#74f558371dfc39f3b0f26f95d089a1a4d1676027" + integrity sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA== + dependencies: + "@vue/compiler-ssr" "3.5.11" + "@vue/shared" "3.5.11" + +"@vue/shared@3.5.11", "@vue/shared@^3.5.11": + version "3.5.11" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.11.tgz#464b840afc89be9373addff9eeb9dfc98bf3fe2e" + integrity sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ== + +"@vueuse/core@11.1.0", "@vueuse/core@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-11.1.0.tgz#a104f33c899a15f3b28d3eb7b20738501a3a5035" + integrity sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "11.1.0" + "@vueuse/shared" "11.1.0" + vue-demi ">=0.14.10" + +"@vueuse/integrations@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-11.1.0.tgz#1e2c1d43b2d389fc4b4d0a7ee08091665698b9ad" + integrity sha512-O2ZgrAGPy0qAjpoI2YR3egNgyEqwG85fxfwmA9BshRIGjV4G6yu6CfOPpMHAOoCD+UfsIl7Vb1bXJ6ifrHYDDA== + dependencies: + "@vueuse/core" "11.1.0" + "@vueuse/shared" "11.1.0" + vue-demi ">=0.14.10" + +"@vueuse/metadata@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-11.1.0.tgz#ad367d2a51d985129724425923b3cf95f0faf27b" + integrity sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg== + +"@vueuse/shared@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-11.1.0.tgz#3bfc3aa555c2a456c21945ec7f127d71938d12e8" + integrity sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w== + dependencies: + vue-demi ">=0.14.10" acorn-jsx@^5.3.2: version "5.3.2" @@ -340,6 +976,27 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +algoliasearch@^4.19.1: + version "4.24.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.24.0.tgz#b953b3e2309ef8f25da9de311b95b994ac918275" + integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-account" "4.24.0" + "@algolia/client-analytics" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-personalization" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/recommend" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -395,6 +1052,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +birpc@^0.2.17: + version "0.2.19" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.19.tgz#cdd183a4a70ba103127d49765b4a71349da5a0ca" + integrity sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -432,6 +1094,11 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -440,10 +1107,20 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -467,6 +1144,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + commander@11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" @@ -482,6 +1164,13 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + core-js@3.33.1: version "3.33.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.1.tgz#ef3766cfa382482d0a2c2bc5cb52c6d88805da52" @@ -501,6 +1190,11 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + cucumber-messages@8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/cucumber-messages/-/cucumber-messages-8.0.0.tgz#99766ffe026185798eb80fc8c720d60d8a6ac8cb" @@ -522,6 +1216,18 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +devlop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -547,6 +1253,40 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -641,6 +1381,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -722,6 +1467,13 @@ flowbite@2.3.0: "@popperjs/core" "^2.9.3" mini-svg-data-uri "^1.4.3" +focus-trap@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.0.tgz#7f3edab8135eaca92ab59b6e963eb5cc42ded715" + integrity sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ== + dependencies: + tabbable "^6.2.0" + foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -735,7 +1487,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -815,12 +1567,46 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== dependencies: function-bind "^1.1.2" +hast-util-to-html@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz#a9999a0ba6b4919576a9105129fead85d37f302b" + integrity sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hookable@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + ignore@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" @@ -893,6 +1679,11 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -955,9 +1746,9 @@ lilconfig@^2.1.0: integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== lines-and-columns@^1.1.6: version "1.2.4" @@ -987,15 +1778,74 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== "lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +magic-string@^0.30.11: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +mark.js@8.11.1: + version "8.11.1" + resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" + integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== + +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -1028,6 +1878,16 @@ minimatch@^9.0.1: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minisearch@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.0.tgz#f5830e9109b5919ee7b291c29a304f381aa68770" + integrity sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA== + +mitt@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -1074,6 +1934,13 @@ once@^1.3.0: dependencies: wrappy "1" +oniguruma-to-js@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz#8d899714c21f5c7d59a3c0008ca50e848086d740" + integrity sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ== + dependencies: + regex "^4.3.2" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -1135,10 +2002,20 @@ path-scurry@^1.10.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -picocolors@^1.0.0: +perfect-debounce@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + +picocolors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picocolors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" @@ -1187,9 +2064,9 @@ postcss-nested@^6.0.1: postcss-selector-parser "^6.0.11" postcss-selector-parser@^6.0.11: - version "6.0.14" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3" - integrity sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA== + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -1200,19 +2077,38 @@ postcss-value-parser@^4.0.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.43, postcss@^8.4.47: + version "8.4.47" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.0" + source-map-js "^1.2.1" + +preact@^10.0.0: + version "10.24.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.24.2.tgz#42179771d3b06e7adb884e3f8127ddd3d99b78f6" + integrity sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + protobufjs@^6.8.8: version "6.11.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" @@ -1256,6 +2152,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +regex@^4.3.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/regex/-/regex-4.3.3.tgz#8cda73ccbdfa7c5691881d02f9bb142dba9daa6a" + integrity sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -1275,6 +2176,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + rollup@^4.19.2: version "4.22.5" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.5.tgz#d5108cc470249417e50492456253884d19f5d40f" @@ -1300,6 +2206,31 @@ rollup@^4.19.2: "@rollup/rollup-win32-x64-msvc" "4.22.5" fsevents "~2.3.2" +rollup@^4.20.0: + version "4.24.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05" + integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.24.0" + "@rollup/rollup-android-arm64" "4.24.0" + "@rollup/rollup-darwin-arm64" "4.24.0" + "@rollup/rollup-darwin-x64" "4.24.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.24.0" + "@rollup/rollup-linux-arm-musleabihf" "4.24.0" + "@rollup/rollup-linux-arm64-gnu" "4.24.0" + "@rollup/rollup-linux-arm64-musl" "4.24.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.24.0" + "@rollup/rollup-linux-riscv64-gnu" "4.24.0" + "@rollup/rollup-linux-s390x-gnu" "4.24.0" + "@rollup/rollup-linux-x64-gnu" "4.24.0" + "@rollup/rollup-linux-x64-musl" "4.24.0" + "@rollup/rollup-win32-arm64-msvc" "4.24.0" + "@rollup/rollup-win32-ia32-msvc" "4.24.0" + "@rollup/rollup-win32-x64-msvc" "4.24.0" + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -1324,15 +2255,32 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shiki@1.22.0, shiki@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.22.0.tgz#45d1dfff0e03a598af70e2ec8592f14ef07827b4" + integrity sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw== + dependencies: + "@shikijs/core" "1.22.0" + "@shikijs/engine-javascript" "1.22.0" + "@shikijs/engine-oniguruma" "1.22.0" + "@shikijs/types" "1.22.0" + "@shikijs/vscode-textmate" "^9.3.0" + "@types/hast" "^3.0.4" + signal-exit@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-js@^1.2.0, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-support@^0.5.16: version "0.5.21" @@ -1347,6 +2295,16 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +speakingurl@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" + integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== + "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -1374,6 +2332,14 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -1418,6 +2384,13 @@ sucrase@^3.32.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" +superjson@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== + dependencies: + copy-anything "^3.0.2" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -1430,6 +2403,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + tailwindcss@^3.3.5: version "3.4.13" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.13.tgz#3d11e5510660f99df4f1bfb2d78434666cb8f831" @@ -1477,6 +2455,11 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -1484,6 +2467,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" @@ -1496,10 +2484,48 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -undici-types@~5.25.1: - version "5.25.3" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" - integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" uri-js@^4.2.2: version "4.4.1" @@ -1518,6 +2544,72 @@ uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +vite@^5.4.8: + version "5.4.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8" + integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vitepress@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.4.0.tgz#5e879230d98e5c4e5aec91daade6945bbc18934b" + integrity sha512-JXCv4EsKTDyAFb6C/UjZr7nsGAzZ6mafVk2rx7rG5o8N+B/4QstIk+iEOe/9dKoU6V624UIC6g1pZ+K63rxhlw== + dependencies: + "@docsearch/css" "^3.6.2" + "@docsearch/js" "^3.6.2" + "@shikijs/core" "^1.22.0" + "@shikijs/transformers" "^1.22.0" + "@shikijs/types" "^1.22.0" + "@types/markdown-it" "^14.1.2" + "@vitejs/plugin-vue" "^5.1.4" + "@vue/devtools-api" "^7.4.6" + "@vue/shared" "^3.5.11" + "@vueuse/core" "^11.1.0" + "@vueuse/integrations" "^11.1.0" + focus-trap "^7.6.0" + mark.js "8.11.1" + minisearch "^7.1.0" + shiki "^1.22.0" + vite "^5.4.8" + vue "^3.5.11" + +vue-demi@>=0.14.10: + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue@^3.5.11: + version "3.5.11" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.11.tgz#3e307183797629f701e303a0a008f517ae031483" + integrity sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg== + dependencies: + "@vue/compiler-dom" "3.5.11" + "@vue/compiler-sfc" "3.5.11" + "@vue/runtime-dom" "3.5.11" + "@vue/server-renderer" "3.5.11" + "@vue/shared" "3.5.11" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -1561,11 +2653,16 @@ xml-js@^1.6.11: sax "^1.2.4" yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.0.tgz#2376db1083d157f4b3a452995803dbcf43b08140" + integrity sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ== yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 76d1ee56a8301cd6681dcd29b61203e6336bcae7 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Sat, 12 Oct 2024 20:00:49 +0200 Subject: [PATCH 11/33] Update dependencies (#8501) Pin zeitwerk to `~> 2.6.18` because 2.7.0 only supports Ruby >= 3.2 --- Gemfile | 3 +++ Gemfile.lock | 9 +++++---- gemfiles/rails_70/Gemfile | 3 +++ gemfiles/rails_70/Gemfile.lock | 7 ++++--- gemfiles/rails_71/Gemfile | 3 +++ gemfiles/rails_71/Gemfile.lock | 7 ++++--- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 88ca055ce88..c2ccbde4fb2 100644 --- a/Gemfile +++ b/Gemfile @@ -18,6 +18,9 @@ group :development, :test do gem "cssbundling-rails" gem "importmap-rails" + + # FIXME: relax this dependency when Ruby 3.1 support will be dropped + gem "zeitwerk", "~> 2.6.18" end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 7437921720d..bb1e4cd7ae1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -202,7 +202,7 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - importmap-rails (2.0.1) + importmap-rails (2.0.3) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) @@ -341,7 +341,7 @@ GEM rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-rails (7.0.1) @@ -377,7 +377,7 @@ GEM rack (>= 1.1) rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.0.5) + rubocop-rspec (3.1.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) @@ -463,6 +463,7 @@ DEPENDENCIES sprockets-rails sqlite3 webrick + zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.20 + 2.5.21 diff --git a/gemfiles/rails_70/Gemfile b/gemfiles/rails_70/Gemfile index aed905cb40a..5df7659790f 100644 --- a/gemfiles/rails_70/Gemfile +++ b/gemfiles/rails_70/Gemfile @@ -16,6 +16,9 @@ group :development, :test do gem "cssbundling-rails" gem "importmap-rails" + + # FIXME: relax this dependency when Ruby 3.1 support will be dropped + gem "zeitwerk", "~> 2.6.18" end group :test do diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 18ba860df18..3a073aa2627 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -193,7 +193,7 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - importmap-rails (2.0.1) + importmap-rails (2.0.3) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) @@ -318,7 +318,7 @@ GEM rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-rails (7.0.1) @@ -401,6 +401,7 @@ DEPENDENCIES sprockets-rails sqlite3 (~> 1.7) webrick + zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.20 + 2.5.21 diff --git a/gemfiles/rails_71/Gemfile b/gemfiles/rails_71/Gemfile index e6c5d5b5945..608bcc8deb1 100644 --- a/gemfiles/rails_71/Gemfile +++ b/gemfiles/rails_71/Gemfile @@ -18,6 +18,9 @@ group :development, :test do gem "cssbundling-rails" gem "importmap-rails" + + # FIXME: relax this dependency when Ruby 3.1 support will be dropped + gem "zeitwerk", "~> 2.6.18" end group :test do diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index f9aa99bab68..3c714d47bd3 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -205,7 +205,7 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - importmap-rails (2.0.1) + importmap-rails (2.0.3) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) @@ -343,7 +343,7 @@ GEM rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-rails (7.0.1) @@ -429,6 +429,7 @@ DEPENDENCIES sprockets-rails sqlite3 webrick + zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.20 + 2.5.21 From 68fa728b00fd31aa4c388372092fd1bced0c89c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:31:15 +0200 Subject: [PATCH 12/33] Bump the github_actions group with 2 updates (#8503) Bumps the github_actions group with 2 updates: [tj-actions/changed-files](https://github.com/tj-actions/changed-files) and [actions/configure-pages](https://github.com/actions/configure-pages). Updates `tj-actions/changed-files` from 44 to 45 - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/v44...v45) Updates `actions/configure-pages` from 4 to 5 - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](https://github.com/actions/configure-pages/compare/v4...v5) --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-type: direct:production update-type: version-update:semver-major dependency-group: github_actions - dependency-name: actions/configure-pages dependency-type: direct:production update-type: version-update:semver-major dependency-group: github_actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/docs-deployment.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9dffc7db54b..2ea84fa73d6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -100,7 +100,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: tj-actions/changed-files@v44 + - uses: tj-actions/changed-files@v45 id: changed-files with: files: | diff --git a/.github/workflows/docs-deployment.yml b/.github/workflows/docs-deployment.yml index 664e9961df5..50a4c9ae49b 100644 --- a/.github/workflows/docs-deployment.yml +++ b/.github/workflows/docs-deployment.yml @@ -28,7 +28,7 @@ jobs: with: node-version: 22 cache: yarn - - uses: actions/configure-pages@v4 + - uses: actions/configure-pages@v5 - run: yarn install - run: yarn docs:build - uses: actions/upload-pages-artifact@v3 From 3d7e88a793b333628fef6a19c9e4b6e943cd6f39 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Wed, 16 Oct 2024 00:39:05 -0400 Subject: [PATCH 13/33] Update Rails to address multiple vulnerabilities --- Gemfile.lock | 112 ++++++++++++++++----------------- gemfiles/rails_70/Gemfile.lock | 110 ++++++++++++++++---------------- gemfiles/rails_71/Gemfile.lock | 110 ++++++++++++++++---------------- 3 files changed, 166 insertions(+), 166 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bb1e4cd7ae1..4767fbd7ad2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,29 +14,29 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.2.1) - actionpack (= 7.2.1) - activesupport (= 7.2.1) + actioncable (7.2.1.1) + actionpack (= 7.2.1.1) + activesupport (= 7.2.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.1) - actionpack (= 7.2.1) - activejob (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + actionmailbox (7.2.1.1) + actionpack (= 7.2.1.1) + activejob (= 7.2.1.1) + activerecord (= 7.2.1.1) + activestorage (= 7.2.1.1) + activesupport (= 7.2.1.1) mail (>= 2.8.0) - actionmailer (7.2.1) - actionpack (= 7.2.1) - actionview (= 7.2.1) - activejob (= 7.2.1) - activesupport (= 7.2.1) + actionmailer (7.2.1.1) + actionpack (= 7.2.1.1) + actionview (= 7.2.1.1) + activejob (= 7.2.1.1) + activesupport (= 7.2.1.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.1) - actionview (= 7.2.1) - activesupport (= 7.2.1) + actionpack (7.2.1.1) + actionview (= 7.2.1.1) + activesupport (= 7.2.1.1) nokogiri (>= 1.8.5) racc rack (>= 2.2.4, < 3.2) @@ -45,39 +45,39 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.1) - actionpack (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + actiontext (7.2.1.1) + actionpack (= 7.2.1.1) + activerecord (= 7.2.1.1) + activestorage (= 7.2.1.1) + activesupport (= 7.2.1.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.1) - activesupport (= 7.2.1) + actionview (7.2.1.1) + activesupport (= 7.2.1.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.1) - activesupport (= 7.2.1) + activejob (7.2.1.1) + activesupport (= 7.2.1.1) globalid (>= 0.3.6) - activemodel (7.2.1) - activesupport (= 7.2.1) + activemodel (7.2.1.1) + activesupport (= 7.2.1.1) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.2.1) - activemodel (= 7.2.1) - activesupport (= 7.2.1) + activerecord (7.2.1.1) + activemodel (= 7.2.1.1) + activesupport (= 7.2.1.1) timeout (>= 0.4.0) - activestorage (7.2.1) - actionpack (= 7.2.1) - activejob (= 7.2.1) - activerecord (= 7.2.1) - activesupport (= 7.2.1) + activestorage (7.2.1.1) + actionpack (= 7.2.1.1) + activejob (= 7.2.1.1) + activerecord (= 7.2.1.1) + activesupport (= 7.2.1.1) marcel (~> 1.0) - activesupport (7.2.1) + activesupport (7.2.1.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -248,7 +248,7 @@ GEM mini_mime (1.1.5) minitest (5.25.1) multi_test (1.1.0) - net-imap (0.4.16) + net-imap (0.4.17) date net-protocol net-pop (0.1.2) @@ -279,7 +279,7 @@ GEM pundit (2.4.0) activesupport (>= 3.0.0) racc (1.8.1) - rack (3.1.7) + rack (3.1.8) rack-session (2.0.0) rack (>= 3.0.0) rack-test (2.1.0) @@ -287,20 +287,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.2.1) - actioncable (= 7.2.1) - actionmailbox (= 7.2.1) - actionmailer (= 7.2.1) - actionpack (= 7.2.1) - actiontext (= 7.2.1) - actionview (= 7.2.1) - activejob (= 7.2.1) - activemodel (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + rails (7.2.1.1) + actioncable (= 7.2.1.1) + actionmailbox (= 7.2.1.1) + actionmailer (= 7.2.1.1) + actionpack (= 7.2.1.1) + actiontext (= 7.2.1.1) + actionview (= 7.2.1.1) + activejob (= 7.2.1.1) + activemodel (= 7.2.1.1) + activerecord (= 7.2.1.1) + activestorage (= 7.2.1.1) + activesupport (= 7.2.1.1) bundler (>= 1.15.0) - railties (= 7.2.1) + railties (= 7.2.1.1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -311,9 +311,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.2.1) - actionpack (= 7.2.1) - activesupport (= 7.2.1) + railties (7.2.1.1) + actionpack (= 7.2.1.1) + activesupport (= 7.2.1.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -353,7 +353,7 @@ GEM rspec-mocks (~> 3.13) rspec-support (~> 3.13) rspec-support (3.13.1) - rubocop (1.66.1) + rubocop (1.67.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 3a073aa2627..a1a91177217 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -14,71 +14,71 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.0.8.4) - actionpack (= 7.0.8.4) - activesupport (= 7.0.8.4) + actioncable (7.0.8.5) + actionpack (= 7.0.8.5) + activesupport (= 7.0.8.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8.4) - actionpack (= 7.0.8.4) - activejob (= 7.0.8.4) - activerecord (= 7.0.8.4) - activestorage (= 7.0.8.4) - activesupport (= 7.0.8.4) + actionmailbox (7.0.8.5) + actionpack (= 7.0.8.5) + activejob (= 7.0.8.5) + activerecord (= 7.0.8.5) + activestorage (= 7.0.8.5) + activesupport (= 7.0.8.5) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.8.4) - actionpack (= 7.0.8.4) - actionview (= 7.0.8.4) - activejob (= 7.0.8.4) - activesupport (= 7.0.8.4) + actionmailer (7.0.8.5) + actionpack (= 7.0.8.5) + actionview (= 7.0.8.5) + activejob (= 7.0.8.5) + activesupport (= 7.0.8.5) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.8.4) - actionview (= 7.0.8.4) - activesupport (= 7.0.8.4) + actionpack (7.0.8.5) + actionview (= 7.0.8.5) + activesupport (= 7.0.8.5) 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.8.4) - actionpack (= 7.0.8.4) - activerecord (= 7.0.8.4) - activestorage (= 7.0.8.4) - activesupport (= 7.0.8.4) + actiontext (7.0.8.5) + actionpack (= 7.0.8.5) + activerecord (= 7.0.8.5) + activestorage (= 7.0.8.5) + activesupport (= 7.0.8.5) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.8.4) - activesupport (= 7.0.8.4) + actionview (7.0.8.5) + activesupport (= 7.0.8.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8.4) - activesupport (= 7.0.8.4) + activejob (7.0.8.5) + activesupport (= 7.0.8.5) globalid (>= 0.3.6) - activemodel (7.0.8.4) - activesupport (= 7.0.8.4) + activemodel (7.0.8.5) + activesupport (= 7.0.8.5) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.0.8.4) - activemodel (= 7.0.8.4) - activesupport (= 7.0.8.4) - activestorage (7.0.8.4) - actionpack (= 7.0.8.4) - activejob (= 7.0.8.4) - activerecord (= 7.0.8.4) - activesupport (= 7.0.8.4) + activerecord (7.0.8.5) + activemodel (= 7.0.8.5) + activesupport (= 7.0.8.5) + activestorage (7.0.8.5) + actionpack (= 7.0.8.5) + activejob (= 7.0.8.5) + activerecord (= 7.0.8.5) + activesupport (= 7.0.8.5) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.8.4) + activesupport (7.0.8.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -236,7 +236,7 @@ GEM mini_portile2 (2.8.7) minitest (5.25.1) multi_test (1.1.0) - net-imap (0.4.16) + net-imap (0.4.17) date net-protocol net-pop (0.1.2) @@ -264,23 +264,23 @@ GEM pundit (2.4.0) activesupport (>= 3.0.0) racc (1.8.1) - rack (2.2.9) + rack (2.2.10) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.8.4) - actioncable (= 7.0.8.4) - actionmailbox (= 7.0.8.4) - actionmailer (= 7.0.8.4) - actionpack (= 7.0.8.4) - actiontext (= 7.0.8.4) - actionview (= 7.0.8.4) - activejob (= 7.0.8.4) - activemodel (= 7.0.8.4) - activerecord (= 7.0.8.4) - activestorage (= 7.0.8.4) - activesupport (= 7.0.8.4) + rails (7.0.8.5) + actioncable (= 7.0.8.5) + actionmailbox (= 7.0.8.5) + actionmailer (= 7.0.8.5) + actionpack (= 7.0.8.5) + actiontext (= 7.0.8.5) + actionview (= 7.0.8.5) + activejob (= 7.0.8.5) + activemodel (= 7.0.8.5) + activerecord (= 7.0.8.5) + activestorage (= 7.0.8.5) + activesupport (= 7.0.8.5) bundler (>= 1.15.0) - railties (= 7.0.8.4) + railties (= 7.0.8.5) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -291,9 +291,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.8.4) - actionpack (= 7.0.8.4) - activesupport (= 7.0.8.4) + railties (7.0.8.5) + actionpack (= 7.0.8.5) + activesupport (= 7.0.8.5) method_source rake (>= 12.2) thor (~> 1.0) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 3c714d47bd3..cb750aa0e7d 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -14,35 +14,35 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.1.4) - actionpack (= 7.1.4) - activesupport (= 7.1.4) + actioncable (7.1.4.1) + actionpack (= 7.1.4.1) + activesupport (= 7.1.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.4) - actionpack (= 7.1.4) - activejob (= 7.1.4) - activerecord (= 7.1.4) - activestorage (= 7.1.4) - activesupport (= 7.1.4) + actionmailbox (7.1.4.1) + actionpack (= 7.1.4.1) + activejob (= 7.1.4.1) + activerecord (= 7.1.4.1) + activestorage (= 7.1.4.1) + activesupport (= 7.1.4.1) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.4) - actionpack (= 7.1.4) - actionview (= 7.1.4) - activejob (= 7.1.4) - activesupport (= 7.1.4) + actionmailer (7.1.4.1) + actionpack (= 7.1.4.1) + actionview (= 7.1.4.1) + activejob (= 7.1.4.1) + activesupport (= 7.1.4.1) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.4) - actionview (= 7.1.4) - activesupport (= 7.1.4) + actionpack (7.1.4.1) + actionview (= 7.1.4.1) + activesupport (= 7.1.4.1) nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -50,39 +50,39 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.4) - actionpack (= 7.1.4) - activerecord (= 7.1.4) - activestorage (= 7.1.4) - activesupport (= 7.1.4) + actiontext (7.1.4.1) + actionpack (= 7.1.4.1) + activerecord (= 7.1.4.1) + activestorage (= 7.1.4.1) + activesupport (= 7.1.4.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.4) - activesupport (= 7.1.4) + actionview (7.1.4.1) + activesupport (= 7.1.4.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.4) - activesupport (= 7.1.4) + activejob (7.1.4.1) + activesupport (= 7.1.4.1) globalid (>= 0.3.6) - activemodel (7.1.4) - activesupport (= 7.1.4) + activemodel (7.1.4.1) + activesupport (= 7.1.4.1) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.1.4) - activemodel (= 7.1.4) - activesupport (= 7.1.4) + activerecord (7.1.4.1) + activemodel (= 7.1.4.1) + activesupport (= 7.1.4.1) timeout (>= 0.4.0) - activestorage (7.1.4) - actionpack (= 7.1.4) - activejob (= 7.1.4) - activerecord (= 7.1.4) - activesupport (= 7.1.4) + activestorage (7.1.4.1) + actionpack (= 7.1.4.1) + activejob (= 7.1.4.1) + activerecord (= 7.1.4.1) + activesupport (= 7.1.4.1) marcel (~> 1.0) - activesupport (7.1.4) + activesupport (7.1.4.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -251,7 +251,7 @@ GEM minitest (5.25.1) multi_test (1.1.0) mutex_m (0.2.0) - net-imap (0.4.16) + net-imap (0.4.17) date net-protocol net-pop (0.1.2) @@ -281,7 +281,7 @@ GEM pundit (2.4.0) activesupport (>= 3.0.0) racc (1.8.1) - rack (3.1.7) + rack (3.1.8) rack-session (2.0.0) rack (>= 3.0.0) rack-test (2.1.0) @@ -289,20 +289,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.1.4) - actioncable (= 7.1.4) - actionmailbox (= 7.1.4) - actionmailer (= 7.1.4) - actionpack (= 7.1.4) - actiontext (= 7.1.4) - actionview (= 7.1.4) - activejob (= 7.1.4) - activemodel (= 7.1.4) - activerecord (= 7.1.4) - activestorage (= 7.1.4) - activesupport (= 7.1.4) + rails (7.1.4.1) + actioncable (= 7.1.4.1) + actionmailbox (= 7.1.4.1) + actionmailer (= 7.1.4.1) + actionpack (= 7.1.4.1) + actiontext (= 7.1.4.1) + actionview (= 7.1.4.1) + activejob (= 7.1.4.1) + activemodel (= 7.1.4.1) + activerecord (= 7.1.4.1) + activestorage (= 7.1.4.1) + activesupport (= 7.1.4.1) bundler (>= 1.15.0) - railties (= 7.1.4) + railties (= 7.1.4.1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -313,9 +313,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.1.4) - actionpack (= 7.1.4) - activesupport (= 7.1.4) + railties (7.1.4.1) + actionpack (= 7.1.4.1) + activesupport (= 7.1.4.1) irb rackup (>= 1.0.0) rake (>= 12.2) From 77ec2f9fdc690607e9c93452b6de9ea616ce04a4 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Mon, 28 Oct 2024 09:01:37 +0100 Subject: [PATCH 14/33] Update dependencies (#8517) --- Gemfile.lock | 130 ++++++++++++++++----------------- gemfiles/rails_70/Gemfile.lock | 116 ++++++++++++++--------------- gemfiles/rails_71/Gemfile.lock | 122 +++++++++++++++---------------- 3 files changed, 184 insertions(+), 184 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4767fbd7ad2..11739904d43 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,29 +14,29 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.2.1.1) - actionpack (= 7.2.1.1) - activesupport (= 7.2.1.1) + actioncable (7.2.1.2) + actionpack (= 7.2.1.2) + activesupport (= 7.2.1.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.1.1) - actionpack (= 7.2.1.1) - activejob (= 7.2.1.1) - activerecord (= 7.2.1.1) - activestorage (= 7.2.1.1) - activesupport (= 7.2.1.1) + actionmailbox (7.2.1.2) + actionpack (= 7.2.1.2) + activejob (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) mail (>= 2.8.0) - actionmailer (7.2.1.1) - actionpack (= 7.2.1.1) - actionview (= 7.2.1.1) - activejob (= 7.2.1.1) - activesupport (= 7.2.1.1) + actionmailer (7.2.1.2) + actionpack (= 7.2.1.2) + actionview (= 7.2.1.2) + activejob (= 7.2.1.2) + activesupport (= 7.2.1.2) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.1.1) - actionview (= 7.2.1.1) - activesupport (= 7.2.1.1) + actionpack (7.2.1.2) + actionview (= 7.2.1.2) + activesupport (= 7.2.1.2) nokogiri (>= 1.8.5) racc rack (>= 2.2.4, < 3.2) @@ -45,39 +45,39 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.1.1) - actionpack (= 7.2.1.1) - activerecord (= 7.2.1.1) - activestorage (= 7.2.1.1) - activesupport (= 7.2.1.1) + actiontext (7.2.1.2) + actionpack (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.1.1) - activesupport (= 7.2.1.1) + actionview (7.2.1.2) + activesupport (= 7.2.1.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.1.1) - activesupport (= 7.2.1.1) + activejob (7.2.1.2) + activesupport (= 7.2.1.2) globalid (>= 0.3.6) - activemodel (7.2.1.1) - activesupport (= 7.2.1.1) + activemodel (7.2.1.2) + activesupport (= 7.2.1.2) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.2.1.1) - activemodel (= 7.2.1.1) - activesupport (= 7.2.1.1) + activerecord (7.2.1.2) + activemodel (= 7.2.1.2) + activesupport (= 7.2.1.2) timeout (>= 0.4.0) - activestorage (7.2.1.1) - actionpack (= 7.2.1.1) - activejob (= 7.2.1.1) - activerecord (= 7.2.1.1) - activesupport (= 7.2.1.1) + activestorage (7.2.1.2) + actionpack (= 7.2.1.2) + activejob (= 7.2.1.2) + activerecord (= 7.2.1.2) + activesupport (= 7.2.1.2) marcel (~> 1.0) - activesupport (7.2.1.1) + activesupport (7.2.1.2) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -217,7 +217,7 @@ GEM reline (>= 0.4.2) iso (0.4.0) i18n - json (2.7.2) + json (2.7.4) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -235,7 +235,7 @@ GEM addressable (~> 2.8) childprocess (~> 5.0) logger (1.6.1) - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -248,7 +248,7 @@ GEM mini_mime (1.1.5) minitest (5.25.1) multi_test (1.1.0) - net-imap (0.4.17) + net-imap (0.5.0) date net-protocol net-pop (0.1.2) @@ -287,20 +287,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.2.1.1) - actioncable (= 7.2.1.1) - actionmailbox (= 7.2.1.1) - actionmailer (= 7.2.1.1) - actionpack (= 7.2.1.1) - actiontext (= 7.2.1.1) - actionview (= 7.2.1.1) - activejob (= 7.2.1.1) - activemodel (= 7.2.1.1) - activerecord (= 7.2.1.1) - activestorage (= 7.2.1.1) - activesupport (= 7.2.1.1) + rails (7.2.1.2) + actioncable (= 7.2.1.2) + actionmailbox (= 7.2.1.2) + actionmailer (= 7.2.1.2) + actionpack (= 7.2.1.2) + actiontext (= 7.2.1.2) + actionview (= 7.2.1.2) + activejob (= 7.2.1.2) + activemodel (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) bundler (>= 1.15.0) - railties (= 7.2.1.1) + railties (= 7.2.1.2) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -311,9 +311,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.2.1.1) - actionpack (= 7.2.1.1) - activesupport (= 7.2.1.1) + railties (7.2.1.2) + actionpack (= 7.2.1.2) + activesupport (= 7.2.1.2) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -335,8 +335,8 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.8) - rspec-core (3.13.1) + rexml (3.3.9) + rspec-core (3.13.2) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) @@ -372,12 +372,12 @@ GEM rubocop-performance (1.22.1) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rails (2.26.2) + rubocop-rails (2.27.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.1.0) + rubocop-rspec (3.2.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) @@ -398,10 +398,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.1.0-aarch64-linux-gnu) - sqlite3 (2.1.0-arm64-darwin) - sqlite3 (2.1.0-x86_64-darwin) - sqlite3 (2.1.0-x86_64-linux-gnu) + sqlite3 (2.1.1-aarch64-linux-gnu) + sqlite3 (2.1.1-arm64-darwin) + sqlite3 (2.1.1-x86_64-darwin) + sqlite3 (2.1.1-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -466,4 +466,4 @@ DEPENDENCIES zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.21 + 2.5.22 diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index a1a91177217..37a507576c3 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -14,71 +14,71 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.0.8.5) - actionpack (= 7.0.8.5) - activesupport (= 7.0.8.5) + actioncable (7.0.8.6) + actionpack (= 7.0.8.6) + activesupport (= 7.0.8.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8.5) - actionpack (= 7.0.8.5) - activejob (= 7.0.8.5) - activerecord (= 7.0.8.5) - activestorage (= 7.0.8.5) - activesupport (= 7.0.8.5) + actionmailbox (7.0.8.6) + actionpack (= 7.0.8.6) + activejob (= 7.0.8.6) + activerecord (= 7.0.8.6) + activestorage (= 7.0.8.6) + activesupport (= 7.0.8.6) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.8.5) - actionpack (= 7.0.8.5) - actionview (= 7.0.8.5) - activejob (= 7.0.8.5) - activesupport (= 7.0.8.5) + actionmailer (7.0.8.6) + actionpack (= 7.0.8.6) + actionview (= 7.0.8.6) + activejob (= 7.0.8.6) + activesupport (= 7.0.8.6) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.8.5) - actionview (= 7.0.8.5) - activesupport (= 7.0.8.5) + actionpack (7.0.8.6) + actionview (= 7.0.8.6) + activesupport (= 7.0.8.6) 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.8.5) - actionpack (= 7.0.8.5) - activerecord (= 7.0.8.5) - activestorage (= 7.0.8.5) - activesupport (= 7.0.8.5) + actiontext (7.0.8.6) + actionpack (= 7.0.8.6) + activerecord (= 7.0.8.6) + activestorage (= 7.0.8.6) + activesupport (= 7.0.8.6) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.8.5) - activesupport (= 7.0.8.5) + actionview (7.0.8.6) + activesupport (= 7.0.8.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8.5) - activesupport (= 7.0.8.5) + activejob (7.0.8.6) + activesupport (= 7.0.8.6) globalid (>= 0.3.6) - activemodel (7.0.8.5) - activesupport (= 7.0.8.5) + activemodel (7.0.8.6) + activesupport (= 7.0.8.6) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.0.8.5) - activemodel (= 7.0.8.5) - activesupport (= 7.0.8.5) - activestorage (7.0.8.5) - actionpack (= 7.0.8.5) - activejob (= 7.0.8.5) - activerecord (= 7.0.8.5) - activesupport (= 7.0.8.5) + activerecord (7.0.8.6) + activemodel (= 7.0.8.6) + activesupport (= 7.0.8.6) + activestorage (7.0.8.6) + actionpack (= 7.0.8.6) + activejob (= 7.0.8.6) + activerecord (= 7.0.8.6) + activesupport (= 7.0.8.6) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.8.5) + activesupport (7.0.8.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -221,7 +221,7 @@ GEM addressable (~> 2.8) childprocess (~> 5.0) logger (1.6.1) - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -236,7 +236,7 @@ GEM mini_portile2 (2.8.7) minitest (5.25.1) multi_test (1.1.0) - net-imap (0.4.17) + net-imap (0.5.0) date net-protocol net-pop (0.1.2) @@ -267,20 +267,20 @@ GEM rack (2.2.10) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.8.5) - actioncable (= 7.0.8.5) - actionmailbox (= 7.0.8.5) - actionmailer (= 7.0.8.5) - actionpack (= 7.0.8.5) - actiontext (= 7.0.8.5) - actionview (= 7.0.8.5) - activejob (= 7.0.8.5) - activemodel (= 7.0.8.5) - activerecord (= 7.0.8.5) - activestorage (= 7.0.8.5) - activesupport (= 7.0.8.5) + rails (7.0.8.6) + actioncable (= 7.0.8.6) + actionmailbox (= 7.0.8.6) + actionmailer (= 7.0.8.6) + actionpack (= 7.0.8.6) + actiontext (= 7.0.8.6) + actionview (= 7.0.8.6) + activejob (= 7.0.8.6) + activemodel (= 7.0.8.6) + activerecord (= 7.0.8.6) + activestorage (= 7.0.8.6) + activesupport (= 7.0.8.6) bundler (>= 1.15.0) - railties (= 7.0.8.5) + railties (= 7.0.8.6) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -291,9 +291,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.8.5) - actionpack (= 7.0.8.5) - activesupport (= 7.0.8.5) + railties (7.0.8.6) + actionpack (= 7.0.8.6) + activesupport (= 7.0.8.6) method_source rake (>= 12.2) thor (~> 1.0) @@ -312,8 +312,8 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.8) - rspec-core (3.13.1) + rexml (3.3.9) + rspec-core (3.13.2) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) @@ -404,4 +404,4 @@ DEPENDENCIES zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.21 + 2.5.22 diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index cb750aa0e7d..92abcff1bbe 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -14,35 +14,35 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.1.4.1) - actionpack (= 7.1.4.1) - activesupport (= 7.1.4.1) + actioncable (7.1.4.2) + actionpack (= 7.1.4.2) + activesupport (= 7.1.4.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.4.1) - actionpack (= 7.1.4.1) - activejob (= 7.1.4.1) - activerecord (= 7.1.4.1) - activestorage (= 7.1.4.1) - activesupport (= 7.1.4.1) + actionmailbox (7.1.4.2) + actionpack (= 7.1.4.2) + activejob (= 7.1.4.2) + activerecord (= 7.1.4.2) + activestorage (= 7.1.4.2) + activesupport (= 7.1.4.2) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.4.1) - actionpack (= 7.1.4.1) - actionview (= 7.1.4.1) - activejob (= 7.1.4.1) - activesupport (= 7.1.4.1) + actionmailer (7.1.4.2) + actionpack (= 7.1.4.2) + actionview (= 7.1.4.2) + activejob (= 7.1.4.2) + activesupport (= 7.1.4.2) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.4.1) - actionview (= 7.1.4.1) - activesupport (= 7.1.4.1) + actionpack (7.1.4.2) + actionview (= 7.1.4.2) + activesupport (= 7.1.4.2) nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -50,39 +50,39 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.4.1) - actionpack (= 7.1.4.1) - activerecord (= 7.1.4.1) - activestorage (= 7.1.4.1) - activesupport (= 7.1.4.1) + actiontext (7.1.4.2) + actionpack (= 7.1.4.2) + activerecord (= 7.1.4.2) + activestorage (= 7.1.4.2) + activesupport (= 7.1.4.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.4.1) - activesupport (= 7.1.4.1) + actionview (7.1.4.2) + activesupport (= 7.1.4.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.4.1) - activesupport (= 7.1.4.1) + activejob (7.1.4.2) + activesupport (= 7.1.4.2) globalid (>= 0.3.6) - activemodel (7.1.4.1) - activesupport (= 7.1.4.1) + activemodel (7.1.4.2) + activesupport (= 7.1.4.2) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.1.4.1) - activemodel (= 7.1.4.1) - activesupport (= 7.1.4.1) + activerecord (7.1.4.2) + activemodel (= 7.1.4.2) + activesupport (= 7.1.4.2) timeout (>= 0.4.0) - activestorage (7.1.4.1) - actionpack (= 7.1.4.1) - activejob (= 7.1.4.1) - activerecord (= 7.1.4.1) - activesupport (= 7.1.4.1) + activestorage (7.1.4.2) + actionpack (= 7.1.4.2) + activejob (= 7.1.4.2) + activerecord (= 7.1.4.2) + activesupport (= 7.1.4.2) marcel (~> 1.0) - activesupport (7.1.4.1) + activesupport (7.1.4.2) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -236,7 +236,7 @@ GEM addressable (~> 2.8) childprocess (~> 5.0) logger (1.6.1) - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -251,7 +251,7 @@ GEM minitest (5.25.1) multi_test (1.1.0) mutex_m (0.2.0) - net-imap (0.4.17) + net-imap (0.5.0) date net-protocol net-pop (0.1.2) @@ -289,20 +289,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.1.4.1) - actioncable (= 7.1.4.1) - actionmailbox (= 7.1.4.1) - actionmailer (= 7.1.4.1) - actionpack (= 7.1.4.1) - actiontext (= 7.1.4.1) - actionview (= 7.1.4.1) - activejob (= 7.1.4.1) - activemodel (= 7.1.4.1) - activerecord (= 7.1.4.1) - activestorage (= 7.1.4.1) - activesupport (= 7.1.4.1) + rails (7.1.4.2) + actioncable (= 7.1.4.2) + actionmailbox (= 7.1.4.2) + actionmailer (= 7.1.4.2) + actionpack (= 7.1.4.2) + actiontext (= 7.1.4.2) + actionview (= 7.1.4.2) + activejob (= 7.1.4.2) + activemodel (= 7.1.4.2) + activerecord (= 7.1.4.2) + activestorage (= 7.1.4.2) + activesupport (= 7.1.4.2) bundler (>= 1.15.0) - railties (= 7.1.4.1) + railties (= 7.1.4.2) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -313,9 +313,9 @@ GEM rails-i18n (7.0.9) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.1.4.1) - actionpack (= 7.1.4.1) - activesupport (= 7.1.4.1) + railties (7.1.4.2) + actionpack (= 7.1.4.2) + activesupport (= 7.1.4.2) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -337,8 +337,8 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.8) - rspec-core (3.13.1) + rexml (3.3.9) + rspec-core (3.13.2) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) @@ -372,10 +372,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.1.0) + sqlite3 (2.1.1) mini_portile2 (~> 2.8.0) - sqlite3 (2.1.0-arm64-darwin) - sqlite3 (2.1.0-x86_64-linux-gnu) + sqlite3 (2.1.1-arm64-darwin) + sqlite3 (2.1.1-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -432,4 +432,4 @@ DEPENDENCIES zeitwerk (~> 2.6.18) BUNDLED WITH - 2.5.21 + 2.5.22 From 210344a20f5624d7744492a0df56747c7467f527 Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Mon, 28 Oct 2024 16:43:10 -0400 Subject: [PATCH 15/33] Update outdated dependencies --- Gemfile.lock | 2 +- gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 11739904d43..641a97ef3bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM capybara (>= 3.11, < 4) cucumber (>= 5, < 10) railties (>= 5.2, < 8) - cucumber-tag-expressions (6.1.0) + cucumber-tag-expressions (6.1.1) cuprite (0.15.1) capybara (~> 3.0) ferrum (~> 0.15.0) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 37a507576c3..a5cc4d499d5 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -136,7 +136,7 @@ GEM capybara (>= 3.11, < 4) cucumber (>= 5, < 10) railties (>= 5.2, < 8) - cucumber-tag-expressions (6.1.0) + cucumber-tag-expressions (6.1.1) cuprite (0.15.1) capybara (~> 3.0) ferrum (~> 0.15.0) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 92abcff1bbe..12b047be48c 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -147,7 +147,7 @@ GEM capybara (>= 3.11, < 4) cucumber (>= 5, < 10) railties (>= 5.2, < 8) - cucumber-tag-expressions (6.1.0) + cucumber-tag-expressions (6.1.1) cuprite (0.15.1) capybara (~> 3.0) ferrum (~> 0.15.0) From 00291b0c973fc7eb5ea81973c9cbfe2a9e781eb8 Mon Sep 17 00:00:00 2001 From: "Kyle, Chuang" Date: Fri, 1 Nov 2024 00:23:13 +0800 Subject: [PATCH 16/33] Update zh-TW & ja locale with new v4 keys (#8521) * Update zh-TW locale with new v4 keys * Update ja locale with new v4 keys --- config/locales/ja.yml | 4 ++++ config/locales/zh-TW.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/config/locales/ja.yml b/config/locales/ja.yml index d2544a6e1f8..24587588f84 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -31,6 +31,10 @@ ja: "yes": "はい" "no": "いいえ" "unset": "いいえ" + toggle_dark_mode: "ダークモードを切り替える" + toggle_main_navigation_menu: "メインナビゲーションメニューを切り替える" + toggle_section: "セクションを切り替える" + toggle_user_menu: "ユーザーメニューを切り替える" logout: "ログアウト" powered_by: "Powered by %{active_admin} %{version}" sidebars: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 4c67ebff876..f9c0bdc76fd 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -52,6 +52,10 @@ "yes": "是" "no": "否" "unset": "未知" + toggle_dark_mode: "切換暗黑模式" + toggle_main_navigation_menu: "切換主要導覽" + toggle_section: "切換區塊" + toggle_user_menu: "切換使用者選單" logout: "登出" powered_by: "由 %{active_admin} %{version} 提供" sidebars: From 2866cc6556f02acd2b2f0b5f7977f09609a24762 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 08:57:54 +0100 Subject: [PATCH 17/33] Bump rails-i18n from 7.0.9 to 7.0.10 in /gemfiles/rails_70 in the rails_70 group (#8523) Bump rails-i18n in /gemfiles/rails_70 in the rails_70 group Bumps the rails_70 group in /gemfiles/rails_70 with 1 update: [rails-i18n](https://github.com/svenfuchs/rails-i18n). Updates `rails-i18n` from 7.0.9 to 7.0.10 - [Changelog](https://github.com/svenfuchs/rails-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/svenfuchs/rails-i18n/compare/v7.0.9...v7.0.10) --- updated-dependencies: - dependency-name: rails-i18n dependency-type: direct:development update-type: version-update:semver-patch dependency-group: rails_70 ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gemfiles/rails_70/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index a5cc4d499d5..7109c86cf97 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -288,7 +288,7 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - rails-i18n (7.0.9) + rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) railties (7.0.8.6) From 42695aea848e21cc0947acffeab26192c3977037 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Fri, 1 Nov 2024 08:58:34 +0100 Subject: [PATCH 18/33] Ignore I18n-tasks config (#8522) Prevents i18n-tasks from reporting false positive missing locale keys ``` | all | date.formats | lib/generators/active_admin/install/templates/active_admin.rb.erb:171 | | all | errors.messages.not_saved | app/views/active_admin/devise/shared/_error_messages.html.erb:4 | | all | views.pagination.truncate | app/views/active_admin/kaminari/_gap.html.erb:9 | ``` - Ignore `lib/generators` because they contain an example of date format - Ignore `errors.messages.not_saved` (Devise) - Ignore `views.pagination` (Kaminari) --- config/i18n-tasks.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 014de166713..7ec39d69e1c 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -18,6 +18,7 @@ search: # Files or `File.fnmatch` patterns to exclude from search exclude: - app/assets/images + - lib/generators - tasks/tmp # Guess usages such as t("categories.#{category}.title") @@ -35,3 +36,7 @@ ignore_inconsistent_interpolations: - active_admin.pagination.multiple - active_admin.pagination.multiple_without_total - active_admin.blank_slate.content + +ignore_missing: + - errors.messages.not_saved # Devise + - views.pagination.* # Kaminari From f4008d342a2ee578a27b4e7a62f1b0e164492381 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 15:58:00 +0100 Subject: [PATCH 19/33] Bump the rails_default group with 4 updates (#8525) Bumps the rails_default group with 4 updates: [rails](https://github.com/rails/rails), [rails-i18n](https://github.com/svenfuchs/rails-i18n), [rubocop](https://github.com/rubocop/rubocop) and [railties](https://github.com/rails/rails). Updates `rails` from 7.2.1.2 to 7.2.2 - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v7.2.1.2...v7.2.2) Updates `rails-i18n` from 7.0.9 to 7.0.10 - [Changelog](https://github.com/svenfuchs/rails-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/svenfuchs/rails-i18n/compare/v7.0.9...v7.0.10) Updates `rubocop` from 1.67.0 to 1.68.0 - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.67.0...v1.68.0) Updates `railties` from 7.2.1.2 to 7.2.2 - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v7.2.2/railties/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v7.2.1.2...v7.2.2) --- updated-dependencies: - dependency-name: rails dependency-type: direct:development update-type: version-update:semver-patch dependency-group: rails_default - dependency-name: rails-i18n dependency-type: direct:development update-type: version-update:semver-patch dependency-group: rails_default - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor dependency-group: rails_default - dependency-name: railties dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rails_default ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 120 ++++++++++++++++++++++++++------------------------- 1 file changed, 61 insertions(+), 59 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 641a97ef3bc..3bffa4dbfde 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,29 +14,29 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.2.1.2) - actionpack (= 7.2.1.2) - activesupport (= 7.2.1.2) + actioncable (7.2.2) + actionpack (= 7.2.2) + activesupport (= 7.2.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.1.2) - actionpack (= 7.2.1.2) - activejob (= 7.2.1.2) - activerecord (= 7.2.1.2) - activestorage (= 7.2.1.2) - activesupport (= 7.2.1.2) + actionmailbox (7.2.2) + actionpack (= 7.2.2) + activejob (= 7.2.2) + activerecord (= 7.2.2) + activestorage (= 7.2.2) + activesupport (= 7.2.2) mail (>= 2.8.0) - actionmailer (7.2.1.2) - actionpack (= 7.2.1.2) - actionview (= 7.2.1.2) - activejob (= 7.2.1.2) - activesupport (= 7.2.1.2) + actionmailer (7.2.2) + actionpack (= 7.2.2) + actionview (= 7.2.2) + activejob (= 7.2.2) + activesupport (= 7.2.2) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.1.2) - actionview (= 7.2.1.2) - activesupport (= 7.2.1.2) + actionpack (7.2.2) + actionview (= 7.2.2) + activesupport (= 7.2.2) nokogiri (>= 1.8.5) racc rack (>= 2.2.4, < 3.2) @@ -45,40 +45,41 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.1.2) - actionpack (= 7.2.1.2) - activerecord (= 7.2.1.2) - activestorage (= 7.2.1.2) - activesupport (= 7.2.1.2) + actiontext (7.2.2) + actionpack (= 7.2.2) + activerecord (= 7.2.2) + activestorage (= 7.2.2) + activesupport (= 7.2.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.1.2) - activesupport (= 7.2.1.2) + actionview (7.2.2) + activesupport (= 7.2.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.1.2) - activesupport (= 7.2.1.2) + activejob (7.2.2) + activesupport (= 7.2.2) globalid (>= 0.3.6) - activemodel (7.2.1.2) - activesupport (= 7.2.1.2) + activemodel (7.2.2) + activesupport (= 7.2.2) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.2.1.2) - activemodel (= 7.2.1.2) - activesupport (= 7.2.1.2) + activerecord (7.2.2) + activemodel (= 7.2.2) + activesupport (= 7.2.2) timeout (>= 0.4.0) - activestorage (7.2.1.2) - actionpack (= 7.2.1.2) - activejob (= 7.2.1.2) - activerecord (= 7.2.1.2) - activesupport (= 7.2.1.2) + activestorage (7.2.2) + actionpack (= 7.2.2) + activejob (= 7.2.2) + activerecord (= 7.2.2) + activesupport (= 7.2.2) marcel (~> 1.0) - activesupport (7.2.1.2) + activesupport (7.2.2) base64 + benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) @@ -95,6 +96,7 @@ GEM ast (2.4.2) base64 (0.2.0) bcrypt (3.1.20) + benchmark (0.3.0) bigdecimal (3.1.8) builder (3.3.0) cancancan (3.6.1) @@ -217,7 +219,7 @@ GEM reline (>= 0.4.2) iso (0.4.0) i18n - json (2.7.4) + json (2.7.5) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -257,7 +259,7 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.3) + nio4r (2.7.4) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) nokogiri (1.16.7-arm64-darwin) @@ -270,7 +272,7 @@ GEM parallel (1.26.3) parallel_tests (4.7.2) parallel - parser (3.3.5.0) + parser (3.3.5.1) ast (~> 2.4.1) racc psych (5.1.2) @@ -287,20 +289,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.2.1.2) - actioncable (= 7.2.1.2) - actionmailbox (= 7.2.1.2) - actionmailer (= 7.2.1.2) - actionpack (= 7.2.1.2) - actiontext (= 7.2.1.2) - actionview (= 7.2.1.2) - activejob (= 7.2.1.2) - activemodel (= 7.2.1.2) - activerecord (= 7.2.1.2) - activestorage (= 7.2.1.2) - activesupport (= 7.2.1.2) + rails (7.2.2) + actioncable (= 7.2.2) + actionmailbox (= 7.2.2) + actionmailer (= 7.2.2) + actionpack (= 7.2.2) + actiontext (= 7.2.2) + actionview (= 7.2.2) + activejob (= 7.2.2) + activemodel (= 7.2.2) + activerecord (= 7.2.2) + activestorage (= 7.2.2) + activesupport (= 7.2.2) bundler (>= 1.15.0) - railties (= 7.2.1.2) + railties (= 7.2.2) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -308,12 +310,12 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - rails-i18n (7.0.9) + rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.2.1.2) - actionpack (= 7.2.1.2) - activesupport (= 7.2.1.2) + railties (7.2.2) + actionpack (= 7.2.2) + activesupport (= 7.2.2) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -353,7 +355,7 @@ GEM rspec-mocks (~> 3.13) rspec-support (~> 3.13) rspec-support (3.13.1) - rubocop (1.67.0) + rubocop (1.68.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -363,7 +365,7 @@ GEM rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.3) + rubocop-ast (1.33.0) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) From 19c554e2f6c605923362c046c6317631d4c5b442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 17:13:39 +0100 Subject: [PATCH 20/33] Bump the npm group with 4 updates (#8524) Bumps the npm group with 4 updates: [eslint](https://github.com/eslint/eslint), [rollup](https://github.com/rollup/rollup), [tailwindcss](https://github.com/tailwindlabs/tailwindcss) and [vitepress](https://github.com/vuejs/vitepress). Updates `eslint` from 9.11.1 to 9.13.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.11.1...v9.13.0) Updates `rollup` from 4.22.5 to 4.24.3 - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.22.5...v4.24.3) Updates `tailwindcss` from 3.4.13 to 3.4.14 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14) Updates `vitepress` from 1.4.0 to 1.4.3 - [Release notes](https://github.com/vuejs/vitepress/releases) - [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md) - [Commits](https://github.com/vuejs/vitepress/compare/v1.4.0...v1.4.3) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm - dependency-name: vitepress dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 704 +++++++++++++++++++++++------------------------------- 1 file changed, 299 insertions(+), 405 deletions(-) diff --git a/yarn.lock b/yarn.lock index 02d5739546c..1186f175e88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -340,10 +340,10 @@ debug "^4.3.1" minimatch "^3.1.2" -"@eslint/core@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" - integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== +"@eslint/core@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.7.0.tgz#a1bb4b6a4e742a5ff1894b7ee76fbf884ec72bd3" + integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw== "@eslint/eslintrc@^3.1.0": version "3.1.0" @@ -360,10 +360,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.11.1": - version "9.11.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986" - integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA== +"@eslint/js@9.13.0": + version "9.13.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.13.0.tgz#c5f89bcd57eb54d5d4fa8b77693e9c28dc97e547" + integrity sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -377,15 +377,28 @@ dependencies: levn "^0.4.1" +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.5": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" + "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/retry@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" - integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== +"@humanwhocodes/retry@^0.3.0", "@humanwhocodes/retry@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -449,7 +462,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -530,206 +543,136 @@ resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz#53601d88cda8b1577aa130b4a6e452283605bf26" integrity sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ== -"@rollup/rollup-android-arm-eabi@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.5.tgz#e0f5350845090ca09690fe4a472717f3b8aae225" - integrity sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww== - -"@rollup/rollup-android-arm-eabi@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54" - integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA== - -"@rollup/rollup-android-arm64@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.5.tgz#08270faef6747e2716d3e978a8bbf479f75fb19a" - integrity sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ== - -"@rollup/rollup-android-arm64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e" - integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA== - -"@rollup/rollup-darwin-arm64@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.5.tgz#691671133b350661328d42c8dbdedd56dfb97dfd" - integrity sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw== - -"@rollup/rollup-darwin-arm64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f" - integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA== - -"@rollup/rollup-darwin-x64@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.5.tgz#b2ec52a1615f24b1cd40bc8906ae31af81e8a342" - integrity sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg== - -"@rollup/rollup-darwin-x64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724" - integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.5.tgz#217f01f304808920680bd269002df38e25d9205f" - integrity sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw== - -"@rollup/rollup-linux-arm-gnueabihf@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb" - integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA== - -"@rollup/rollup-linux-arm-musleabihf@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.5.tgz#93ac1c5a1e389f4482a2edaeec41fcffee54a930" - integrity sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ== - -"@rollup/rollup-linux-arm-musleabihf@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3" - integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw== - -"@rollup/rollup-linux-arm64-gnu@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.5.tgz#a7f146787d6041fecc4ecdf1aa72234661ca94a4" - integrity sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w== - -"@rollup/rollup-linux-arm64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496" - integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA== - -"@rollup/rollup-linux-arm64-musl@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.5.tgz#6a37236189648e678bd564d6e8ca798f42cf42c5" - integrity sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw== - -"@rollup/rollup-linux-arm64-musl@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065" - integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw== - -"@rollup/rollup-linux-powerpc64le-gnu@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.5.tgz#5661420dc463bec31ecb2d17d113de858cfcfe2d" - integrity sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w== - -"@rollup/rollup-linux-powerpc64le-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d" - integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw== - -"@rollup/rollup-linux-riscv64-gnu@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.5.tgz#cb00342b7432bdef723aa606281de2f522d6dcf7" - integrity sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A== - -"@rollup/rollup-linux-riscv64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983" - integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg== - -"@rollup/rollup-linux-s390x-gnu@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.5.tgz#0708889674dccecccd28e2befccf791e0767fcb7" - integrity sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ== - -"@rollup/rollup-linux-s390x-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58" - integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g== - -"@rollup/rollup-linux-x64-gnu@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.5.tgz#a135b040b21582e91cfed2267ccfc7d589e1dbc6" - integrity sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA== - -"@rollup/rollup-linux-x64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b" - integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A== - -"@rollup/rollup-linux-x64-musl@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.5.tgz#88395a81a3ab7ee3dc8dc31a73ff62ed3185f34d" - integrity sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g== - -"@rollup/rollup-linux-x64-musl@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127" - integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ== - -"@rollup/rollup-win32-arm64-msvc@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.5.tgz#12ee49233b1125f2c1da38392f63b1dbb0c31bba" - integrity sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w== - -"@rollup/rollup-win32-arm64-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5" - integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ== - -"@rollup/rollup-win32-ia32-msvc@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.5.tgz#0f987b134c6b3123c22842b33ba0c2b6fb78cc3b" - integrity sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg== - -"@rollup/rollup-win32-ia32-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2" - integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ== - -"@rollup/rollup-win32-x64-msvc@4.22.5": - version "4.22.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz#f2feb149235a5dc1deb5439758f8871255e5a161" - integrity sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ== - -"@rollup/rollup-win32-x64-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" - integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== - -"@shikijs/core@1.22.0", "@shikijs/core@^1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.22.0.tgz#74e5d4485e5f7afa85109e322b42e400686f92bb" - integrity sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q== - dependencies: - "@shikijs/engine-javascript" "1.22.0" - "@shikijs/engine-oniguruma" "1.22.0" - "@shikijs/types" "1.22.0" +"@rollup/rollup-android-arm-eabi@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz#49a2a9808074f2683667992aa94b288e0b54fc82" + integrity sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ== + +"@rollup/rollup-android-arm64@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz#197e3bc01c228d3c23591e0fcedca91f8f398ec1" + integrity sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q== + +"@rollup/rollup-darwin-arm64@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz#16772c0309d0dc3cca716580cdac7a1c560ddf46" + integrity sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w== + +"@rollup/rollup-darwin-x64@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz#4e98120a1c4cda7d4043ccce72347cee53784140" + integrity sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow== + +"@rollup/rollup-freebsd-arm64@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz#27145e414986e216e0d9b9a8d488028f33c39566" + integrity sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A== + +"@rollup/rollup-freebsd-x64@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz#67e75fd87a903090f038b212273c492e5ca6b32f" + integrity sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg== + +"@rollup/rollup-linux-arm-gnueabihf@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz#bb45ebadbb9496298ab5461373bde357e8f33e88" + integrity sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A== + +"@rollup/rollup-linux-arm-musleabihf@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz#384276c23feb0a4d6ffa603a9a760decce8b4118" + integrity sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw== + +"@rollup/rollup-linux-arm64-gnu@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz#89e5a4570ddd9eca908324a6de60bd64f904e3f0" + integrity sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ== + +"@rollup/rollup-linux-arm64-musl@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz#9ffd7cd6c6c6670d8c039056d6a49ad9f1f66949" + integrity sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz#4d32ce982e2d25e3b8116336ad5ce6e270b5a024" + integrity sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g== + +"@rollup/rollup-linux-riscv64-gnu@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz#f43d4e0572397e3d3acd82d77d79ce021dea3310" + integrity sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA== + +"@rollup/rollup-linux-s390x-gnu@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz#264f8a4c206173945bdab2a676d638b7945106a9" + integrity sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw== + +"@rollup/rollup-linux-x64-gnu@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz#e86172a407b2edd41540ec2ae636e497fadccff6" + integrity sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ== + +"@rollup/rollup-linux-x64-musl@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz#8ae9bf78986d1b16ccbc89ab6f2dfa96807d3178" + integrity sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw== + +"@rollup/rollup-win32-arm64-msvc@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz#11d6a59f651a3c2a9e5eaab0a99367b77a29c319" + integrity sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA== + +"@rollup/rollup-win32-ia32-msvc@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz#7ff146e53dc6e388b60329b7ec3335501d2b0f98" + integrity sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ== + +"@rollup/rollup-win32-x64-msvc@4.24.3": + version "4.24.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz#7687335781efe6bee14d6ed8eff9746a9f24c9cd" + integrity sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ== + +"@shikijs/core@1.22.2", "@shikijs/core@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.22.2.tgz#9c22bd4cc8a4d6c062461cfd35e1faa6c617ca25" + integrity sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg== + dependencies: + "@shikijs/engine-javascript" "1.22.2" + "@shikijs/engine-oniguruma" "1.22.2" + "@shikijs/types" "1.22.2" "@shikijs/vscode-textmate" "^9.3.0" "@types/hast" "^3.0.4" hast-util-to-html "^9.0.3" -"@shikijs/engine-javascript@1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.22.0.tgz#2e5db29f0421755492f5279f8224ef7a7f907a29" - integrity sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw== +"@shikijs/engine-javascript@1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz#62e90dbd2ed1d78b972ad7d0a1f8ffaaf5e43279" + integrity sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw== dependencies: - "@shikijs/types" "1.22.0" + "@shikijs/types" "1.22.2" "@shikijs/vscode-textmate" "^9.3.0" oniguruma-to-js "0.4.3" -"@shikijs/engine-oniguruma@1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.0.tgz#74c661fac4cd1f08f2c09b5d6e2fd2a6720d0401" - integrity sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw== +"@shikijs/engine-oniguruma@1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz#b12a44e3faf486e19fbcf8952f4b56b9b9b8d9b8" + integrity sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA== dependencies: - "@shikijs/types" "1.22.0" + "@shikijs/types" "1.22.2" "@shikijs/vscode-textmate" "^9.3.0" -"@shikijs/transformers@^1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.22.0.tgz#f36fa4d769e36db9a91e09877cf48b3a04d26aba" - integrity sha512-k7iMOYuGQA62KwAuJOQBgH2IQb5vP8uiB3lMvAMGUgAMMurePOx3Z7oNqJdcpxqZP6I9cc7nc4DNqSKduCxmdg== +"@shikijs/transformers@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.22.2.tgz#1d6c2d6aed9229f96932096dff7eee5facad3f56" + integrity sha512-8f78OiBa6pZDoZ53lYTmuvpFPlWtevn23bzG+azpPVvZg7ITax57o/K3TC91eYL3OMJOO0onPbgnQyZjRos8XQ== dependencies: - shiki "1.22.0" + shiki "1.22.2" -"@shikijs/types@1.22.0", "@shikijs/types@^1.22.0": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.22.0.tgz#d2a572381395c9308b472c8199b8e0289753b9ad" - integrity sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww== +"@shikijs/types@1.22.2", "@shikijs/types@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.22.2.tgz#695a283f19963fe0638fc2646862ba5cfc4623a8" + integrity sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg== dependencies: "@shikijs/vscode-textmate" "^9.3.0" "@types/hast" "^3.0.4" @@ -818,112 +761,112 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4" integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A== -"@vue/compiler-core@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.11.tgz#3dcd0c1bab10732f44ab1790735afb03a4b69edc" - integrity sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg== +"@vue/compiler-core@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.12.tgz#bd70b7dabd12b0b6f31bc53418ba3da77994c437" + integrity sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.11" + "@vue/shared" "3.5.12" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-dom@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.11.tgz#950f8fc610e26326fed008b8d102cc8ee78a6ce5" - integrity sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew== +"@vue/compiler-dom@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz#456d631d11102535b7ee6fd954cf2c93158d0354" + integrity sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg== dependencies: - "@vue/compiler-core" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-core" "3.5.12" + "@vue/shared" "3.5.12" -"@vue/compiler-sfc@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.11.tgz#68ba7bc6fed4fec6892aed118cb3ee8e4b180d06" - integrity sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw== +"@vue/compiler-sfc@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz#6688120d905fcf22f7e44d3cb90f8dabc4dd3cc8" + integrity sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.11" - "@vue/compiler-dom" "3.5.11" - "@vue/compiler-ssr" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-core" "3.5.12" + "@vue/compiler-dom" "3.5.12" + "@vue/compiler-ssr" "3.5.12" + "@vue/shared" "3.5.12" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.47" source-map-js "^1.2.0" -"@vue/compiler-ssr@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.11.tgz#02d9891c7a649bbf06490ecd8d24dd1575d53e60" - integrity sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA== +"@vue/compiler-ssr@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz#5f1a3fbd5c44b79a6dbe88729f7801d9c9218bde" + integrity sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA== dependencies: - "@vue/compiler-dom" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-dom" "3.5.12" + "@vue/shared" "3.5.12" -"@vue/devtools-api@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.4.6.tgz#5e9249d6de3cee58624e511fdc727837b1f2d273" - integrity sha512-XipBV5k0/IfTr0sNBDTg7OBUCp51cYMMXyPxLXJZ4K/wmUeMqt8cVdr2ZZGOFq+si/jTyCYnNxeKoyev5DOUUA== +"@vue/devtools-api@^7.5.4": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.6.2.tgz#9beb95e3faba24aa89b8237f4ac713210a28b6f7" + integrity sha512-NCT0ujqlwAhoFvCsAG7G5qS8w/A/dhvFSt2BhmNxyqgpYDrf9CG1zYyWLQkE3dsZ+5lCT6ULUic2VKNaE07Vzg== dependencies: - "@vue/devtools-kit" "^7.4.6" + "@vue/devtools-kit" "^7.6.2" -"@vue/devtools-kit@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.4.6.tgz#80aa30db65bf5b2b0eda4e818749d3c37d80f709" - integrity sha512-NbYBwPWgEic1AOd9bWExz9weBzFdjiIfov0yRn4DrRfR+EQJCI9dn4I0XS7IxYGdkmUJi8mFW42LLk18WsGqew== +"@vue/devtools-kit@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.6.2.tgz#17f1584c74c0e30fa2086a89e65acbce3fc47945" + integrity sha512-k61BxHRmcTtIQZFouF9QWt9nCCNtSdw12lhg8VNtHq5/XOBGD+ewiK27a40UJ8UPYoCJvi80hbvbYr5E/Zeu1g== dependencies: - "@vue/devtools-shared" "^7.4.6" - birpc "^0.2.17" + "@vue/devtools-shared" "^7.6.2" + birpc "^0.2.19" hookable "^5.5.3" mitt "^3.0.1" perfect-debounce "^1.0.0" speakingurl "^14.0.1" superjson "^2.2.1" -"@vue/devtools-shared@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.4.6.tgz#492c2301caacc83a32542dd95dfcae3980621417" - integrity sha512-rPeSBzElnHYMB05Cc056BQiJpgocQjY8XVulgni+O9a9Gr9tNXgPteSzFFD+fT/iWMxNuUgGKs9CuW5DZewfIg== +"@vue/devtools-shared@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.6.2.tgz#585769040c3a84a641087fb722377a526b70b59d" + integrity sha512-lcjyJ7hCC0W0kNwnCGMLVTMvDLoZgjcq9BvboPgS+6jQyDul7fpzRSKTGtGhCHoxrDox7qBAKGbAl2Rcf7GE1A== dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.11.tgz#d27df4fba10c2de1c7234701f18247a775b7a391" - integrity sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w== +"@vue/reactivity@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.12.tgz#a2815d91842ed7b9e7e7936c851923caf6b6e603" + integrity sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg== dependencies: - "@vue/shared" "3.5.11" + "@vue/shared" "3.5.12" -"@vue/runtime-core@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.11.tgz#7beccd013efe5d33981ffd6b6e05d0a5b9058316" - integrity sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA== +"@vue/runtime-core@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.12.tgz#849207f203d0fd82971f19574d30dbe7134c78c7" + integrity sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw== dependencies: - "@vue/reactivity" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/reactivity" "3.5.12" + "@vue/shared" "3.5.12" -"@vue/runtime-dom@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.11.tgz#14a3181ab7057de41b345b4b3d37b744b3ff8ff5" - integrity sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ== +"@vue/runtime-dom@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz#6d4de3df49a90a460b311b1100baa5e2d0d1c8c9" + integrity sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA== dependencies: - "@vue/reactivity" "3.5.11" - "@vue/runtime-core" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/reactivity" "3.5.12" + "@vue/runtime-core" "3.5.12" + "@vue/shared" "3.5.12" csstype "^3.1.3" -"@vue/server-renderer@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.11.tgz#74f558371dfc39f3b0f26f95d089a1a4d1676027" - integrity sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA== +"@vue/server-renderer@3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.12.tgz#79c6bc3860e4e4ef80d85653c5d03fd94b26574e" + integrity sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg== dependencies: - "@vue/compiler-ssr" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-ssr" "3.5.12" + "@vue/shared" "3.5.12" -"@vue/shared@3.5.11", "@vue/shared@^3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.11.tgz#464b840afc89be9373addff9eeb9dfc98bf3fe2e" - integrity sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ== +"@vue/shared@3.5.12", "@vue/shared@^3.5.12": + version "3.5.12" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.12.tgz#f9e45b7f63f2c3f40d84237b1194b7f67de192e3" + integrity sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg== "@vueuse/core@11.1.0", "@vueuse/core@^11.1.0": version "11.1.0" @@ -961,10 +904,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.12.0: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== +acorn@^8.14.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== ajv@^6.12.4: version "6.12.6" @@ -1052,7 +995,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -birpc@^0.2.17: +birpc@^0.2.19: version "0.2.19" resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.19.tgz#cdd183a4a70ba103127d49765b4a71349da5a0ca" integrity sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ== @@ -1292,10 +1235,10 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-scope@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" - integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== +eslint-scope@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1305,26 +1248,26 @@ eslint-visitor-keys@^3.3.0: 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-visitor-keys@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" - integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== +eslint-visitor-keys@^4.1.0, eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== eslint@^9.8.0: - version "9.11.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567" - integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg== + version "9.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.13.0.tgz#7659014b7dda1ff876ecbd990f726e11c61596e6" + integrity sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" - "@eslint/core" "^0.6.0" + "@eslint/core" "^0.7.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.11.1" + "@eslint/js" "9.13.0" "@eslint/plugin-kit" "^0.2.0" + "@humanfs/node" "^0.16.5" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.3.0" - "@nodelib/fs.walk" "^1.2.8" + "@humanwhocodes/retry" "^0.3.1" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" @@ -1332,9 +1275,9 @@ eslint@^9.8.0: cross-spawn "^7.0.2" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.0.2" - eslint-visitor-keys "^4.0.0" - espree "^10.1.0" + eslint-scope "^8.1.0" + eslint-visitor-keys "^4.1.0" + espree "^10.2.0" esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1344,23 +1287,21 @@ eslint@^9.8.0: ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - is-path-inside "^3.0.3" json-stable-stringify-without-jsonify "^1.0.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^10.0.1, espree@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" - integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== +espree@^10.0.1, espree@^10.2.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== dependencies: - acorn "^8.12.0" + acorn "^8.14.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.0.0" + eslint-visitor-keys "^4.2.0" esquery@^1.5.0: version "1.6.0" @@ -1674,11 +1615,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-what@^4.1.8: version "4.1.16" resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" @@ -2007,12 +1943,7 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - -picocolors@^1.1.0: +picocolors@^1.0.0, picocolors@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== @@ -2076,16 +2007,7 @@ postcss-value-parser@^4.0.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23: - version "8.4.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" - integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.43, postcss@^8.4.47: +postcss@^8.4.23, postcss@^8.4.43, postcss@^8.4.47: version "8.4.47" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== @@ -2181,54 +2103,31 @@ rfdc@^1.4.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -rollup@^4.19.2: - version "4.22.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.5.tgz#d5108cc470249417e50492456253884d19f5d40f" - integrity sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w== +rollup@^4.19.2, rollup@^4.20.0: + version "4.24.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.3.tgz#8b259063740af60b0030315f88665ba2041789b8" + integrity sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg== dependencies: "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.22.5" - "@rollup/rollup-android-arm64" "4.22.5" - "@rollup/rollup-darwin-arm64" "4.22.5" - "@rollup/rollup-darwin-x64" "4.22.5" - "@rollup/rollup-linux-arm-gnueabihf" "4.22.5" - "@rollup/rollup-linux-arm-musleabihf" "4.22.5" - "@rollup/rollup-linux-arm64-gnu" "4.22.5" - "@rollup/rollup-linux-arm64-musl" "4.22.5" - "@rollup/rollup-linux-powerpc64le-gnu" "4.22.5" - "@rollup/rollup-linux-riscv64-gnu" "4.22.5" - "@rollup/rollup-linux-s390x-gnu" "4.22.5" - "@rollup/rollup-linux-x64-gnu" "4.22.5" - "@rollup/rollup-linux-x64-musl" "4.22.5" - "@rollup/rollup-win32-arm64-msvc" "4.22.5" - "@rollup/rollup-win32-ia32-msvc" "4.22.5" - "@rollup/rollup-win32-x64-msvc" "4.22.5" - fsevents "~2.3.2" - -rollup@^4.20.0: - version "4.24.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05" - integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.24.0" - "@rollup/rollup-android-arm64" "4.24.0" - "@rollup/rollup-darwin-arm64" "4.24.0" - "@rollup/rollup-darwin-x64" "4.24.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.24.0" - "@rollup/rollup-linux-arm-musleabihf" "4.24.0" - "@rollup/rollup-linux-arm64-gnu" "4.24.0" - "@rollup/rollup-linux-arm64-musl" "4.24.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.24.0" - "@rollup/rollup-linux-riscv64-gnu" "4.24.0" - "@rollup/rollup-linux-s390x-gnu" "4.24.0" - "@rollup/rollup-linux-x64-gnu" "4.24.0" - "@rollup/rollup-linux-x64-musl" "4.24.0" - "@rollup/rollup-win32-arm64-msvc" "4.24.0" - "@rollup/rollup-win32-ia32-msvc" "4.24.0" - "@rollup/rollup-win32-x64-msvc" "4.24.0" + "@rollup/rollup-android-arm-eabi" "4.24.3" + "@rollup/rollup-android-arm64" "4.24.3" + "@rollup/rollup-darwin-arm64" "4.24.3" + "@rollup/rollup-darwin-x64" "4.24.3" + "@rollup/rollup-freebsd-arm64" "4.24.3" + "@rollup/rollup-freebsd-x64" "4.24.3" + "@rollup/rollup-linux-arm-gnueabihf" "4.24.3" + "@rollup/rollup-linux-arm-musleabihf" "4.24.3" + "@rollup/rollup-linux-arm64-gnu" "4.24.3" + "@rollup/rollup-linux-arm64-musl" "4.24.3" + "@rollup/rollup-linux-powerpc64le-gnu" "4.24.3" + "@rollup/rollup-linux-riscv64-gnu" "4.24.3" + "@rollup/rollup-linux-s390x-gnu" "4.24.3" + "@rollup/rollup-linux-x64-gnu" "4.24.3" + "@rollup/rollup-linux-x64-musl" "4.24.3" + "@rollup/rollup-win32-arm64-msvc" "4.24.3" + "@rollup/rollup-win32-ia32-msvc" "4.24.3" + "@rollup/rollup-win32-x64-msvc" "4.24.3" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -2255,15 +2154,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shiki@1.22.0, shiki@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.22.0.tgz#45d1dfff0e03a598af70e2ec8592f14ef07827b4" - integrity sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw== +shiki@1.22.2, shiki@^1.22.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.22.2.tgz#ed109a3d0850504ad5a1edf8496470a2121c5b7b" + integrity sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA== dependencies: - "@shikijs/core" "1.22.0" - "@shikijs/engine-javascript" "1.22.0" - "@shikijs/engine-oniguruma" "1.22.0" - "@shikijs/types" "1.22.0" + "@shikijs/core" "1.22.2" + "@shikijs/engine-javascript" "1.22.2" + "@shikijs/engine-oniguruma" "1.22.2" + "@shikijs/types" "1.22.2" "@shikijs/vscode-textmate" "^9.3.0" "@types/hast" "^3.0.4" @@ -2272,11 +2171,6 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -source-map-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== - source-map-js@^1.2.0, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" @@ -2409,9 +2303,9 @@ tabbable@^6.2.0: integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== tailwindcss@^3.3.5: - version "3.4.13" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.13.tgz#3d11e5510660f99df4f1bfb2d78434666cb8f831" - integrity sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw== + version "3.4.14" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.14.tgz#6dd23a7f54ec197b19159e91e3bb1e55e7aa73ac" + integrity sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -2560,10 +2454,10 @@ vfile@^6.0.0: "@types/unist" "^3.0.0" vfile-message "^4.0.0" -vite@^5.4.8: - version "5.4.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8" - integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ== +vite@^5.4.10: + version "5.4.10" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.10.tgz#d358a7bd8beda6cf0f3b7a450a8c7693a4f80c18" + integrity sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ== dependencies: esbuild "^0.21.3" postcss "^8.4.43" @@ -2572,43 +2466,43 @@ vite@^5.4.8: fsevents "~2.3.3" vitepress@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.4.0.tgz#5e879230d98e5c4e5aec91daade6945bbc18934b" - integrity sha512-JXCv4EsKTDyAFb6C/UjZr7nsGAzZ6mafVk2rx7rG5o8N+B/4QstIk+iEOe/9dKoU6V624UIC6g1pZ+K63rxhlw== + version "1.4.3" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.4.3.tgz#2658ad684c776762694a160a8e2777dd2e797a6a" + integrity sha512-956c2K2Mr0ubY9bTc2lCJD3g0mgo0mARB1iJC/BqUt4s0AM8Wl60wSU4zbFnzV7X2miFK1XJDKzGZnuEN90umw== dependencies: "@docsearch/css" "^3.6.2" "@docsearch/js" "^3.6.2" - "@shikijs/core" "^1.22.0" - "@shikijs/transformers" "^1.22.0" - "@shikijs/types" "^1.22.0" + "@shikijs/core" "^1.22.2" + "@shikijs/transformers" "^1.22.2" + "@shikijs/types" "^1.22.2" "@types/markdown-it" "^14.1.2" "@vitejs/plugin-vue" "^5.1.4" - "@vue/devtools-api" "^7.4.6" - "@vue/shared" "^3.5.11" + "@vue/devtools-api" "^7.5.4" + "@vue/shared" "^3.5.12" "@vueuse/core" "^11.1.0" "@vueuse/integrations" "^11.1.0" focus-trap "^7.6.0" mark.js "8.11.1" minisearch "^7.1.0" - shiki "^1.22.0" - vite "^5.4.8" - vue "^3.5.11" + shiki "^1.22.2" + vite "^5.4.10" + vue "^3.5.12" vue-demi@>=0.14.10: version "0.14.10" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue@^3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.11.tgz#3e307183797629f701e303a0a008f517ae031483" - integrity sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg== +vue@^3.5.12: + version "3.5.12" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.12.tgz#e08421c601b3617ea2c9ef0413afcc747130b36c" + integrity sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg== dependencies: - "@vue/compiler-dom" "3.5.11" - "@vue/compiler-sfc" "3.5.11" - "@vue/runtime-dom" "3.5.11" - "@vue/server-renderer" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-dom" "3.5.12" + "@vue/compiler-sfc" "3.5.12" + "@vue/runtime-dom" "3.5.12" + "@vue/server-renderer" "3.5.12" + "@vue/shared" "3.5.12" which@^2.0.1: version "2.0.2" From b86bbbf95fb36f538e97d63788969b2eb82b475a Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Sat, 2 Nov 2024 18:42:06 +0100 Subject: [PATCH 21/33] Update dependencies (#8529) --- Gemfile.lock | 15 ++-- gemfiles/rails_70/Gemfile.lock | 8 +- gemfiles/rails_71/Gemfile.lock | 130 +++++++++++++++++---------------- 3 files changed, 78 insertions(+), 75 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3bffa4dbfde..c38085e62ec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -153,7 +153,7 @@ GEM activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) - date (3.3.4) + date (3.4.0) devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -286,9 +286,8 @@ GEM rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) - rackup (2.1.0) + rackup (2.2.0) rack (>= 3) - webrick (~> 1.8) rails (7.2.2) actioncable (= 7.2.2) actionmailbox (= 7.2.2) @@ -400,10 +399,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.1.1-aarch64-linux-gnu) - sqlite3 (2.1.1-arm64-darwin) - sqlite3 (2.1.1-x86_64-darwin) - sqlite3 (2.1.1-x86_64-linux-gnu) + sqlite3 (2.2.0-aarch64-linux-gnu) + sqlite3 (2.2.0-arm64-darwin) + sqlite3 (2.2.0-x86_64-darwin) + sqlite3 (2.2.0-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -417,7 +416,7 @@ GEM useragent (0.16.10) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.2) + webrick (1.9.0) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 7109c86cf97..2070470b45d 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -144,7 +144,7 @@ GEM activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) - date (3.3.4) + date (3.4.0) devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -245,7 +245,7 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.3) + nio4r (2.7.4) nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -257,7 +257,7 @@ GEM parallel (1.26.3) parallel_tests (4.7.2) parallel - parser (3.3.5.0) + parser (3.3.5.1) ast (~> 2.4.1) racc public_suffix (6.0.1) @@ -362,7 +362,7 @@ GEM unicode-display_width (2.6.0) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.2) + webrick (1.9.0) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 12b047be48c..64b1e8e00ca 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -14,35 +14,35 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.1.4.2) - actionpack (= 7.1.4.2) - activesupport (= 7.1.4.2) + actioncable (7.1.5) + actionpack (= 7.1.5) + activesupport (= 7.1.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.4.2) - actionpack (= 7.1.4.2) - activejob (= 7.1.4.2) - activerecord (= 7.1.4.2) - activestorage (= 7.1.4.2) - activesupport (= 7.1.4.2) + actionmailbox (7.1.5) + actionpack (= 7.1.5) + activejob (= 7.1.5) + activerecord (= 7.1.5) + activestorage (= 7.1.5) + activesupport (= 7.1.5) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.4.2) - actionpack (= 7.1.4.2) - actionview (= 7.1.4.2) - activejob (= 7.1.4.2) - activesupport (= 7.1.4.2) + actionmailer (7.1.5) + actionpack (= 7.1.5) + actionview (= 7.1.5) + activejob (= 7.1.5) + activesupport (= 7.1.5) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.4.2) - actionview (= 7.1.4.2) - activesupport (= 7.1.4.2) + actionpack (7.1.5) + actionview (= 7.1.5) + activesupport (= 7.1.5) nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -50,47 +50,50 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.4.2) - actionpack (= 7.1.4.2) - activerecord (= 7.1.4.2) - activestorage (= 7.1.4.2) - activesupport (= 7.1.4.2) + actiontext (7.1.5) + actionpack (= 7.1.5) + activerecord (= 7.1.5) + activestorage (= 7.1.5) + activesupport (= 7.1.5) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.4.2) - activesupport (= 7.1.4.2) + actionview (7.1.5) + activesupport (= 7.1.5) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.4.2) - activesupport (= 7.1.4.2) + activejob (7.1.5) + activesupport (= 7.1.5) globalid (>= 0.3.6) - activemodel (7.1.4.2) - activesupport (= 7.1.4.2) + activemodel (7.1.5) + activesupport (= 7.1.5) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (7.1.4.2) - activemodel (= 7.1.4.2) - activesupport (= 7.1.4.2) + activerecord (7.1.5) + activemodel (= 7.1.5) + activesupport (= 7.1.5) timeout (>= 0.4.0) - activestorage (7.1.4.2) - actionpack (= 7.1.4.2) - activejob (= 7.1.4.2) - activerecord (= 7.1.4.2) - activesupport (= 7.1.4.2) + activestorage (7.1.5) + actionpack (= 7.1.5) + activejob (= 7.1.5) + activerecord (= 7.1.5) + activesupport (= 7.1.5) marcel (~> 1.0) - activesupport (7.1.4.2) + activesupport (7.1.5) base64 + benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) mutex_m + securerandom (>= 0.3) tzinfo (~> 2.0) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) @@ -99,6 +102,7 @@ GEM ast (2.4.2) base64 (0.2.0) bcrypt (3.1.20) + benchmark (0.3.0) bigdecimal (3.1.8) builder (3.3.0) cancancan (3.6.1) @@ -155,7 +159,7 @@ GEM activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) - date (3.3.4) + date (3.4.0) devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -260,7 +264,7 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.3) + nio4r (2.7.4) nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -272,7 +276,7 @@ GEM parallel (1.26.3) parallel_tests (4.7.2) parallel - parser (3.3.5.0) + parser (3.3.5.1) ast (~> 2.4.1) racc psych (5.1.2) @@ -286,23 +290,22 @@ GEM rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) - rackup (2.1.0) + rackup (2.2.0) rack (>= 3) - webrick (~> 1.8) - rails (7.1.4.2) - actioncable (= 7.1.4.2) - actionmailbox (= 7.1.4.2) - actionmailer (= 7.1.4.2) - actionpack (= 7.1.4.2) - actiontext (= 7.1.4.2) - actionview (= 7.1.4.2) - activejob (= 7.1.4.2) - activemodel (= 7.1.4.2) - activerecord (= 7.1.4.2) - activestorage (= 7.1.4.2) - activesupport (= 7.1.4.2) + rails (7.1.5) + actioncable (= 7.1.5) + actionmailbox (= 7.1.5) + actionmailer (= 7.1.5) + actionpack (= 7.1.5) + actiontext (= 7.1.5) + actionview (= 7.1.5) + activejob (= 7.1.5) + activemodel (= 7.1.5) + activerecord (= 7.1.5) + activestorage (= 7.1.5) + activesupport (= 7.1.5) bundler (>= 1.15.0) - railties (= 7.1.4.2) + railties (= 7.1.5) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -310,12 +313,12 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - rails-i18n (7.0.9) + rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.1.4.2) - actionpack (= 7.1.4.2) - activesupport (= 7.1.4.2) + railties (7.1.5) + actionpack (= 7.1.5) + activesupport (= 7.1.5) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -356,6 +359,7 @@ GEM rspec-support (~> 3.13) rspec-support (3.13.1) ruby2_keywords (0.0.5) + securerandom (0.3.1) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) @@ -372,10 +376,10 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (2.1.1) + sqlite3 (2.2.0) mini_portile2 (~> 2.8.0) - sqlite3 (2.1.1-arm64-darwin) - sqlite3 (2.1.1-x86_64-linux-gnu) + sqlite3 (2.2.0-arm64-darwin) + sqlite3 (2.2.0-x86_64-linux-gnu) stringio (3.1.1) sys-uname (1.3.0) ffi (~> 1.1) @@ -388,7 +392,7 @@ GEM unicode-display_width (2.6.0) warden (1.2.9) rack (>= 2.0.9) - webrick (1.8.2) + webrick (1.9.0) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) From a19acfba4b58b106ac354bba1ee4a876bbe40f80 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Sat, 2 Nov 2024 18:46:51 +0100 Subject: [PATCH 22/33] Remove redundant safe navigation operator (#8528) Remove redundant safe navigation operator (`&.`) in `result.to_s.strip.present?` check, as `to_s` handles `nil` gracefully by converting it to an empty string. This makes the code cleaner and more idiomatic without altering behavior. Ref: https://ruby-doc.org/core-3.1.0/Object.html#method-i-to_s --- app/helpers/active_admin/display_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/active_admin/display_helper.rb b/app/helpers/active_admin/display_helper.rb index f86172af422..2e2b87575f5 100644 --- a/app/helpers/active_admin/display_helper.rb +++ b/app/helpers/active_admin/display_helper.rb @@ -24,7 +24,7 @@ def DISPLAY_NAME_FALLBACK.inspect def display_name(resource) unless resource.nil? result = render_in_context(resource, display_name_method_for(resource)) - if result.to_s&.strip&.present? + if result.to_s.strip.present? ERB::Util.html_escape(result) else ERB::Util.html_escape(render_in_context(resource, DISPLAY_NAME_FALLBACK)) From 006abfcdd9ee5d569e54505db6c4db25ec4218e6 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Sat, 2 Nov 2024 23:00:41 +0100 Subject: [PATCH 23/33] Use safe navigation for `pundit_default_policy` (#8530) Use the safe navigation operator (`&.`) to streamline the `pundit_default_policy` constantization check, removing the need for a redundant `&&`. This change is now possible as the codebase no longer requires Ruby 2.3 support, which did not yet support safe navigation. The previous implementation was added in commit c93f6f4 to ensure compatibility with older Ruby versions. Also add the safe navigation operator to a subsequent usage of `default_policy_class` --- lib/active_admin/pundit_adapter.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/active_admin/pundit_adapter.rb b/lib/active_admin/pundit_adapter.rb index 5dccb2651e8..c81abe11ce4 100644 --- a/lib/active_admin/pundit_adapter.rb +++ b/lib/active_admin/pundit_adapter.rb @@ -23,7 +23,7 @@ def scope_collection(collection, action = Auth::READ) # which means there is no way how to scope other actions Pundit.policy_scope!(user, namespace(collection)) rescue Pundit::NotDefinedError => e - if default_policy_class && default_policy_class.const_defined?(:Scope) + if default_policy_class&.const_defined?(:Scope) default_policy_class::Scope.new(user, collection).resolve else raise e @@ -95,7 +95,7 @@ def namespace(object) end def default_policy_class - ActiveAdmin.application.pundit_default_policy && ActiveAdmin.application.pundit_default_policy.constantize + ActiveAdmin.application.pundit_default_policy&.constantize end def default_policy(subject) From 25a6b3668e0e18b91d30aefba51dcd242757bd1e Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Thu, 7 Nov 2024 20:34:44 +0100 Subject: [PATCH 24/33] Use safe navigation operator in layout helper (#8533) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace a logic `&&` with safe navigation operator now that Ruby < 2.3 support is not required anymore Benchmark (Ruby 3.3.5 x64 / M1 Pro): ``` Comparison (not `nil`): &.: 18787752.0 i/s &&: 17963968.8 i/s - 1.05x (± 0.00) slower Comparison (`nil`): &&: 21343215.5 i/s &.: 20910008.5 i/s - 1.02x (± 0.00) slower ``` Ref: #8530 --- app/helpers/active_admin/layout_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/active_admin/layout_helper.rb b/app/helpers/active_admin/layout_helper.rb index 54ed032c180..cb50ac5fb1a 100644 --- a/app/helpers/active_admin/layout_helper.rb +++ b/app/helpers/active_admin/layout_helper.rb @@ -22,7 +22,7 @@ def html_head_site_title(separator: "-") def action_items_for_action @action_items_for_action ||= begin - if active_admin_config && active_admin_config.action_items? + if active_admin_config&.action_items? active_admin_config.action_items_for(params[:action], self) else [] @@ -32,7 +32,7 @@ def action_items_for_action def sidebar_sections_for_action @sidebar_sections_for_action ||= begin - if active_admin_config && active_admin_config.sidebar_sections? + if active_admin_config&.sidebar_sections? active_admin_config.sidebar_sections_for(params[:action], self) else [] From 276c9bf6f094568264e9a4321c178bf838f2a006 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:30:49 -0500 Subject: [PATCH 25/33] Bump @eslint/plugin-kit from 0.2.0 to 0.2.3 (#8542) Bumps [@eslint/plugin-kit](https://github.com/eslint/rewrite) from 0.2.0 to 0.2.3. - [Release notes](https://github.com/eslint/rewrite/releases) - [Changelog](https://github.com/eslint/rewrite/blob/main/release-please-config.json) - [Commits](https://github.com/eslint/rewrite/compare/core-v0.2.0...plugin-kit-v0.2.3) --- updated-dependencies: - dependency-name: "@eslint/plugin-kit" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1186f175e88..1ed84f22139 100644 --- a/yarn.lock +++ b/yarn.lock @@ -371,9 +371,9 @@ integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== "@eslint/plugin-kit@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" - integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== + version "0.2.3" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz#812980a6a41ecf3a8341719f92a6d1e784a2e0e8" + integrity sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA== dependencies: levn "^0.4.1" From 22c6f1f28f9437b0354df00744e6fb7a086b9099 Mon Sep 17 00:00:00 2001 From: iuhoay Date: Sun, 17 Nov 2024 23:46:04 +0800 Subject: [PATCH 26/33] Update zh-CN locale with new v4 keys (#8546) --- config/locales/zh-CN.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 35ed684a47e..09d30f66a0c 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -52,6 +52,10 @@ "yes": "是" "no": "否" "unset": "否" + toggle_dark_mode: "切换深色模式" + toggle_main_navigation_menu: "切换主导航" + toggle_section: "切换区块" + toggle_user_menu: "切换用户菜单" logout: "退出" powered_by: "构建程序为 %{active_admin} %{version}" sidebars: From e501ba7b9c068ac05320a6ebf69e2db7ac09614f Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Sun, 17 Nov 2024 17:15:35 +0100 Subject: [PATCH 27/33] Fix reference to beta 13 (#8544) Fix reference to beta 13 in upgrading guide [ci skip] --- UPGRADING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UPGRADING.md b/UPGRADING.md index facccc5a64e..e101c3f612e 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -8,14 +8,14 @@ ActiveAdmin v4 uses TailwindCSS. It has **mobile web, dark mode and RTL support* These instructions assume the `cssbundling-rails` and `importmap-rails` gems are already installed and you have run their install commands in your app. If you haven't done so, please do before continuing. -Update your `Gemfile` with `gem "activeadmin", "4.0.0.beta12"` and then run `gem install activeadmin --pre`. +Update your `Gemfile` with `gem "activeadmin", "4.0.0.beta13"` and then run `gem install activeadmin --pre`. Now, run `rails generate active_admin:assets` to replace the old assets with the new files. Then add the npm package and update the `build:css` script. ``` -yarn add @activeadmin/activeadmin@4.0.0-beta12 +yarn add @activeadmin/activeadmin@4.0.0-beta13 npm pkg set scripts.build:css="tailwindcss -i ./app/assets/stylesheets/active_admin.css -o ./app/assets/builds/active_admin.css --minify -c tailwind-active_admin.config.js" ``` From 14b2df8ab5b25b5a21c34fe0fcca3e35ec129da4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:41:05 +0100 Subject: [PATCH 28/33] Bump codecov/codecov-action from 4 to 5 in the github_actions group (#8541) Bumps the github_actions group with 1 update: [codecov/codecov-action](https://github.com/codecov/codecov-action). Updates `codecov/codecov-action` from 4 to 5 - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4...v5) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: github_actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2ea84fa73d6..bcba7d6e703 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -89,7 +89,7 @@ jobs: path: coverage pattern: coverage-ruby-* merge-multiple: true - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} directory: coverage From b406f028431c54f58be025ac54f5978c7eb07026 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:55:46 +0100 Subject: [PATCH 29/33] Bump cross-spawn from 7.0.3 to 7.0.5 (#8547) Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.5. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.5) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1ed84f22139..bd8788e71f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1120,9 +1120,9 @@ core-js@3.33.1: integrity sha512-qVSq3s+d4+GsqN0teRCJtM6tdEEXyWxjzbhVrCHmBS5ZTM0FS2MOS0D13dUXAWDUN6a+lHI/N1hF9Ytz6iLl9Q== cross-spawn@^7.0.0, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + version "7.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" + integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" From ca6ddce9645b9eac04a73eaa5714b6df4b6ab270 Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Wed, 20 Nov 2024 15:35:09 -0800 Subject: [PATCH 30/33] Improve v3 docs regarding compatibility with vite_rails (#8549) Active Admin v3 can be used with the vite_rails gem, but the instructions for doing so are buried in a discussion comment. Also, using a modern build system like Vite will often lead to deprecation warnings due to the older color functions used in Active Admin's SCSS assets. To address these issues, I've made some small improvements to Active Admin's docs. Namely: - Add a vite_rails section to the installation document. - Mention the SCSS deprecation warnings in the "gotchas" document, with a workaround that specifically works with Vite. As discussed in , it would be great to solve the deprecation warnings rather than just hiding them, but that will require some significant refactoring, which can be a separate PR. In the meantime I wanted to improve the documentation to at least point users in the right direction. --- docs/0-installation.md | 11 +++++++++++ docs/14-gotchas.md | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/docs/0-installation.md b/docs/0-installation.md index 34d5c5c6982..c12951ef43e 100644 --- a/docs/0-installation.md +++ b/docs/0-installation.md @@ -138,6 +138,17 @@ You can **opt-in to using Webpacker for ActiveAdmin assets** as well by updating rails g active_admin:webpacker ``` +## vite_rails + +To use Active Admin with Vite, make sure the `@activeadmin/activeadmin` dependency is added to your `package.json` using e.g. Yarn: + +```sh +yarn add @activeadmin/activeadmin@^3 +``` + +Then follow the steps outlined in this discussion comment: https://github.com/activeadmin/activeadmin/discussions/7947#discussioncomment-5867902 + + [CHANGELOG]: https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md [dashboard.rb]: https://github.com/activeadmin/activeadmin/blob/master/lib/generators/active_admin/install/templates/dashboard.rb [active_admin.rb]: https://github.com/activeadmin/activeadmin/blob/master/lib/generators/active_admin/install/templates/active_admin.rb.erb diff --git a/docs/14-gotchas.md b/docs/14-gotchas.md index 1d61629dac2..efcff41cd41 100644 --- a/docs/14-gotchas.md +++ b/docs/14-gotchas.md @@ -72,6 +72,14 @@ To avoid overriding your application styles with the ActiveAdmin styles, remove the `require_tree` command from your application's CSS files, where the `active_admin.scss` is in the tree. +## Deprecation warnings with modern sass build tools + +Active Admin v3's SCSS is written for [sassc](https://rubygems.org/gems/sassc), which follows an older version of the SCSS specification. If you use a Node-based build system like esbuild, webpacker, or vite, you may encounter deprecation warnings for color functions like this when compiling assets: + +> DEPRECATION WARNING: lighten() is deprecated + +As a quick workaround, you may be able to silence these warnings by passing the `quietDeps` scss compilation option in your build system. With vite, follow these instructions: (note this requires installing the `sass-embedded` dependency). + ## Conflicts ### With gems that provides a `search` class method on a model From a19afe46867c0ec097abad6901b024c8fd0d0d97 Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Thu, 21 Nov 2024 01:08:34 +0100 Subject: [PATCH 31/33] Fix attributes passed to form has_many not being set on new record form items (#8550) Fix has_many custom attrs not being added on new record form items --- lib/active_admin/form_builder.rb | 9 +++---- spec/unit/form_builder_spec.rb | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/lib/active_admin/form_builder.rb b/lib/active_admin/form_builder.rb index f228a7f5a1f..77e5a853d07 100644 --- a/lib/active_admin/form_builder.rb +++ b/lib/active_admin/form_builder.rb @@ -95,7 +95,7 @@ def content_has_many(&block) contents = without_wrapper { inputs(options, &form_block) } contents ||= "".html_safe - js = new_record ? js_for_has_many(options[:class], &form_block) : "" + js = new_record ? js_for_has_many(&form_block) : "" contents << js end @@ -159,14 +159,13 @@ def without_wrapper end # Capture the ADD JS - def js_for_has_many(class_string, &form_block) + def js_for_has_many(&form_block) assoc_name = assoc_klass.model_name placeholder = "NEW_#{assoc_name.to_s.underscore.upcase.tr('/', '_')}_RECORD" - opts = { + opts = options.merge( for: [assoc, assoc_klass.new], - class: class_string, for_options: { child_index: placeholder } - } + ) html = template.capture { __getobj__.send(:inputs_for_nested_attributes, opts, &form_block) } text = new_record.is_a?(String) ? new_record : I18n.t("active_admin.has_many_new", model: assoc_name.human) diff --git a/spec/unit/form_builder_spec.rb b/spec/unit/form_builder_spec.rb index 3bc1981ae53..3f2362699a3 100644 --- a/spec/unit/form_builder_spec.rb +++ b/spec/unit/form_builder_spec.rb @@ -644,6 +644,48 @@ def user end end + describe "with custom class" do + let :body do + build_form({ url: "/categories" }, Category.new) do |f| + f.object.posts.build + f.has_many :posts, class: 'myclass' do |p| + p.input :title + end + end + end + + it "should generate a fieldset with the given class" do + expect(body).to have_css(".has-many-container > fieldset.myclass") + end + + it "should add the custom class on the fieldset generated by the new record link" do + link = body.find(".has-many-container > a.has-many-add") + new_record_html = Capybara.string(link[:'data-html']) + expect(new_record_html).to have_css("fieldset.myclass") + end + end + + describe "with custom attributes" do + let :body do + build_form({ url: "/categories" }, Category.new) do |f| + f.object.posts.build + f.has_many :posts, attr: "value", data: { 'custom-attribute': "custom-value" } do |p| + p.input :title + end + end + end + + it "should generate a fieldset with the given custom attributes" do + expect(body).to have_css(".has-many-container > fieldset[attr='value'][data-custom-attribute='custom-value']") + end + + it "should add custom attributes on the fieldset generated by the new record link" do + link = body.find(".has-many-container > a.has-many-add") + new_record_html = Capybara.string(link[:'data-html']) + expect(new_record_html).to have_css("fieldset[attr='value'][data-custom-attribute='custom-value']") + end + end + describe "with allow destroy" do shared_examples_for "has many with allow_destroy = true" do |child_num| it "should render the nested form" do From 94dd987fed5c2398f7a36dcc67d799f65b3831ed Mon Sep 17 00:00:00 2001 From: Andrey Viktorov Date: Thu, 21 Nov 2024 07:16:46 +0700 Subject: [PATCH 32/33] Convert plugin.js to ESM because package.json has type set to module (#8536) Convert plugin.js to ESM because package.json has type set to module (#8536) --- plugin.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugin.js b/plugin.js index cab6daf64cb..9f24a5f2811 100644 --- a/plugin.js +++ b/plugin.js @@ -1,6 +1,6 @@ -const plugin = require('tailwindcss/plugin') -const defaultTheme = require('tailwindcss/defaultTheme'); -const colors = require('tailwindcss/colors'); +import plugin from 'tailwindcss/plugin'; +import defaultTheme from 'tailwindcss/defaultTheme'; +import colors from 'tailwindcss/colors'; const { spacing, borderWidth, borderRadius } = defaultTheme; // https://github.com/tailwindlabs/tailwindcss/discussions/9336 @@ -28,7 +28,7 @@ const svgToTinyDataUri = (() => { return svgToTinyDataUri; })(); -module.exports = plugin( +export default plugin( function({ addBase, addComponents, theme }) { addBase({ [[ From 684b212dfe0dfc71f5770a6246b12e12410e0ffa Mon Sep 17 00:00:00 2001 From: Javier Julio Date: Mon, 25 Nov 2024 16:00:24 -0500 Subject: [PATCH 33/33] Prep 4.0.0.beta14 release --- Gemfile.lock | 2 +- UPGRADING.md | 4 ++-- gemfiles/rails_70/Gemfile.lock | 2 +- gemfiles/rails_71/Gemfile.lock | 2 +- lib/active_admin/version.rb | 2 +- package.json | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c38085e62ec..72d8328c83d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - activeadmin (4.0.0.beta13) + activeadmin (4.0.0.beta14) arbre (~> 2.0) csv formtastic (>= 3.1) diff --git a/UPGRADING.md b/UPGRADING.md index e101c3f612e..e59d1ebd15a 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -8,14 +8,14 @@ ActiveAdmin v4 uses TailwindCSS. It has **mobile web, dark mode and RTL support* These instructions assume the `cssbundling-rails` and `importmap-rails` gems are already installed and you have run their install commands in your app. If you haven't done so, please do before continuing. -Update your `Gemfile` with `gem "activeadmin", "4.0.0.beta13"` and then run `gem install activeadmin --pre`. +Update your `Gemfile` with `gem "activeadmin", "4.0.0.beta14"` and then run `gem install activeadmin --pre`. Now, run `rails generate active_admin:assets` to replace the old assets with the new files. Then add the npm package and update the `build:css` script. ``` -yarn add @activeadmin/activeadmin@4.0.0-beta13 +yarn add @activeadmin/activeadmin@4.0.0-beta14 npm pkg set scripts.build:css="tailwindcss -i ./app/assets/stylesheets/active_admin.css -o ./app/assets/builds/active_admin.css --minify -c tailwind-active_admin.config.js" ``` diff --git a/gemfiles/rails_70/Gemfile.lock b/gemfiles/rails_70/Gemfile.lock index 2070470b45d..558f87d223e 100644 --- a/gemfiles/rails_70/Gemfile.lock +++ b/gemfiles/rails_70/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: ../.. specs: - activeadmin (4.0.0.beta13) + activeadmin (4.0.0.beta14) arbre (~> 2.0) csv formtastic (>= 3.1) diff --git a/gemfiles/rails_71/Gemfile.lock b/gemfiles/rails_71/Gemfile.lock index 64b1e8e00ca..5580da77524 100644 --- a/gemfiles/rails_71/Gemfile.lock +++ b/gemfiles/rails_71/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: ../.. specs: - activeadmin (4.0.0.beta13) + activeadmin (4.0.0.beta14) arbre (~> 2.0) csv formtastic (>= 3.1) diff --git a/lib/active_admin/version.rb b/lib/active_admin/version.rb index c0198385828..44cc26713c1 100644 --- a/lib/active_admin/version.rb +++ b/lib/active_admin/version.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true module ActiveAdmin - VERSION = "4.0.0.beta13" + VERSION = "4.0.0.beta14" end diff --git a/package.json b/package.json index 5993e2138af..e7bb7c8ef97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@activeadmin/activeadmin", - "version": "4.0.0-beta13", + "version": "4.0.0-beta14", "description": "The administration framework for Ruby on Rails.", "main": "dist/active_admin.js", "type": "module",
- {% include top-menu.html %} -
-

- The administration framework for business critical Ruby on Rails applications. -

- -

- Active Admin is a Ruby on Rails plugin for generating administration style interfaces. It abstracts common business application patterns to make it simple for developers to implement beautiful and elegant interfaces with very little effort. -

- -

- A beautiful interface designed for real people. -

- -
-
-

- Global Navigation -

- -

- Customizable global navigation allows you to create usable admin interfaces for your business. -

- -

- Scopes -

- -

- Use scopes to create sections of mutually exclusive resources for quick navigation and reporting. -

- -

- Index Styles -

- -

- Index screens are available in many styles. The default, shown here, is a table view, but Active Admin also supports Grids, Blocks and a Blog view. -

- -

- API & Downloads -

- -

- Each resource that is registered with Active Admin becomes available as JSON, XML and CSV download. Customize the output to meet your requirements. -

-
- -
-

- User Authentication -

- -

- Use the bundled Devise configuration or implement your own authorization using the provided hooks. -

- -

- Action Items -

- -

- Add buttons, links or other content in the “Action Items” section on each screen. -

- -

- Filters -

- -

- Allow users to filter resources by searching strings, text fields, dates, and numeric values. -

- -

- Sidebar Sections -

- -

- Customize the sidebar sections with a simple DSL built in to Active Admin. -

-
-
- -

- Active Admin’s interface was designed from the ground up for non-technical users. It makes it easy for developers to build highly usable interfaces that customers will actually enjoy using. -

- -

- An elegant DSL built for developer productivity. -

- -

- Get started with one line of code or customize the entire interface with the provided DSL. -

- -
-
-
# app/admin/products.rb
-ActiveAdmin.register Product do
-  # Create sections on the index screen
-  scope :all, default: true
-  scope :available
-  scope :drafts
-
-  # Filterable attributes on the index screen
-  filter :title
-  filter :author, as: :select, collection: ->{ Product.authors }
-  filter :price
-  filter :created_at
-
-  # Customize columns displayed on the index screen in the table
-  index do
-    column :title
-    column "Price", sortable: :price do |product|
-      number_to_currency product.price
-    end
-    actions
-  end
-end
-
-
- -

- Active Admin for enterprise -

- -

- - Available as part of the Tidelift Subscription - -

- -

- Active Admin and the maintainers of thousands of other packages are - working with Tidelift to deliver one enterprise subscription that - covers all of the open source you use. -

- -

- If you want the flexibility of open source and the confidence of - commercial-grade software, this is for you. -

- - - -

- The Tidelift Subscription manages your dependencies for you. -

- -
    -
  • - Get the tools you need to continuously catalog and understand the open source software that your application depends on. -
  • - -
  • - Your subscription helps pay the open source maintainers of the exact - packages you use to ensure they meet the standards you require. -
  • - -
  • - Address issues proactively, with tools that scan for new security, - licensing, and maintenance issues, and alert our participating open - source maintainers so they can resolve them on your behalf. -
  • - -
  • - Measure and improve your open source dependencies' health—which - improves your app’s health—and get a short list of high-impact steps - your team can take to improve them even more. -
  • - -
  • - Get commercial assurances that don't come for free with open source - packages, like intellectual property indemnification and support - under a service level agreement. You expect these guarantees from - proprietary software, and you can have them when using open source - as well. -
  • -
- -

- The end result? All of the capabilities you expect from - commercial-grade software, for the full breadth of open source you - use. That means less time grappling with esoteric open source trivia, - and more time building your own applications—and your business. -

- - - -

- 2 Ways to Get Started: -

-

- Read The Documentation Visit the Git Repository -

-
{% include footer.html %} -