diff --git a/.babelrc b/.babelrc index 94eef9d4..de9e2724 100644 --- a/.babelrc +++ b/.babelrc @@ -1,12 +1,13 @@ { - "plugins": [ - "@babel/plugin-proposal-class-properties" - ], + "plugins": [], "presets": [ - ["@babel/preset-env", { - "useBuiltIns": "usage", - "corejs": 3 - }], + [ + "@babel/preset-env", + { + "useBuiltIns": "usage", + "corejs": 3 + } + ], "@babel/preset-react" ] -} \ No newline at end of file +} diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 40b8b53c..00000000 --- a/.eslintrc +++ /dev/null @@ -1,48 +0,0 @@ -{ - "env": { - "browser": true, - "node": true - }, - - "extends": [ - "eslint:recommended", - "plugin:react/recommended", - "prettier" - ], - - "parser": "@babel/eslint-parser", - - "parserOptions": { - "ecmaFeatures": { - "jsx": true - } - }, - - "plugins": [ - "prettier", - "react" - ], - - "rules": { - "prettier/prettier": "error" - }, - - "settings": { - "import/resolver": { - "webpack": { - "config": { - "resolve": { - "modules": [ - "css", - "js", - "node_modules" - ] - } - } - } - }, - "react": { - "version": "detect" - } - } -} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 29c64fe9..60a6e736 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ test/dummy/db/*.sqlite3 test/dummy/db/*.sqlite3-journal test/dummy/log/*.log test/dummy/tmp/ -releases \ No newline at end of file +releases +storage diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..0100eae1 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm run lint-staged diff --git a/.lintstagedrc b/.lintstagedrc index 844667c4..18b489bb 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,21 +1,5 @@ { - "./*.js": [ - "prettier --write", - "eslint", - "git add" - ], - "test/dummy/frontend/**/*.js": [ - "prettier --write", - "eslint", - "git add" - ], - "test/dummy/frontend/**/*.css": [ - "prettier --write", - "stylelint --fix", - "git add" - ], - "*.{gemspec,rb}": [ - "bundle exec rubocop --force-exclusion", - "git add" - ] -} \ No newline at end of file + "**/*.js": ["prettier --write", "eslint --fix"], + "**/*.css": ["prettier --write", "stylelint --fix"], + "*.{gemspec,rb}": ["bundle exec rubocop --force-exclusion"] +} diff --git a/.nvmrc b/.nvmrc index 11062bf9..cabf43b5 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -21.6.1 \ No newline at end of file +24 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..1f67413c --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules/ +README.md +test/dummy/app/assets/bundles/ +*.yml diff --git a/.rubocop.yml b/.rubocop.yml index 58ec4e31..aed6e51e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,40 +8,37 @@ AllCops: - test/dummy/db/schema.rb Layout/IndentationConsistency: - Enabled: true Exclude: - lib/generators/loco/file_injector/templates/connection.rb Layout/InitialIndentation: - Enabled: true Exclude: - lib/generators/loco/file_injector/templates/application_controller.rb - lib/generators/loco/file_injector/templates/connection.rb Layout/TrailingEmptyLines: - Enabled: true Exclude: - lib/generators/loco/file_injector/templates/application_controller.rb Metrics/BlockLength: - Enabled: true Exclude: - loco-rails.gemspec - test/dummy/config/routes.rb - test/loco/* Metrics/ClassLength: - Enabled: true Exclude: - test/integration/**/* - test/loco/**/* Metrics/MethodLength: - Enabled: true Max: 12 +Metrics/ParameterLists: + Exclude: + - lib/loco-rails.rb + Naming/FileName: - Enabled: true Exclude: - lib/loco-rails.rb @@ -49,12 +46,10 @@ Rails: Enabled: true Rails/ApplicationJob: - Enabled: true Exclude: - app/jobs/loco/* Rails/ActionControllerFlashBeforeRender: - Enabled: true Exclude: - test/dummy/app/controllers/admin/sessions_controller.rb @@ -62,7 +57,6 @@ Rails/I18nLocaleTexts: Enabled: false Style/ArgumentsForwarding: - Enabled: true Exclude: - lib/loco/ws_connection_finder.rb @@ -73,7 +67,6 @@ Style/Documentation: Enabled: false Style/FrozenStringLiteralComment: - Enabled: true Exclude: - lib/generators/loco/file_injector/templates/application_controller.rb - lib/generators/loco/file_injector/templates/connection.rb @@ -82,6 +75,5 @@ Style/LambdaCall: Enabled: false Style/MixinUsage: - Enabled: true Exclude: - lib/generators/loco/file_injector/templates/application_controller.rb diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index 425b4df0..00000000 --- a/.stylelintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "stylelint-config-standard" -} \ No newline at end of file diff --git a/.stylelintrc.mjs b/.stylelintrc.mjs new file mode 100644 index 00000000..ef8f8357 --- /dev/null +++ b/.stylelintrc.mjs @@ -0,0 +1,12 @@ +export default { + extends: ["stylelint-config-standard"], + ignoreFiles: ["node_modules/**", "test/dummy/app/assets/bundles/**"], + overrides: [ + { + files: ["test/dummy/frontend/css/scaffold.css"], + rules: { + "selector-class-pattern": null, + }, + }, + ], +}; diff --git a/Gemfile b/Gemfile index 959a5973..9d6e03c7 100644 --- a/Gemfile +++ b/Gemfile @@ -6,16 +6,18 @@ gemspec gem 'bcrypt', '~> 3.1.20' gem 'capybara', '~> 3.40.0' gem 'database_cleaner', '~> 2.0.2' -gem 'jbuilder', '~> 2.11.5' -gem 'listen', '~> 3.8.0' -gem 'loco-rails-core', '~> 0.2.1' -gem 'mysql2', '~> 0.5.5' +gem 'jbuilder', '~> 2.13.0' +gem 'listen', '~> 3.9.0' +gem 'loco-rails-core', '~> 0.3.0' gem 'puma', '~> 6.4.3' -gem 'redis', '~> 5.0.8' -gem 'rspec-expectations', '~> 3.12.3' -gem 'rspec-mocks', '~> 3.12.6' +gem 'redis', '~> 5.3.0' +gem 'rspec-expectations', '~> 3.13.0' +gem 'rspec-mocks', '~> 3.13.1' gem 'rubocop' gem 'rubocop-rails' -gem 'selenium-webdriver', '~> 4.17.0' -gem 'sprockets-rails', '~> 3.4.2' -gem 'will_paginate', '~> 4.0.0' +gem 'selenium-webdriver', '~> 4.25.0' +gem 'silencer', '~> 2.0.0', require: false +gem 'sprockets-rails', '~> 3.5.2' +gem 'sqlite3', '>= 2.1' +gem 'turbo-rails', '~> 2.0.10' +gem 'will_paginate', '~> 4.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 56cda68c..de59281c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,92 +2,90 @@ PATH remote: . specs: loco-rails (7.0.0.pre) - rails (>= 6.1) + rails (>= 7.1, < 9.0) GEM remote: https://rubygems.org/ specs: - actioncable (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) + actioncable (8.0.2) + actionpack (= 8.0.2) + activesupport (= 8.0.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.3.4) - actionpack (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (8.0.2) + actionpack (= 8.0.2) + activejob (= 8.0.2) + activerecord (= 8.0.2) + activestorage (= 8.0.2) + activesupport (= 8.0.2) + mail (>= 2.8.0) + actionmailer (8.0.2) + actionpack (= 8.0.2) + actionview (= 8.0.2) + activejob (= 8.0.2) + activesupport (= 8.0.2) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) + actionpack (8.0.2) + actionview (= 8.0.2) + activesupport (= 8.0.2) nokogiri (>= 1.8.5) - racc rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.3.4) - actionpack (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + useragent (~> 0.16) + actiontext (8.0.2) + actionpack (= 8.0.2) + activerecord (= 8.0.2) + activestorage (= 8.0.2) + activesupport (= 8.0.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) + actionview (8.0.2) + activesupport (= 8.0.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.3.4) - activesupport (= 7.1.3.4) + activejob (8.0.2) + activesupport (= 8.0.2) globalid (>= 0.3.6) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) + activemodel (8.0.2) + activesupport (= 8.0.2) + activerecord (8.0.2) + activemodel (= 8.0.2) + activesupport (= 8.0.2) timeout (>= 0.4.0) - activestorage (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activesupport (= 7.1.3.4) + activestorage (8.0.2) + actionpack (= 8.0.2) + activejob (= 8.0.2) + activerecord (= 8.0.2) + activesupport (= 8.0.2) marcel (~> 1.0) - activesupport (7.1.3.4) + activesupport (8.0.2) base64 + benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) ast (2.4.2) - base64 (0.2.0) + base64 (0.3.0) bcrypt (3.1.20) - bigdecimal (3.1.8) - builder (3.2.4) + benchmark (0.4.1) + bigdecimal (3.2.2) + builder (3.3.0) capybara (3.40.0) addressable matrix @@ -97,39 +95,42 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - concurrent-ruby (1.3.1) - connection_pool (2.4.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.3) crass (1.0.6) database_cleaner (2.0.2) database_cleaner-active_record (>= 2, < 3) - database_cleaner-active_record (2.1.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) + date (3.4.1) diff-lcs (1.5.1) - drb (2.2.1) - erubi (1.12.0) - ffi (1.16.3) + drb (2.2.3) + erb (5.0.1) + erubi (1.13.1) + ffi (1.17.0) globalid (1.2.1) activesupport (>= 6.1) - i18n (1.14.5) + i18n (1.14.7) concurrent-ruby (~> 1.0) - io-console (0.7.2) - irb (1.11.2) - rdoc + io-console (0.8.0) + irb (1.15.2) + pp (>= 0.6.0) + rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.11.5) + jbuilder (2.13.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) - json (2.7.1) + json (2.7.2) language_server-protocol (3.17.0.3) - listen (3.8.0) + listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loco-rails-core (0.2.1) + loco-rails-core (0.3.0) rails (>= 5.0) - loofah (2.22.0) + logger (1.7.0) + loofah (2.24.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -140,141 +141,151 @@ GEM marcel (1.0.4) matrix (0.4.2) mini_mime (1.1.5) - mini_portile2 (2.8.7) - minitest (5.23.1) - mutex_m (0.2.0) - mysql2 (0.5.6) - net-imap (0.4.10) + mini_portile2 (2.8.9) + minitest (5.25.5) + net-imap (0.5.9) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.2) timeout - net-smtp (0.4.0.1) + net-smtp (0.5.1) net-protocol - nio4r (2.7.3) - nokogiri (1.16.5) + nio4r (2.7.4) + nokogiri (1.18.8) mini_portile2 (~> 2.8.2) racc (~> 1.4) - parallel (1.24.0) - parser (3.3.0.5) + parallel (1.26.3) + parser (3.3.5.0) ast (~> 2.4.1) racc - psych (5.1.2) + pp (0.6.2) + prettyprint + prettyprint (0.2.0) + psych (5.2.6) + date stringio - public_suffix (5.0.4) + public_suffix (6.0.1) puma (6.4.3) nio4r (~> 2.0) - racc (1.8.0) - rack (3.0.11) - rack-session (2.0.0) + racc (1.8.1) + rack (3.1.16) + rack-session (2.1.1) + base64 (>= 0.1.0) rack (>= 3.0.0) - rack-test (2.1.0) + rack-test (2.2.0) rack (>= 1.3) - rackup (2.1.0) + rackup (2.2.1) rack (>= 3) - webrick (~> 1.8) - rails (7.1.3.4) - actioncable (= 7.1.3.4) - actionmailbox (= 7.1.3.4) - actionmailer (= 7.1.3.4) - actionpack (= 7.1.3.4) - actiontext (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activemodel (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + rails (8.0.2) + actioncable (= 8.0.2) + actionmailbox (= 8.0.2) + actionmailer (= 8.0.2) + actionpack (= 8.0.2) + actiontext (= 8.0.2) + actionview (= 8.0.2) + activejob (= 8.0.2) + activemodel (= 8.0.2) + activerecord (= 8.0.2) + activestorage (= 8.0.2) + activesupport (= 8.0.2) bundler (>= 1.15.0) - railties (= 7.1.3.4) - rails-dom-testing (2.2.0) + railties (= 8.0.2) + rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) + rails-html-sanitizer (1.6.2) loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) + railties (8.0.2) + actionpack (= 8.0.2) + activesupport (= 8.0.2) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.1.0) + rake (13.3.0) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) - rdoc (6.6.3.1) + rdoc (6.14.2) + erb psych (>= 4.0.0) - redis (5.0.8) - redis-client (>= 0.17.0) - redis-client (0.19.1) + redis (5.3.0) + redis-client (>= 0.22.0) + redis-client (0.22.2) connection_pool - regexp_parser (2.9.0) - reline (0.4.3) + regexp_parser (2.9.2) + reline (0.6.1) io-console (~> 0.5) - rexml (3.3.6) - strscan - rspec-expectations (3.12.4) + rexml (3.3.7) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.7) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-support (3.12.2) - rubocop (1.60.2) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rubocop (1.66.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.30.0, < 2.0) + regexp_parser (>= 2.4, < 3.0) + rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) - rubocop-rails (2.23.1) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-rails (2.26.2) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) - rubocop-ast (>= 1.30.0, < 2.0) + rubocop (>= 1.52.0, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (1.13.0) rubyzip (2.3.2) - selenium-webdriver (4.17.0) + securerandom (0.4.1) + selenium-webdriver (4.25.0) base64 (~> 0.2) + logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) + silencer (2.0.0) sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) - stringio (3.1.0) - strscan (3.1.0) - thor (1.3.1) - timeout (0.4.1) + sqlite3 (2.1.0) + mini_portile2 (~> 2.8.0) + stringio (3.1.7) + thor (1.3.2) + timeout (0.4.3) + turbo-rails (2.0.10) + actionpack (>= 6.0.0) + railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) - webrick (1.8.1) - websocket (1.2.10) - websocket-driver (0.7.6) + unicode-display_width (2.6.0) + uri (1.0.3) + useragent (0.16.11) + websocket (1.2.11) + websocket-driver (0.8.0) + base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - will_paginate (4.0.0) + will_paginate (4.0.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.13) + zeitwerk (2.7.3) PLATFORMS ruby @@ -283,20 +294,22 @@ DEPENDENCIES bcrypt (~> 3.1.20) capybara (~> 3.40.0) database_cleaner (~> 2.0.2) - jbuilder (~> 2.11.5) - listen (~> 3.8.0) + jbuilder (~> 2.13.0) + listen (~> 3.9.0) loco-rails! - loco-rails-core (~> 0.2.1) - mysql2 (~> 0.5.5) + loco-rails-core (~> 0.3.0) puma (~> 6.4.3) - redis (~> 5.0.8) - rspec-expectations (~> 3.12.3) - rspec-mocks (~> 3.12.6) + redis (~> 5.3.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.1) rubocop rubocop-rails - selenium-webdriver (~> 4.17.0) - sprockets-rails (~> 3.4.2) - will_paginate (~> 4.0.0) + selenium-webdriver (~> 4.25.0) + silencer (~> 2.0.0) + sprockets-rails (~> 3.5.2) + sqlite3 (>= 2.1) + turbo-rails (~> 2.0.10) + will_paginate (~> 4.0.1) BUNDLED WITH - 2.2.32 + 2.6.7 diff --git a/README.md b/README.md index 19a747dc..7413a251 100644 --- a/README.md +++ b/README.md @@ -324,7 +324,7 @@ You can look at the working example [here](https://github.com/locoframework/loco ```bash $ bundle install -$ docker-compose up +$ docker compose up $ bin/rails db:create $ bin/rails test ``` @@ -335,6 +335,15 @@ Capybara powers integration tests. Capybara is cool, but sometimes random tests ## Major releases 🎙 +### 7.0 _(2025-04-XX)_ + +* **Breaking changes**: + * `Loco::Emitter` was removed 👉 use `Loco.emit`, `Loco.add_hub`, etc. + +* new format `Loco.emit(payload, to: recipients, ws_only: true, subject: target)` +* **Deprecation warning:** formats other than above ☝️ will become unsupported in Loco-Rails 8 +* **Deprecation warning:** `Loco.emit_to` will be removed in Loco-Rails 8 👉 use `Loco.emit(payload, to: recipients, ws_only: true)` + ### 6.1 _(2022-09-04)_ * all `Loco::Emitter` methods are available as `Loco`'s `module_function`s diff --git a/app/controllers/loco/notification_center_controller.rb b/app/controllers/loco/notification_center_controller.rb index 97b1f3e6..3565f50c 100644 --- a/app/controllers/loco/notification_center_controller.rb +++ b/app/controllers/loco/notification_center_controller.rb @@ -10,18 +10,20 @@ def index end end + # TODO: delete in the next release def sync_time + ActiveSupport::Deprecation.warn( + 'Loco::NotificationCenterController#sync_time is deprecated and will be removed in the next release.', + caller_locations(1) + ) render json: { sync_time: Time.current.iso8601(6) } end private def fetch_notifications - if params[:synced_at].blank? - render json: [[], Time.current.iso8601(6)] - return - end - fetcher = Notification::Fetcher.new({ synced_at: params[:synced_at], + synced_at = params[:synced_at] || Time.current.iso8601(6) + fetcher = Notification::Fetcher.new({ synced_at:, permissions:, recipient_token: params[:token] }) render json: [fetcher.formatted_notifications, fetcher.next_sync_time.iso8601(6)] diff --git a/app/models/loco/notification.rb b/app/models/loco/notification.rb index 1a9c3eec..40587e66 100644 --- a/app/models/loco/notification.rb +++ b/app/models/loco/notification.rb @@ -9,10 +9,10 @@ class Notification < ApplicationRecord serialize :data, coder: JSON if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL' - validates :obj_class, presence: true - validates :event, presence: true - - before_validation :prepare + before_validation do + set_event + set_data + end class << self def table_name_prefix @@ -23,7 +23,7 @@ def table_name_prefix def obj=(val) if val.instance_of? Class self.obj_class = val.to_s - else + elsif val self.obj_class = val.class.name self.obj_id = val.id @obj = val @@ -72,14 +72,10 @@ def init_recipient(shallow) end end - def prepare - set_event - set_data - end - def set_event return if event.present? return if obj.instance_of?(Class) + return if obj.nil? self.event = if obj.new_record? 'creating' diff --git a/config/routes.rb b/config/routes.rb index ea1badc8..4ab7f5b0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true Loco::Engine.routes.draw do - get 'sync-time' => 'notification_center#sync_time' + get 'sync-time' => 'notification_center#sync_time' # TODO: delete in the next release root 'notification_center#index' end diff --git a/docker-compose.yml b/docker-compose.yml index fa02e88b..170cb0e4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,5 @@ -version: '3' +version: "3" services: - mysql: - platform: linux/x86_64 - image: mysql:8.0 - environment: - - MYSQL_ROOT_PASSWORD=root - expose: - - "3306" - ports: - - "3307:3306" - volumes: - - mysql:/var/lib/mysql - redis: image: redis:6.0 expose: @@ -19,8 +7,7 @@ services: ports: - "6380:6379" volumes: - - 'redis:/var/lib/redis/data' + - "redis:/var/lib/redis/data" volumes: - mysql: redis: diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..2489b166 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,36 @@ +import js from "@eslint/js"; +import configPrettier from "eslint-config-prettier"; +import pluginPrettier from "eslint-plugin-prettier"; +import pluginReact from "eslint-plugin-react"; +import reactRecommended from "eslint-plugin-react/configs/recommended.js"; +import globals from "globals"; + +export default [ + { ignores: ["test/dummy/app/assets/bundles/"] }, + js.configs.recommended, + reactRecommended, + { + languageOptions: { + ecmaVersion: "latest", + sourceType: "module", + parserOptions: { + ecmaFeatures: { jsx: true }, + }, + globals: { + ...globals.browser, + ...globals.node, + }, + }, + plugins: { + prettier: pluginPrettier, + react: pluginReact, + }, + settings: { + react: { version: "detect" }, + }, + rules: { + "prettier/prettier": "error", + }, + }, + configPrettier, +]; diff --git a/lib/loco-rails.rb b/lib/loco-rails.rb index 1b7fd1d4..7b70c297 100644 --- a/lib/loco-rails.rb +++ b/lib/loco-rails.rb @@ -2,9 +2,9 @@ require 'loco/broadcaster' require 'loco/config' -require 'loco/emitter' require 'loco/rails/engine' require 'loco/hub' +require 'loco/payload' require 'loco/permissions_presenter' require 'loco/sender' require 'loco/ws_connection_checker' @@ -14,6 +14,17 @@ require 'loco/ws_connection_storage' module Loco + module Priv + module_function + + def new_emit(payload, to:, ws_only:, subject: nil) + return Sender.(to, payload) if ws_only + + event = payload.delete(:event) + Broadcaster.(subject, event, payload:, recipients: to) + end + end + module_function def configure @@ -23,17 +34,19 @@ def configure end end - def emit(obj, event = nil, opts = {}) - Broadcaster.( - obj, - event, - payload: opts[:payload] || opts[:data], - recipients: opts[opts[:for] ? :for : :to] - ) + def emit(subject_or_payload, event = nil, payload: nil, data: nil, for: nil, to: nil, + subject: nil, ws_only: false) + recipient = binding.local_variable_get(:for) + if subject_or_payload.is_a?(ActiveRecord::Base) + payload = (payload || data || {}).merge(event:) + Priv.new_emit(payload, to: to || recipient, ws_only:, subject: subject_or_payload) + else + Priv.new_emit(subject_or_payload, to:, ws_only:, subject:) + end end - def emit_to(recipient_s, data) - Sender.(recipient_s, data) + def emit_to(recipient_s, payload) + Priv.new_emit(payload, to: recipient_s, ws_only: true) end def add_hub(name, members = []) diff --git a/lib/loco/broadcaster.rb b/lib/loco/broadcaster.rb index 4d1a7798..c011d6f5 100644 --- a/lib/loco/broadcaster.rb +++ b/lib/loco/broadcaster.rb @@ -3,35 +3,42 @@ module Loco class Broadcaster class << self - def call(obj, event, recipients: nil, payload: nil) - payload ||= {} - payload[:loco] = { idempotency_key: SecureRandom.hex } - send_notifications(obj, event, process_recipients(recipients), payload) - end - - private - - def process_recipients(recipients) - recipients = [:all] if recipients.nil? - recipients = [recipients] unless recipients.is_a?(Array) - recipients = recipients.map { |e| e.nil? ? :all : e } - recipients = [:all] if recipients.include?(:all) - recipients - end - - def send_notifications(obj, event, recipients, payload) - recipients.each do |recipient| + def call(obj, event, recipients:, payload:) + data = Payload.(payload) + process_recipients(recipients).each do |recipient| notification = Notification.create!( obj:, event:, recipient:, - data: payload + data: ) sync_time = notification.created_at.iso8601(6) send_notification(keify_recipient(recipient), notification, sync_time) end end + private + + def process_recipients(recipients) + return [:all] if recipients.nil? + + recipients = normalize_recipients(recipients) + return [:all] if recipients.include?(:all) + + expand_recipients(recipients) + end + + def normalize_recipients(recipients) + recipients = [recipients] unless recipients.is_a?(Array) + recipients.map { |e| e.nil? ? :all : e } + end + + def expand_recipients(recipients) + recipients.map do |recipient| + recipient.is_a?(Hub) ? recipient.members(shallow: true) : recipient + end.flatten + end + def keify_recipient(recipient) case recipient when String then { 'token' => recipient } @@ -41,12 +48,11 @@ def keify_recipient(recipient) end def send_notification(recipient, notification, sync_time) + payload = { loco: { sync_time:, notification: notification.compact } } if notification.recipient_id - Sender.(recipient, loco: { notification: notification.compact }) - Sender.(recipient, loco: { sync_time: }) + Sender.(recipient, payload) else - SenderJob.perform_later(recipient, loco: { notification: notification.compact }) - SenderJob.perform_later(recipient, loco: { sync_time: }) + SenderJob.perform_later(recipient, payload) end end end diff --git a/lib/loco/config.rb b/lib/loco/config.rb index b2d2b2c8..eb1a9b06 100644 --- a/lib/loco/config.rb +++ b/lib/loco/config.rb @@ -14,8 +14,6 @@ def self.configure(config) self.notifications_size = config.notifications_size if config.notifications_size self.app_name = config.app_name if config.app_name self.redis_instance = config.redis_instance - ensure - true end end end diff --git a/lib/loco/emitter.rb b/lib/loco/emitter.rb deleted file mode 100644 index 24227dd2..00000000 --- a/lib/loco/emitter.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -# TODO: remove in v7 -module Loco - module Emitter - def emit(obj, event = nil, opts = {}) - Loco.emit(obj, event, opts) - end - - def emit_to(recipient_s, data) - Loco.emit_to(recipient_s, data) - end - - def add_hub(name, members = []) - Loco.add_hub(name, members) - end - - def get_hub(name) - Loco.get_hub(name) - end - - def del_hub(name) - Loco.del_hub(name) - end - end -end diff --git a/lib/loco/hub.rb b/lib/loco/hub.rb index d465fe78..ca2de37f 100644 --- a/lib/loco/hub.rb +++ b/lib/loco/hub.rb @@ -41,24 +41,29 @@ def del_member(member) WsConnectionStorage.current.rem(@name, WsConnectionIdentifier.(member)) end + def include?(member) + WsConnectionStorage.current.member?(@name, WsConnectionIdentifier.(member)) + end + def destroy - WsConnectionStorage.current.members(@name).each do |member| + raw_members.each do |member| WsConnectionStorage.current.rem(@name, member) end end - def include?(resource) - WsConnectionStorage.current.member?(@name, WsConnectionIdentifier.(resource)) - end - def raw_members WsConnectionStorage.current.members(@name) end - def members - raw_members.map do |serialized| - klass, id = serialized.split(':') - klass.classify.constantize.find_by(id:) + def members(shallow: false) + raw_members.map do |identifier| + if identifier.include?(':') + klass, id = identifier.split(':') + klass = klass.classify.constantize + shallow ? klass.new(id:) : klass.find_by(id:) + else + identifier.classify.constantize + end end end end diff --git a/lib/loco/payload.rb b/lib/loco/payload.rb new file mode 100644 index 00000000..d97b38ab --- /dev/null +++ b/lib/loco/payload.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Loco + class Payload + class << self + def call(payload) + hash = payload ? payload.clone : {} + hash[:loco] ||= {} + hash[:loco][:idempotency_key] ||= hash[:idempotency_key] || SecureRandom.hex + hash.delete(:idempotency_key) + hash + end + end + end +end diff --git a/lib/loco/permissions_presenter.rb b/lib/loco/permissions_presenter.rb index fc1ffac8..13a75c6b 100644 --- a/lib/loco/permissions_presenter.rb +++ b/lib/loco/permissions_presenter.rb @@ -6,7 +6,7 @@ module PermissionsPresenter def indexed(loco_permissions, opts = {}) h = signed_in(loco_permissions).index_by do |o| - o.class.name.downcase.to_sym + o.class.name.underscore.to_sym end if opts[:except] == :uuid h.except(:string) diff --git a/lib/loco/sender.rb b/lib/loco/sender.rb index cba81587..f85dcfad 100644 --- a/lib/loco/sender.rb +++ b/lib/loco/sender.rb @@ -3,20 +3,9 @@ module Loco class Sender class << self - def call(recipient_s, payload = {}) - payload = with_idempotency_key(payload) + def call(recipient_s, payload) recipients = recipient_s.is_a?(Array) ? recipient_s : [recipient_s] - new.(recipients, payload) - end - - private - - def with_idempotency_key(payload) - hash = payload.clone - hash[:loco] ||= {} - hash[:loco][:idempotency_key] ||= hash[:idempotency_key] || SecureRandom.hex - hash.delete(:idempotency_key) - hash + new.(recipients, Payload.(payload)) end end diff --git a/lib/loco/ws_connection_finder.rb b/lib/loco/ws_connection_finder.rb index ffa792b9..152c46b1 100644 --- a/lib/loco/ws_connection_finder.rb +++ b/lib/loco/ws_connection_finder.rb @@ -20,9 +20,9 @@ def call(resources, &block) private - def search_the_hub(resource, &block) - WsConnectionStorage.current.members(resource.full_name).map do |serialized| - WsConnectionStorage.current.members(serialized).each(&block) + def search_the_hub(hub, &block) + WsConnectionStorage.current.members(hub.full_name).map do |identifier| + WsConnectionStorage.current.members(identifier).each(&block) end end end diff --git a/lib/loco/ws_connection_identifier.rb b/lib/loco/ws_connection_identifier.rb index 4778853b..5d1d7425 100644 --- a/lib/loco/ws_connection_identifier.rb +++ b/lib/loco/ws_connection_identifier.rb @@ -7,8 +7,8 @@ module WsConnectionIdentifier def call(resource) case resource when String then resource - when Class then resource.name.downcase - else "#{resource.class.name.downcase}:#{resource.id}" + when Class then resource.name.underscore + else "#{resource.class.name.underscore}:#{resource.id}" end end end diff --git a/loco-rails.gemspec b/loco-rails.gemspec index 1602146d..79899d61 100644 --- a/loco-rails.gemspec +++ b/loco-rails.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 3.1.0' - s.add_dependency 'rails', '>= 6.1' + s.add_dependency 'rails', '>= 7.1', '< 9.0' s.metadata['rubygems_mfa_required'] = 'true' end diff --git a/package-lock.json b/package-lock.json index 0c90fa19..24c2364b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,108 +6,174 @@ "": { "license": "MIT", "dependencies": { - "@rails/actioncable": "^7.0.4-2", - "@rails/ujs": "^7.0.4-2", - "core-js": "^3.29.0", - "immer": "^9.0.19", - "loco-js": "^6.3.0", + "@hotwired/turbo-rails": "^8.0.16", + "@rails/actioncable": "^8.0.201", + "immer": "^10.1.1", + "loco-js": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js", + "loco-js-core": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js-core", + "loco-js-model": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js-model", "loco-js-ui": "^6.0.1", "prop-types": "^15.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "redux": "^4.2.1" + "react": "^19.1.1", + "react-dom": "^19.1.1", + "redux": "^5.0.1" }, "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/eslint-parser": "^7.19.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "autoprefixer": "^10.4.13", - "babel-loader": "^9.1.2", - "clean-webpack-plugin": "^4.0.0", - "css-loader": "^6.7.3", - "css-minimizer-webpack-plugin": "^5.0.0", - "eslint": "^8.35.0", - "eslint-config-prettier": "^8.7.0", - "eslint-import-resolver-webpack": "^0.13.2", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.2", - "husky": "^8.0.3", - "lint-staged": "^13.1.2", - "mini-css-extract-plugin": "^2.7.3", - "postcss": "^8.4.31", - "postcss-import": "^15.1.0", - "postcss-loader": "^7.2.4", - "postcss-nested": "^6.0.1", - "prettier": "^2.8.4", - "stylelint": "^15.10.1", - "stylelint-config-standard": "^30.0.1", - "webpack": "^5.94.0", - "webpack-cli": "^5.0.1" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "@babel/core": "^7.28.3", + "@babel/preset-env": "^7.28.3", + "@babel/preset-react": "^7.27.1", + "@eslint/js": "^9.34.0", + "autoprefixer": "^10.4.21", + "babel-loader": "^10.0.0", + "core-js": "^3.45.1", + "css-loader": "^7.1.2", + "css-minimizer-webpack-plugin": "^7.0.2", + "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-react": "^7.37.5", + "globals": "^16.3.0", + "husky": "^9.1.7", + "lint-staged": "^16.1.5", + "mini-css-extract-plugin": "^2.9.4", + "postcss": "^8.5.6", + "postcss-loader": "^8.1.1", + "prettier": "^3.6.2", + "stylelint": "^16.23.1", + "stylelint-config-standard": "^39.0.0", + "webpack": "^5.101.2", + "webpack-cli": "^6.0.1" + } + }, + "../../js/loco-js": { + "version": "6.3.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.28.3", + "@babel/preset-env": "^7.28.3", + "@eslint/js": "^9.34.0", + "babel-jest": "^30.0.5", + "babel-loader": "^10.0.0", + "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "express": "^5.1.0", + "globals": "^15.15.0", + "husky": "^9.1.7", + "jest": "^30.0.5", + "jest-environment-jsdom": "^30.0.5", + "lint-staged": "^16.1.5", + "loco-js-model": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js-model", + "prettier": "^3.6.2", + "webpack": "^5.101.2", + "webpack-cli": "^6.0.1", + "webpack-dev-middleware": "^7.4.2" + } + }, + "../../js/loco-js-core": { + "version": "0.3.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.28.3", + "@babel/preset-env": "^7.28.3", + "@eslint/js": "^9.34.0", + "babel-jest": "^30.0.5", + "babel-loader": "^10.0.0", + "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "express": "^5.1.0", + "globals": "^15.15.0", + "husky": "^9.1.7", + "jest": "^30.0.5", + "jest-environment-jsdom": "^30.0.5", + "lint-staged": "^16.1.5", + "prettier": "^3.6.2", + "webpack": "^5.101.2", + "webpack-cli": "^6.0.1", + "webpack-dev-middleware": "^7.4.2" + } + }, + "../../js/loco-js-model": { + "version": "2.0.1", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.28.3", + "@babel/preset-env": "^7.28.3", + "@eslint/js": "^9.34.0", + "babel-jest": "^30.0.5", + "babel-loader": "^10.0.0", + "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "express": "^5.1.0", + "globals": "^15.15.0", + "husky": "^9.1.7", + "jest": "^30.0.5", + "jest-environment-jsdom": "^30.0.5", + "lint-staged": "^16.1.5", + "prettier": "^3.6.2", + "webpack": "^5.101.2", + "webpack-cli": "^6.0.1", + "webpack-dev-middleware": "^7.4.2" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -122,72 +188,46 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/eslint-parser": { - "version": "7.23.10", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz", - "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -196,19 +236,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", - "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -219,13 +258,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -236,90 +276,70 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -329,35 +349,38 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -367,14 +390,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -383,116 +407,88 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/parser": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.28.2" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -500,13 +496,15 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -515,31 +513,30 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -548,66 +545,78 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -616,52 +625,47 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.27.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -670,37 +674,50 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -709,85 +726,120 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", + "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -796,13 +848,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -811,14 +864,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -827,13 +881,14 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -842,16 +897,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -860,15 +914,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -877,13 +930,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -892,13 +946,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -907,14 +963,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -923,37 +981,30 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -962,14 +1013,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -978,13 +1029,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -993,14 +1045,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1009,13 +1062,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1024,14 +1079,17 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1040,14 +1098,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1056,192 +1115,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1251,12 +1133,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1266,13 +1149,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1282,13 +1165,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1298,16 +1181,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1317,13 +1201,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1333,13 +1218,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1349,14 +1234,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1366,12 +1251,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1381,13 +1267,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1397,15 +1284,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1415,12 +1302,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1430,12 +1318,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1445,16 +1334,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1464,12 +1354,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1479,13 +1370,14 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1495,13 +1387,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", + "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1510,13 +1402,31 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1526,12 +1436,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1541,13 +1452,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1557,12 +1469,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1572,12 +1485,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1587,12 +1501,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1602,12 +1517,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1617,13 +1533,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1633,13 +1550,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1649,13 +1567,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1665,90 +1584,81 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", + "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -1763,6 +1673,7 @@ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1773,17 +1684,18 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1792,76 +1704,58 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", - "debug": "^4.3.1", - "globals": "^11.1.0" + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", - "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "dev": true, "funding": [ { @@ -1873,17 +1767,18 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", - "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "dev": true, "funding": [ { @@ -1895,14 +1790,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", - "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", "dev": true, "funding": [ { @@ -1914,18 +1810,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", - "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", "dev": true, "funding": [ { @@ -1937,33 +1834,50 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.0.13" + "postcss-selector-parser": "^7.0.0" } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -1973,6 +1887,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1981,24 +1896,63 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -2006,252 +1960,240 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@eslint/js": { + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", + "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", "dev": true, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://eslint.org/donate" } }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, + "node_modules/@hotwired/turbo": { + "version": "8.0.13", + "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.13.tgz", + "integrity": "sha512-M7qXUqcGab6G5PKOiwhgbByTtrPgKPFCTMNQ52QhzUEXEqmp0/ApEguUesh/FPiUjrmFec+3lq98KsWnYY2C7g==", + "license": "MIT", "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">= 14" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "node_modules/@hotwired/turbo-rails": { + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.16.tgz", + "integrity": "sha512-Yxiy2x+N3eOIEDokvLzSrd08aI5RDKnFYDQFl2J/LuMEWTtPdY7oNP0F/gv/sSe5AV23Lwz4FitG/uNFXNM5tA==", + "license": "MIT", + "dependencies": { + "@hotwired/turbo": "^8.0.13", + "@rails/actioncable": ">=7.0" + } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, + "license": "Apache-2.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.18.0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.18.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=18.18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "Apache-2.0", "engines": { - "node": ">=7.0.0" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "node_modules/@keyv/serialize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.0.tgz", + "integrity": "sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g==", "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2265,6 +2207,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -2274,6 +2217,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2282,58 +2226,74 @@ "node": ">= 8" } }, - "node_modules/@rails/actioncable": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-7.1.3.tgz", - "integrity": "sha512-ojNvnoZtPN0pYvVFtlO7dyEN9Oml1B6IDM+whGKVak69MMYW99lC2NOWXWeE3bmwEydbP/nn6ERcpfjHVjYQjA==" + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } }, - "node_modules/@rails/ujs": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@rails/ujs/-/ujs-7.1.3.tgz", - "integrity": "sha512-FxtgKNvvIonoBE1TK7U10VMf6CYvzq8SIZ1XZ1Q8zcn/BEXzPzid3zC9qFiojuI5WXVwWhO8GFqApq0stD+OqQ==" + "node_modules/@rails/actioncable": { + "version": "8.0.201", + "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-8.0.201.tgz", + "integrity": "sha512-WiXZodvnK7u+wlu72DZydfV75x14HhzXI84sto9xcdsW1DMOHK+jYwQuuE/Wh/hKH5yajFIw/3DUP6MHDeGrbA==", + "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, - "engines": { - "node": ">=10.13.0" + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "@types/eslint": "*", + "@types/estree": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -2343,6 +2303,7 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -2351,46 +2312,25 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.10.0" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -2399,197 +2339,210 @@ "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -2601,19 +2554,22 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -2621,13 +2577,17 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, "peerDependencies": { - "acorn": "^8" + "acorn": "^8.14.0" } }, "node_modules/acorn-jsx": { @@ -2635,6 +2595,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2644,6 +2605,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2660,6 +2622,7 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -2673,15 +2636,16 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -2692,67 +2656,70 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } + "license": "MIT" }, "node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^1.0.2" + "environment": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -2762,16 +2729,20 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2780,71 +2751,37 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-uniq": "^1.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.find": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.2.tgz", - "integrity": "sha512-DRumkfW97iZGOfn+lIXbkVrXL04sfYKX+EfOodo8XboR5sxPDVvOjZTF/rysusa9lmhmSOeD6Vp6RKQP+eP4Tg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", + "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" }, "engines": { @@ -2854,34 +2791,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2891,32 +2811,36 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -2925,37 +2849,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/asynciterator.prototype": { + "node_modules/async-function": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -2971,12 +2888,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -2990,10 +2908,14 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3002,30 +2924,31 @@ } }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", + "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", "dev": true, + "license": "MIT", "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" + "find-up": "^5.0.0" }, "engines": { - "node": ">= 14.15.0" + "node": "^18.20.0 || ^20.10.0 || >=22.0.0" }, "peerDependencies": { "@babel/core": "^7.12.0", - "webpack": ">=5" + "webpack": ">=5.61.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -3033,25 +2956,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3061,19 +2986,22 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3084,6 +3012,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -3092,9 +3021,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.25.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", + "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", "dev": true, "funding": [ { @@ -3110,11 +3039,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001735", + "electron-to-chromium": "^1.5.204", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -3127,18 +3057,41 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.4.tgz", + "integrity": "sha512-Gd7ccIUkZ9TE2odLQVS+PDjIvQCdJKUlLdJRVvZu0aipj07Qfx+XIej7hhDrKGGoIxV5m5fT/kOJNJPQhQneRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.11.0", + "keyv": "^5.5.0" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.0.tgz", + "integrity": "sha512-QG7qR2tijh1ftOvClut4YKKg1iW6cx3GZsKoGyJPxHkGWK9oJhG9P3j5deP0QQOGDowBMVQFaP+Vm4NpGYvmIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.0" + } }, "node_modules/call-bind": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", - "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "set-function-length": "^1.2.0" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -3147,43 +3100,45 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/caniuse-api": { @@ -3191,6 +3146,7 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, + "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -3199,9 +3155,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001585", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", - "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", + "version": "1.0.30001737", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", + "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", "dev": true, "funding": [ { @@ -3216,27 +3172,32 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } @@ -3252,51 +3213,39 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "dependencies": { - "del": "^4.1.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.0 <6.0.0" - } - }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "string-width": "^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3307,6 +3256,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -3321,6 +3271,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -3329,76 +3280,83 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", + "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=20" } }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-js": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.1.tgz", - "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", + "dev": true, "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", + "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.25.3" }, "funding": { "type": "opencollective", @@ -3406,15 +3364,16 @@ } }, "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -3432,10 +3391,11 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3446,10 +3406,11 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -3458,31 +3419,33 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12 || >=16" } }, "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -3490,7 +3453,7 @@ }, "peerDependencies": { "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" + "webpack": "^5.27.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -3501,26 +3464,12 @@ } } }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/css-loader/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3528,27 +3477,22 @@ "node": ">=10" } }, - "node_modules/css-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.2.tgz", + "integrity": "sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" + "@jridgewell/trace-mapping": "^0.3.25", + "cssnano": "^7.0.4", + "jest-worker": "^29.7.0", + "postcss": "^8.4.40", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -3579,10 +3523,11 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -3595,12 +3540,13 @@ } }, "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", "dev": true, + "license": "MIT", "dependencies": { - "mdn-data": "2.0.30", + "mdn-data": "2.12.2", "source-map-js": "^1.0.1" }, "engines": { @@ -3608,10 +3554,11 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -3624,6 +3571,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -3632,78 +3580,82 @@ } }, "node_modules/cssnano": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz", - "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.1.tgz", + "integrity": "sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==", "dev": true, + "license": "MIT", "dependencies": { - "cssnano-preset-default": "^6.0.3", - "lilconfig": "^3.0.0" + "cssnano-preset-default": "^7.0.9", + "lilconfig": "^3.1.3" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/cssnano-preset-default": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", - "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^7.1.1", - "cssnano-utils": "^4.0.1", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.0.2", - "postcss-convert-values": "^6.0.2", - "postcss-discard-comments": "^6.0.1", - "postcss-discard-duplicates": "^6.0.1", - "postcss-discard-empty": "^6.0.1", - "postcss-discard-overridden": "^6.0.1", - "postcss-merge-longhand": "^6.0.2", - "postcss-merge-rules": "^6.0.3", - "postcss-minify-font-values": "^6.0.1", - "postcss-minify-gradients": "^6.0.1", - "postcss-minify-params": "^6.0.2", - "postcss-minify-selectors": "^6.0.2", - "postcss-normalize-charset": "^6.0.1", - "postcss-normalize-display-values": "^6.0.1", - "postcss-normalize-positions": "^6.0.1", - "postcss-normalize-repeat-style": "^6.0.1", - "postcss-normalize-string": "^6.0.1", - "postcss-normalize-timing-functions": "^6.0.1", - "postcss-normalize-unicode": "^6.0.2", - "postcss-normalize-url": "^6.0.1", - "postcss-normalize-whitespace": "^6.0.1", - "postcss-ordered-values": "^6.0.1", - "postcss-reduce-initial": "^6.0.2", - "postcss-reduce-transforms": "^6.0.1", - "postcss-svgo": "^6.0.2", - "postcss-unique-selectors": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.9.tgz", + "integrity": "sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.1", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.4", + "postcss-convert-values": "^7.0.7", + "postcss-discard-comments": "^7.0.4", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.6", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.4", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.4", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.4", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.1.0", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, "node_modules/cssnano-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", - "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", "dev": true, + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/csso": { @@ -3711,6 +3663,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -3724,6 +3677,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -3737,90 +3691,104 @@ "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", - "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { + "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -3828,6 +3796,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3840,29 +3809,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -3871,15 +3823,16 @@ } }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-serializer": { @@ -3887,6 +3840,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -3906,13 +3860,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -3924,10 +3880,11 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -3937,36 +3894,47 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/electron-to-chromium": { - "version": "1.4.665", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", - "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", - "dev": true + "version": "1.5.208", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz", + "integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=0.6" + "node": ">=10.13.0" } }, "node_modules/entities": { @@ -3974,6 +3942,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3981,11 +3950,22 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -3993,60 +3973,90 @@ "node": ">=4" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -4055,85 +4065,113 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-iterator-helpers": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.16.tgz", - "integrity": "sha512-CREG2A9Vq7bpDRnldhFcMKuKArvkZtsH6Y0DHOHVg49qhf+LD8uEdUM3OkOAICv0EziGtDEnQtqY2/mfBILpFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.1", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.0" + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -4143,150 +4181,175 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", + "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.34.0", + "@eslint/plugin-kit": "^0.3.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "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", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/eslint-import-resolver-webpack": { - "version": "0.13.8", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.8.tgz", - "integrity": "sha512-Y7WIaXWV+Q21Rz/PJgUxiW/FTBOWmU8NTLdz+nz9mMoiz5vAev/fOaQxwD7qRzTfE3HSm1qsxZ5uRd7eX+VEtA==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, + "license": "MIT", "dependencies": { - "array.prototype.find": "^2.2.2", - "debug": "^3.2.7", - "enhanced-resolve": "^0.9.1", - "find-root": "^1.1.0", - "hasown": "^2.0.0", - "interpret": "^1.4.0", - "is-core-module": "^2.13.1", - "is-regex": "^1.1.4", - "lodash": "^4.17.21", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", - "semver": "^5.7.2" + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">=4" }, "peerDependencies": { - "eslint-plugin-import": ">=1.4.0", - "webpack": ">=1.11.0" - } - }, - "node_modules/eslint-import-resolver-webpack/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/eslint-import-resolver-webpack/node_modules/resolve": { + "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -4299,392 +4362,78 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-import-resolver-webpack/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "debug": "^3.2.7" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "ms": "^2.1.1" + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "esutils": "^2.0.2" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "node": ">=4.0" } }, "node_modules/estraverse": { @@ -4692,6 +4441,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -4701,6 +4451,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -4709,63 +4460,45 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -4776,6 +4509,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4787,42 +4521,64 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -4830,6 +4586,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4837,33 +4594,12 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4880,52 +4616,46 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/fraction.js": { @@ -4933,6 +4663,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -4941,31 +4672,29 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -4979,6 +4708,7 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4988,21 +4718,41 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5011,27 +4761,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5040,31 +4793,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5076,13 +4810,15 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -5095,6 +4831,7 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -5109,6 +4846,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5117,21 +4855,26 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5140,44 +4883,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5187,58 +4907,54 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "ISC" }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5247,10 +4963,11 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5263,6 +4980,7 @@ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -5274,10 +4992,11 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5285,41 +5004,19 @@ "node": ">= 0.4" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/hookified": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.12.0.tgz", + "integrity": "sha512-hMr1Y9TCLshScrBbV2QxJ9BROddxZ12MX9KsCtuGGy/3SmmN5H1PllKerrVlSotur9dlE8hmUKAOSa3WDzsZmQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "MIT" }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5327,25 +5024,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, + "license": "MIT", "bin": { - "husky": "lib/bin.js" + "husky": "bin.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -5356,6 +5045,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -5364,28 +5054,31 @@ } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5397,20 +5090,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -5425,144 +5110,58 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5575,15 +5174,21 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5593,25 +5198,30 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5625,6 +5235,7 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5633,24 +5244,48 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5664,17 +5299,22 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5685,6 +5325,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5693,12 +5334,16 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5712,6 +5357,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -5720,19 +5366,24 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5745,17 +5396,20 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5764,74 +5418,27 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5841,45 +5448,43 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5889,12 +5494,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5904,12 +5512,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -5919,34 +5528,46 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5956,34 +5577,42 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jest-util": { @@ -5991,6 +5620,7 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -6003,81 +5633,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -6088,20 +5649,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6113,10 +5666,11 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -6124,13 +5678,15 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6139,46 +5695,52 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -6191,6 +5753,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -6206,6 +5769,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -6215,21 +5779,24 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", - "dev": true + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6239,52 +5806,59 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lint-staged": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", - "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.0.0", - "debug": "4.3.4", - "execa": "7.2.0", - "lilconfig": "2.1.0", - "listr2": "6.6.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.1" + "version": "16.1.5", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.5.tgz", + "integrity": "sha512-uAeQQwByI6dfV7wpt/gVqg+jAPaSp8WwOA8kKC/dv1qw14oGpnpAisY65ibGHUGDUv0rYaZ8CAJZ/1U8hUvC2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.5.0", + "commander": "^14.0.0", + "debug": "^4.4.1", + "lilconfig": "^3.1.3", + "listr2": "^9.0.1", + "micromatch": "^4.0.8", + "nano-spawn": "^1.0.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=20.17" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -6292,38 +5866,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/lint-staged/node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/listr2": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", - "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.2.tgz", + "integrity": "sha512-VVd7cS6W+vLJu2wmq4QmfVj14Iep7cz4r/OWNk36Aq5ZOY7G8/BfCrQFexcwB1OIxB3yERiePfE/REBjEFulag==", "dev": true, + "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", + "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", - "log-update": "^5.0.1", - "rfdc": "^1.3.0", - "wrap-ansi": "^8.1.0" + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "node": ">=20.0.0" } }, "node_modules/loader-runner": { @@ -6331,6 +5889,7 @@ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -6340,6 +5899,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6351,115 +5911,129 @@ } }, "node_modules/loco-js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/loco-js/-/loco-js-6.3.0.tgz", - "integrity": "sha512-3/NM9t2y00YpngfCQZfE30SX2wDhs+7eUGqid/d/WaRkFlgmmljYClucNLwzyPK5UF3AQ/XG1TbJDGo5ThLxJA==", - "dependencies": { - "loco-js-core": "^0.2.2", - "loco-js-model": "^2.0.1" - } + "resolved": "../../js/loco-js", + "link": true }, "node_modules/loco-js-core": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/loco-js-core/-/loco-js-core-0.2.2.tgz", - "integrity": "sha512-988iPMnHu3P6DJU4doPTkoLiPkKk/2xr/RZWXR/7Y/oglh3bU8gLES3T73gKYZf/G1jO5EnHqWr8LnM2p1kmFg==" + "resolved": "../../js/loco-js-core", + "link": true }, "node_modules/loco-js-model": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/loco-js-model/-/loco-js-model-2.0.1.tgz", - "integrity": "sha512-mObRdaOXQ57z+z57aUFV3RUvspsYE++XNmm1+vGNKdjroW5DDtTzeG74JPthIGIlWn9oKktwRsBWO061w2tUzA==" + "resolved": "../../js/loco-js-model", + "link": true }, "node_modules/loco-js-ui": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/loco-js-ui/-/loco-js-ui-6.0.1.tgz", - "integrity": "sha512-JUnjGVgZGoa3z3MV2+JDI3+JP6ImdrfIjUFMs5OdLaLB0uyTj11oYom3msX+R5H+greF6BR+8eKlX2SeBIxXOQ==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-JUnjGVgZGoa3z3MV2+JDI3+JP6ImdrfIjUFMs5OdLaLB0uyTj11oYom3msX+R5H+greF6BR+8eKlX2SeBIxXOQ==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/strip-ansi": { + "node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -6472,20 +6046,19 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, "node_modules/mathml-tag-names": { @@ -6493,44 +6066,27 @@ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", - "dev": true + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6540,24 +6096,27 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6569,6 +6128,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6578,6 +6138,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6585,32 +6146,25 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/mini-css-extract-plugin": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz", - "integrity": "sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", "dev": true, + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -6626,20 +6180,12 @@ "webpack": "^5.0.0" } }, - "node_modules/mini-css-extract-plugin/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6647,39 +6193,30 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "node_modules/nano-spawn": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.2.tgz", + "integrity": "sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==", "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -6687,6 +6224,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6698,73 +6236,29 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6774,42 +6268,17 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -6821,15 +6290,20 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6839,19 +6313,23 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -6862,28 +6340,32 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6892,41 +6374,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", - "dev": true, - "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6935,52 +6393,64 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -6996,6 +6466,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -7006,20 +6477,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7029,6 +6492,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -7041,6 +6505,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -7059,30 +6524,17 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7091,178 +6543,135 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, - "dependencies": { - "pinkie": "^2.0.0" + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^6.3.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "p-limit": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -7278,172 +6687,162 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12 || ^20.9 || >=22.0" }, "peerDependencies": { - "postcss": "^8.2.2" + "postcss": "^8.4.38" } }, "node_modules/postcss-colormin": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", - "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.4.tgz", + "integrity": "sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.25.1", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-convert-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", - "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.7.tgz", + "integrity": "sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.25.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-discard-comments": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", - "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz", + "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", - "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", "dev": true, + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-discard-empty": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", - "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", "dev": true, + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", - "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.0.0" + "postcss": "^8.4.32" } }, "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, + "license": "MIT", "dependencies": { - "cosmiconfig": "^8.3.5", + "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/postcss-loader/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7451,115 +6850,117 @@ "node": ">=10" } }, - "node_modules/postcss-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/postcss-merge-longhand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", - "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.2" + "stylehacks": "^7.0.5" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-merge-rules": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", - "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.6.tgz", + "integrity": "sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.25.1", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.1", - "postcss-selector-parser": "^6.0.15" + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", - "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", - "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", "dev": true, + "license": "MIT", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.1", + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-minify-params": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", - "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.4.tgz", + "integrity": "sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", - "cssnano-utils": "^4.0.1", + "browserslist": "^4.25.1", + "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", - "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.15" + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -7568,13 +6969,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -7585,12 +6987,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -7604,6 +7007,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -7614,232 +7018,238 @@ "postcss": "^8.1.0" } }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, "node_modules/postcss-normalize-charset": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", - "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", - "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", - "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", - "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-string": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", - "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", - "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", - "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.4.tgz", + "integrity": "sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.25.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", - "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", - "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-ordered-values": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", - "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", "dev": true, + "license": "MIT", "dependencies": { - "cssnano-utils": "^4.0.1", + "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", - "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.4.tgz", + "integrity": "sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", + "browserslist": "^4.25.1", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", - "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" }, "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=18.0" }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7849,61 +7259,66 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", - "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz", + "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" + "svgo": "^4.0.0" }, "engines": { - "node": "^14 || ^16 || >= 18" + "node": "^18.12.0 || ^20.9.0 || >= 18" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", - "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, + "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -7914,6 +7329,7 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -7925,6 +7341,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -7936,6 +7353,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7958,115 +7376,52 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.26.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.1.1" } }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -8074,43 +7429,27 @@ "node": ">= 10.13.0" } }, - "node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" }, "node_modules/reflect.getprototypeof": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", - "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0", - "get-intrinsic": "^1.2.3", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -8123,13 +7462,15 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -8137,30 +7478,19 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -8170,15 +7500,16 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -8186,25 +7517,37 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/require-from-string": { @@ -8212,23 +7555,28 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8238,6 +7586,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -8250,6 +7599,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8259,77 +7609,45 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", @@ -8350,19 +7668,22 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -8390,17 +7711,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "isarray": "^2.0.5" }, "engines": { "node": ">= 0.4" @@ -8409,19 +7731,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -8429,7 +7775,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -8437,15 +7783,16 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -8457,6 +7804,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -8468,13 +7816,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -8484,36 +7834,55 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8524,6 +7893,7 @@ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -8536,6 +7906,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8548,20 +7919,79 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -8571,16 +8001,24 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8590,6 +8028,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -8606,6 +8045,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8618,15 +8058,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8636,125 +8078,107 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true - }, "node_modules/string-argv": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.19" } }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8764,79 +8188,56 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { - "min-indent": "^1.0.1" + "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-json-comments": { @@ -8844,6 +8245,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8851,105 +8253,143 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, "node_modules/stylehacks": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", - "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.6.tgz", + "integrity": "sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", - "postcss-selector-parser": "^6.0.15" + "browserslist": "^4.25.1", + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4.32" } }, "node_modules/stylelint": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", - "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", + "version": "16.23.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.23.1.tgz", + "integrity": "sha512-dNvDTsKV1U2YtiUDfe9d2gp902veFeo3ecCWdGlmLm2WFrAV0+L5LoOj/qHSBABQwMsZPJwfC4bf39mQm1S5zw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/media-query-list-parser": "^2.1.4", - "@csstools/selector-specificity": "^3.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^8.2.0", - "css-functions-list": "^3.2.1", - "css-tree": "^2.3.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.1", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.4.1", + "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^7.0.0", + "file-entry-cache": "^10.1.3", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", + "ignore": "^7.0.5", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.29.0", + "known-css-properties": "^0.37.0", "mathml-tag-names": "^2.1.3", - "meow": "^10.1.5", - "micromatch": "^4.0.5", + "meow": "^13.2.0", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.28", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.13", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^3.0.0", + "supports-hyperlinks": "^3.2.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", + "table": "^6.9.0", "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" + "node": ">=18.12.0" } }, "node_modules/stylelint-config-recommended": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz", - "integrity": "sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", + "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, "peerDependencies": { - "stylelint": "^15.0.0" + "stylelint": "^16.23.0" } }, "node_modules/stylelint-config-standard": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-30.0.1.tgz", - "integrity": "sha512-NbeHOmpRQhjZh5XB1B/S4MLRWvz4xxAxeDBjzl0tY2xEcayNhLbaRGF0ZQzq+DQZLCcPpOHeS2Ru1ydbkhkmLg==", + "version": "39.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-39.0.0.tgz", + "integrity": "sha512-JabShWORb8Bmc1A47ZyJstran60P3yUdI1zWMpGYPeFiC6xzHXJMkpKAd8EjIhq3HPUplIWWMDJ/xu0AiPd+kA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^10.0.1" + "stylelint-config-recommended": "^17.0.0" + }, + "engines": { + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^15.0.0" + "stylelint": "^16.23.0" + } + }, + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/stylelint/node_modules/array-union": { @@ -8957,6 +8397,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8965,24 +8406,36 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stylelint/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", - "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.4.tgz", + "integrity": "sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^6.1.13" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.13.tgz", + "integrity": "sha512-gmtS2PaUjSPa4zjObEIn4WWliKyZzYljgxODBfxugpK6q6HU9ClXzgCJ+nlcPKY9Bt090ypTOLIFWkV0jbKFjw==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.2.0" - }, - "engines": { - "node": ">=12.0.0" + "cacheable": "^1.10.4", + "flatted": "^3.3.3", + "hookified": "^1.11.0" } }, "node_modules/stylelint/node_modules/globby": { @@ -8990,6 +8443,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -9005,11 +8459,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylelint/node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/stylelint/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9019,6 +8494,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9028,6 +8504,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9037,50 +8514,47 @@ "node": ">=8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "has-flag": "^4.0.0" }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -9088,6 +8562,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9102,24 +8577,25 @@ "dev": true }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", "dev": true, + "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", + "commander": "^11.1.0", "css-select": "^5.1.0", - "css-tree": "^2.3.1", + "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1", + "sax": "^1.4.1" }, "bin": { - "svgo": "bin/svgo" + "svgo": "bin/svgo.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=16" }, "funding": { "type": "opencollective", @@ -9127,19 +8603,37 @@ } }, "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, "engines": { - "node": ">= 10" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" } }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -9152,65 +8646,45 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/table/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/table/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9219,13 +8693,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/table/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -9243,6 +8719,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9252,23 +8729,42 @@ "node": ">=8" } }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.6" + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -9280,16 +8776,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -9313,20 +8810,12 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -9336,29 +8825,12 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9373,28 +8845,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -9402,47 +8861,12 @@ "node": ">=8.0" } }, - "node_modules/trim-newlines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", - "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -9450,42 +8874,33 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typed-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", - "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -9495,16 +8910,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -9514,45 +8932,58 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9562,6 +8993,7 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -9571,10 +9003,11 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9584,14 +9017,15 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -9607,9 +9041,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9623,6 +9058,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -9631,23 +9067,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "license": "MIT" }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -9657,20 +9085,23 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "version": "5.101.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", + "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", + "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9680,11 +9111,11 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -9703,42 +9134,40 @@ } }, "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, + "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", "colorette": "^2.0.14", - "commander": "^10.0.1", + "commander": "^12.1.0", "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", + "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" + "webpack-merge": "^6.0.1" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "5.x.x" + "webpack": "^5.82.0" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -9748,84 +9177,62 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=18" } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=8.0.0" } }, - "node_modules/webpack/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=6" + "node": ">=4.0" } }, "node_modules/which": { @@ -9833,6 +9240,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9844,39 +9252,45 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -9886,31 +9300,38 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9923,35 +9344,35 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { @@ -9959,6 +9380,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9966,32 +9388,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -10000,40 +9402,24 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", "dev": true, - "engines": { - "node": ">= 14" - } + "license": "ISC" }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">=10" + "node": ">= 14.6" } }, "node_modules/yocto-queue": { @@ -10041,6 +9427,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 313c3c15..a0d11a41 100644 --- a/package.json +++ b/package.json @@ -2,55 +2,53 @@ "private": true, "description": "Dummy app", "scripts": { - "build": "webpack --mode=production --node-env=production -c webpack.prod.js --progress", - "lint": "eslint *.js test/dummy/frontend --fix", + "prepare": "husky", + "format": "prettier --write .", + "lint": "eslint . --ext .js --fix && stylelint \"**/*.css\" --fix", "lint-staged": "lint-staged", - "prepare": "husky install", + "build": "webpack --mode=production --node-env=production -c webpack.prod.js --progress", "start": "webpack -c webpack.dev.js --watch --progress", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Zbigniew Humeniuk ", "license": "MIT", "dependencies": { - "@rails/actioncable": "^7.0.4-2", - "@rails/ujs": "^7.0.4-2", - "core-js": "^3.29.0", - "immer": "^9.0.19", - "loco-js": "^6.3.0", + "@hotwired/turbo-rails": "^8.0.16", + "@rails/actioncable": "^8.0.201", + "immer": "^10.1.1", + "loco-js": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js", + "loco-js-core": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js-core", + "loco-js-model": "/Users/zbigniewhumeniuk/dev/libs/js/loco-js-model", "loco-js-ui": "^6.0.1", "prop-types": "^15.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "redux": "^4.2.1" + "react": "^19.1.1", + "react-dom": "^19.1.1", + "redux": "^5.0.1" }, "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/eslint-parser": "^7.19.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "autoprefixer": "^10.4.13", - "babel-loader": "^9.1.2", - "clean-webpack-plugin": "^4.0.0", - "css-loader": "^6.7.3", - "css-minimizer-webpack-plugin": "^5.0.0", - "eslint": "^8.35.0", - "eslint-config-prettier": "^8.7.0", - "eslint-import-resolver-webpack": "^0.13.2", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.2", - "husky": "^8.0.3", - "lint-staged": "^13.1.2", - "mini-css-extract-plugin": "^2.7.3", - "postcss": "^8.4.31", - "postcss-import": "^15.1.0", - "postcss-loader": "^7.2.4", - "postcss-nested": "^6.0.1", - "prettier": "^2.8.4", - "stylelint": "^15.10.1", - "stylelint-config-standard": "^30.0.1", - "webpack": "^5.94.0", - "webpack-cli": "^5.0.1" + "@babel/core": "^7.28.3", + "@babel/preset-env": "^7.28.3", + "@babel/preset-react": "^7.27.1", + "@eslint/js": "^9.34.0", + "autoprefixer": "^10.4.21", + "babel-loader": "^10.0.0", + "core-js": "^3.45.1", + "css-loader": "^7.1.2", + "css-minimizer-webpack-plugin": "^7.0.2", + "eslint": "^9.33.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-react": "^7.37.5", + "globals": "^16.3.0", + "husky": "^9.1.7", + "lint-staged": "^16.1.5", + "mini-css-extract-plugin": "^2.9.4", + "postcss": "^8.5.6", + "postcss-loader": "^8.1.1", + "prettier": "^3.6.2", + "stylelint": "^16.23.1", + "stylelint-config-standard": "^39.0.0", + "webpack": "^5.101.2", + "webpack-cli": "^6.0.1" } } diff --git a/postcss.config.js b/postcss.config.js index ac35b756..4d6ebc27 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,9 +1,5 @@ module.exports = { ident: "postcss", sourceMap: true, - plugins: [ - require("postcss-import"), - require("postcss-nested"), - require("autoprefixer"), - ], + plugins: [require("autoprefixer")], }; diff --git a/test/dummy/.ruby-version b/test/dummy/.ruby-version index 15a27998..4d9d11cf 100644 --- a/test/dummy/.ruby-version +++ b/test/dummy/.ruby-version @@ -1 +1 @@ -3.3.0 +3.4.2 diff --git a/test/dummy/app/assets/bundles/application.css b/test/dummy/app/assets/bundles/application.css index 121f02f8..bf209708 100644 --- a/test/dummy/app/assets/bundles/application.css +++ b/test/dummy/app/assets/bundles/application.css @@ -1,2 +1 @@ -div.actions,div.field{margin-bottom:10px}.field_with_errors{background-color:red;display:table;padding:2px}*{margin:0;padding:0}body{background-color:#4b7399;font-family:Verdana,Helvetica,Arial,sans-serif;font-size:14px}a{color:#00f}a img{border:none}article,p{margin:14px 0}td,th{padding:4px 1px}h1{margin-bottom:20px}li{list-style-position:inside}.clear{clear:both;height:0;overflow:hidden}.none{display:none}.text_right{text-align:right}.margin-right-tiny{margin-right:4px}.bottom_space{margin-bottom:14px}.bold{font-weight:700}#container{background-color:#fff;border:1px solid #000;margin:20px auto 0;padding:20px 40px;width:80%}.flash{color:#fff;left:0;position:fixed;top:0;width:100%}.flash.notice{background-color:rgba(0,178,5,.9)}.flash.alert{background-color:rgba(208,0,0,.9)}.flash.warning{background-color:hsla(37,67%,67%,.9)}.flash p{text-align:center}#user_nav p{text-align:right}.errors{color:#d00}input[type=password],input[type=text],textarea{font-size:16px;height:30px;width:300px}input[type=submit]{font-size:20px}textarea{height:120px} -/*# sourceMappingURL=application.css.map*/ \ No newline at end of file +div.actions,div.field{margin-bottom:10px}.field_with_errors{background-color:red;display:table;padding:2px}*{margin:0;padding:0}body{background-color:#4b7399;font-family:Verdana,Helvetica,Arial,sans-serif;font-size:14px}a{color:#00f;& img{border:none}}article,p{margin:14px 0}td,th{padding:4px 1px}h1{margin-bottom:20px}li{list-style-position:inside}.clear{clear:both;height:0;overflow:hidden}.none{display:none}.text-right{text-align:right}.margin-right-tiny{margin-right:4px}.bottom-space{margin-bottom:14px}.bold{font-weight:700}#container{background-color:#fff;border:1px solid #000;margin:20px auto 0;padding:20px 40px;width:80%}.flash{color:#fff;left:0;position:fixed;top:0;width:100%;&.notice{background-color:rgba(0,178,5,.9)}&.alert{background-color:rgba(208,0,0,.9)}&.warning{background-color:hsla(37,67%,67%,.9)}& p{text-align:center}}#user-nav{& p{text-align:right}}.errors{color:#d00}input[type=password],input[type=text],textarea{font-size:16px;height:30px;width:300px}input[type=submit]{font-size:20px}textarea{height:120px} \ No newline at end of file diff --git a/test/dummy/app/assets/bundles/application.css.map b/test/dummy/app/assets/bundles/application.css.map index 89cb2d9f..7950feff 100644 --- a/test/dummy/app/assets/bundles/application.css.map +++ b/test/dummy/app/assets/bundles/application.css.map @@ -1 +1 @@ -{"version":3,"file":"application.css","mappings":"AAAA,sBAEE,kBACF,CAEA,mBAEE,oBAAqB,CACrB,aAAc,CAFd,WAGF,CCTA,EACE,QAAS,CACT,SACF,CAEA,KACE,wBAAyB,CACzB,8CAAkD,CAClD,cACF,CAEA,EACE,UAKF,CAHE,MACE,WACF,CAGF,UAEE,aACF,CAEA,MAEE,eACF,CAEA,GACE,kBACF,CAEA,GACE,0BACF,CAEA,OACE,UAAW,CACX,QAAS,CACT,eACF,CAEA,MACE,YACF,CAEA,YACE,gBACF,CAEA,mBACE,gBACF,CAEA,cACE,kBACF,CAEA,MACE,eACF,CAEA,WAGE,qBAAsB,CAEtB,qBAAuB,CACvB,kBAAgB,CAFhB,iBAAkB,CAHlB,SAMF,CAEA,OAKE,UAAW,CAFX,MAAO,CAFP,cAAe,CACf,KAAM,CAEN,UAkBF,CAfE,cACE,iCACF,CAEA,aACE,iCACF,CAEA,eACE,oCACF,CAEA,SACE,iBACF,CAIA,YACE,gBACF,CAGF,QACE,UACF,CAEA,+CAKE,cAAe,CADf,WAAY,CADZ,WAGF,CAEA,mBACE,cACF,CAEA,SACE,YACF","sources":["webpack:///./test/dummy/frontend/css/scaffold.css","webpack:///./test/dummy/frontend/css/global.css"],"sourcesContent":["div.field,\ndiv.actions {\n margin-bottom: 10px;\n}\n\n.field_with_errors {\n padding: 2px;\n background-color: red;\n display: table;\n}\n","* {\n margin: 0;\n padding: 0;\n}\n\nbody {\n background-color: #4b7399;\n font-family: Verdana, Helvetica, Arial, sans-serif;\n font-size: 14px;\n}\n\na {\n color: #00f;\n\n img {\n border: none;\n }\n}\n\np,\narticle {\n margin: 14px 0;\n}\n\nth,\ntd {\n padding: 4px 1px;\n}\n\nh1 {\n margin-bottom: 20px;\n}\n\nli {\n list-style-position: inside;\n}\n\n.clear {\n clear: both;\n height: 0;\n overflow: hidden;\n}\n\n.none {\n display: none;\n}\n\n.text_right {\n text-align: right;\n}\n\n.margin-right-tiny {\n margin-right: 4px;\n}\n\n.bottom_space {\n margin-bottom: 14px;\n}\n\n.bold {\n font-weight: bold;\n}\n\n#container {\n width: 80%;\n margin: 0 auto;\n background-color: #fff;\n padding: 20px 40px;\n border: solid 1px black;\n margin-top: 20px;\n}\n\n.flash {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n color: #fff;\n\n &.notice {\n background-color: rgba(0, 178, 5, 0.9);\n }\n\n &.alert {\n background-color: rgba(208, 0, 0, 0.9);\n }\n\n &.warning {\n background-color: rgba(227, 183, 113, 0.9);\n }\n\n p {\n text-align: center;\n }\n}\n\n#user_nav {\n p {\n text-align: right;\n }\n}\n\n.errors {\n color: #d00;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ntextarea {\n width: 300px;\n height: 30px;\n font-size: 16px;\n}\n\ninput[type=\"submit\"] {\n font-size: 20px;\n}\n\ntextarea {\n height: 120px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"application.css","mappings":"AAAA,sBAEE,kBACF,CAEA,mBAEE,oBAAqB,CACrB,aAAc,CAFd,WAGF,CCTA,EACE,QAAS,CACT,SACF,CAEA,KACE,wBAAyB,CACzB,8CAAkD,CAClD,cACF,CAEA,EACE,UAAW,CAEX,MACE,WACF,CACF,CAEA,UAEE,aACF,CAEA,MAEE,eACF,CAEA,GACE,kBACF,CAEA,GACE,0BACF,CAEA,OACE,UAAW,CACX,QAAS,CACT,eACF,CAEA,MACE,YACF,CAEA,YACE,gBACF,CAEA,mBACE,gBACF,CAEA,cACE,kBACF,CAEA,MACE,eACF,CAEA,WAGE,qBAAsB,CAEtB,qBAAuB,CACvB,kBAAgB,CAFhB,iBAAkB,CAHlB,SAMF,CAEA,OAKE,UAAW,CAFX,MAAO,CAFP,cAAe,CACf,KAAM,CAEN,UAAW,CAGX,SACE,iCACF,CAEA,QACE,iCACF,CAEA,UACE,oCACF,CAEA,IACE,iBACF,CACF,CAEA,UACE,IACE,gBACF,CACF,CAEA,QACE,UACF,CAEA,+CAKE,cAAe,CADf,WAAY,CADZ,WAGF,CAEA,mBACE,cACF,CAEA,SACE,YACF","sources":["webpack:///./test/dummy/frontend/css/scaffold.css","webpack:///./test/dummy/frontend/css/global.css"],"sourcesContent":["div.field,\ndiv.actions {\n margin-bottom: 10px;\n}\n\n.field_with_errors {\n padding: 2px;\n background-color: red;\n display: table;\n}\n","* {\n margin: 0;\n padding: 0;\n}\n\nbody {\n background-color: #4b7399;\n font-family: Verdana, Helvetica, Arial, sans-serif;\n font-size: 14px;\n}\n\na {\n color: #00f;\n\n & img {\n border: none;\n }\n}\n\np,\narticle {\n margin: 14px 0;\n}\n\nth,\ntd {\n padding: 4px 1px;\n}\n\nh1 {\n margin-bottom: 20px;\n}\n\nli {\n list-style-position: inside;\n}\n\n.clear {\n clear: both;\n height: 0;\n overflow: hidden;\n}\n\n.none {\n display: none;\n}\n\n.text-right {\n text-align: right;\n}\n\n.margin-right-tiny {\n margin-right: 4px;\n}\n\n.bottom-space {\n margin-bottom: 14px;\n}\n\n.bold {\n font-weight: bold;\n}\n\n#container {\n width: 80%;\n margin: 0 auto;\n background-color: #fff;\n padding: 20px 40px;\n border: solid 1px black;\n margin-top: 20px;\n}\n\n.flash {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n color: #fff;\n\n &.notice {\n background-color: rgb(0 178 5 / 90%);\n }\n\n &.alert {\n background-color: rgb(208 0 0 / 90%);\n }\n\n &.warning {\n background-color: rgb(227 183 113 / 90%);\n }\n\n & p {\n text-align: center;\n }\n}\n\n#user-nav {\n & p {\n text-align: right;\n }\n}\n\n.errors {\n color: #d00;\n}\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ntextarea {\n width: 300px;\n height: 30px;\n font-size: 16px;\n}\n\ninput[type=\"submit\"] {\n font-size: 20px;\n}\n\ntextarea {\n height: 120px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/test/dummy/app/assets/bundles/application.js b/test/dummy/app/assets/bundles/application.js index 891a8942..5035c0b2 100644 --- a/test/dummy/app/assets/bundles/application.js +++ b/test/dummy/app/assets/bundles/application.js @@ -1,2 +1 @@ -!function(){"use strict";var e,t={91520:function(e,t,r){r(64600),r(56844).c.start();var n=r(97320),a=r(20960),i=r(6640);const s="ADD_ARTICLES",o="PREPEND_ARTICLES",c="REMOVE_ARTICLE",l="SET_ARTICLES",d="UPDATE_ARTICLE",m="ADD_COMMENTS",u="REMOVE_COMMENT",p="SET_COMMENTS",f="UPDATE_COMMENT",y="PREPEND_USERS";function g(e){return{type:s,articles:e}}function h(e){return{type:l,articles:e}}function b(e,t){return{type:d,article:e,index:t}}function w(e,t){return{type:p,comments:e,articleId:t}}function v(e,t,r){return{type:f,comment:e,articleId:t,index:r}}var E=r(18928),_=r(524),I=(0,_.cp)(((e=[],t)=>{switch(t.type){case s:return e.concat(t.articles);case o:return t.articles.concat(e);case c:return e.filter((e=>e.id!==t.id));case l:return t.articles;case d:e[t.index]=t.article;break;default:return e}})),k=(0,_.cp)(((e={},t)=>{switch(t.type){case m:void 0===e[t.articleId]&&(e[t.articleId]=[]),e[t.articleId]=e[t.articleId].concat(t.comments);break;case u:if(null==e[t.articleId])return e;e[t.articleId]=e[t.articleId].filter((e=>e.id!==t.id));break;case p:e[t.articleId]=t.comments;break;case f:{const r=t.articleId;let n=t.index;if(!n){const a=e[r].find((e=>e.id===t.comment.id));n=e[r].indexOf(a)}e[r][n]=t.comment;break}default:return e}})),S=(0,_.cp)(((e=[],t)=>{switch(t.type){case"SET_USERS":return t.users;case y:return t.users.concat(e);default:return e}})),A=(0,E.TL)({articles:I,comments:k,users:S}),C=(0,E.eC)(A);const j=e=>function(t,r,n={}){let a=t[e];if(n.parentId&&(a=a[n.parentId]),void 0===a)return[null,null];const i=a.find((e=>e.id===r));return i?[i,a.indexOf(i)]:[null,null]},z=j("articles"),x=j("comments");function O(e,t,r){var n;return(t="symbol"==typeof(n=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?n:String(n))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class R extends n.Models.Base{constructor(e){super(e),this.published=null!=this.publishedAt}vulgarityLevel(){(null!=this.title&&/fuck/i.exec(this.title)||null!=this.content&&/fuck/i.exec(this.content))&&this.addErrorMessage("Article contains strong language.",{for:"base"})}setDefaultValuesForAdminReview(){this.adminRate=null==this.adminRate?3:this.adminRate,this.categoryId=null==this.categoryId?6:this.categoryId,this.adminReviewStartedAt=Date.now()}}O(R,"identity","Article"),O(R,"resources",{url:"/user/articles",paginate:{per:5},main:{url:"/articles",paginate:{per:3}},admin:{url:"/admin/articles",paginate:{per:4}}}),O(R,"attributes",{title:{validations:{presence:!0,length:{within:[3,255]}}},content:{validations:{presence:!0,length:{minimum:100}},remoteName:"text"},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"},commentsCount:{type:"Int",remoteName:"comments_count"},publishedAt:{type:"Date",remoteName:"published_at"},published:{},adminReview:{remoteName:"admin_review"},adminRate:{type:"Int",remoteName:"admin_rate"},categoryId:{type:"Int",remoteName:"category_id"},adminReviewStartedAt:{remoteName:"admin_review_started_at"}}),O(R,"validate",["vulgarityLevel"]);var B=R;function T(e,t,r){var n;return(t="symbol"==typeof(n=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?n:String(n))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class $ extends n.Models.Base{constructor(e){super(e)}}T($,"identity","Article.Comment"),T($,"remoteName","Comment"),T($,"resources",{url:"/user/articles/:articleId/comments",paginate:{per:10},main:{url:"/articles/:articleId/comments",paginate:{per:5,param:"page-num"}},admin:{url:"/admin/articles/:articleId/comments",paginate:{per:5}}}),T($,"attributes",{author:{validations:{presence:!0}},text:{validations:{presence:!0,vulgarity:!0}},articleId:{type:"Int",validations:{presence:!0},remoteName:"article_id"},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"},emotion:{type:"Int"},pinned:{type:"Boolean"},adminRate:{type:"Int",remoteName:"admin_rate"},approved:{type:"Boolean"}});var N=$;function M(e,t,r){var n;return(t="symbol"==typeof(n=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?n:String(n))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class D extends n.Models.Base{constructor(e){super(e)}}M(D,"identity","User"),M(D,"resources",{url:"/users",admin:{url:"/admin/users"}}),M(D,"paginate",{per:10}),M(D,"attributes",{email:{validations:{presence:!0,format:{with:/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i}}},username:{validations:{presence:!0,format:{with:/^[a-z][a-z0-9_-]*$/i}}},password:{validations:{presence:{on:"create"},confirmation:!0}},passwordConfirmation:{remoteName:"password_confirmation"},confirmed:{},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"}});var q=D,P=r(11504),L=r(97104),F=r(3268),U=r.n(F),H=class{constructor(e,t=(0,n.getLocale)()){this.date=e,this.skope=n.I18n[t].date}toString(e="default"){const t=this.skope.formats;switch(e){case"default":return this.strftime(t.default);case"short":return this.strftime(t.short);case"long":return this.strftime(t.long);default:console.log("Services.Date#toString: unknown format.")}}strftime(e){e=(e=e.replace("%Y",this.date.getFullYear())).replace("%y",this.date.getFullYear().toString().substr(-2,2));let t=this.date.getMonth()+1;return t=t>=10?t:`0${t}`,(e=(e=(e=(e=(e=(e=e.replace("%m",t)).replace("%b",this.skope.abbr_month_names[this.date.getMonth()])).replace("%B",this.skope.month_names[this.date.getMonth()])).replace("%d",this.date.getDate()>=10?this.date.getDate():`0${this.date.getDate()}`)).replace("%H",this.date.getHours()>=10?this.date.getHours():`0${this.date.getHours()}`)).replace("%M",this.date.getMinutes()>=10?this.date.getMinutes():`0${this.date.getMinutes()}`)).replace("%S",this.date.getSeconds()>=10?this.date.getSeconds():`0${this.date.getSeconds()}`)}};function V({comment:e}){const t=new H(e.createdAt).strftime("%d %b %y");return P.createElement("p",{id:`comment_${e.id}`},P.createElement("b",null,e.author)," on ",P.createElement("i",null,t)," (",P.createElement("a",{href:`/admin/articles/${e.articleId}/comments/${e.id}/edit`},"edit"),")",P.createElement("br",null),e.text)}V.propTypes={comment:U().instanceOf(N).isRequired};var W=V;function Y({comments:e}){return 0===e.length?P.createElement("p",null,"No comments"):P.createElement(P.Fragment,null,e.map((e=>P.createElement(W,{comment:e,key:e.id}))))}Y.propTypes={comments:U().arrayOf(U().instanceOf(N)).isRequired};var J=Y;const G=e=>{document.getElementById("article_author").textContent=e.author,document.getElementById("article_title").textContent=e.title,document.getElementById("article_text").textContent=e.content},K=e=>async function(t){if("updated"===t){const t=await e.reload();G(t)}};function Q({article:e}){const t=new H(e.publishedAt).toString("short");return P.createElement("article",{id:`article_${e.id}`},P.createElement("h2",null,e.title),P.createElement("p",null,P.createElement("i",null,e.author," wrote this on ",t," /"," ",P.createElement("span",{className:"comments_quantity"},e.commentsCount," comment",1===e.commentsCount?"":"s"))),P.createElement("p",null,e.content),P.createElement("p",null,P.createElement("a",{href:`/admin/articles/${e.id}/edit`},"Review")))}Q.propTypes={article:U().instanceOf(B).isRequired};var X=Q;function Z(e){const[t,r]=(0,P.useState)(e.articles);(0,P.useEffect)((()=>{const e=C.subscribe((()=>r(C.getState().articles)));return()=>{e()}}),[]);const n=t.map((e=>P.createElement(X,{key:e.id,article:e})));return P.createElement(P.Fragment,null,n)}Z.propTypes={articles:U().arrayOf(U().instanceOf(B)).isRequired};var ee=Z;const te=async()=>{const e=await B.find(n.helpers.params.id);(e=>{(0,n.subscribe)({to:e,with:K(e)}),G(e)})(e),(e=>{e.setDefaultValuesForAdminReview(),new a.UI.Form({id:"edit_article_form",for:e}).render()})(e)};const re=()=>window.location.href="/admin";const ne=({user:e})=>P.createElement("tr",{id:`user_${e.id}`},P.createElement("td",null,e.email),P.createElement("td",null,e.username),P.createElement("td",{className:"confirmed"},e.confirmed?"Yes":"No"),P.createElement("td",null,P.createElement("a",{href:`/admin/users/${e.id}`},"Show")," |"," ",P.createElement("a",{href:`/admin/users/${e.id}/edit`},"Edit")," |"," ",P.createElement("a",{href:`/admin/users/${e.id}`,"data-method":"delete","data-confirm":"Are you sure?"},"Delete")," ","|"," ",P.createElement("a",{href:"#",onClick:t=>((e,t)=>{e.preventDefault(),lt.emit({type:"PING",user_id:t})})(t,e.id)},"Ping")));ne.propTypes={user:U().instanceOf(q).isRequired};var ae=ne;function ie(e){const[t,r]=(0,P.useState)(e.users);(0,P.useEffect)((()=>{const e=C.subscribe((()=>r(C.getState().users)));return()=>{e()}}),[]);const n=t.map((e=>P.createElement(ae,{key:`user_${e.id}`,user:e})));return P.createElement(P.Fragment,null,n)}ie.propTypes={users:U().arrayOf(U().instanceOf(q)).isRequired};var se=ie;class oe extends n.Controllers.Base{initialize(){this.setScope("admin")}}oe.Articles=class{async published(){const e=await B.get("published");C.dispatch(h(e.resources)),(0,L.render)(P.createElement(ee,{articles:e.resources}),document.getElementById("articles"))}async edit(){te(),(async()=>{(e=>{(0,L.render)(P.createElement(J,{comments:e}),document.getElementById("comments"))})((await N.all({articleId:n.helpers.params.id})).resources)})()}},oe.Comments=class{edit(){((e={})=>{const t=new a.UI.Form({for:new N({id:e.commentId,resource:"admin"}),id:`edit_comment_${e.commentId}`,initObj:!0});t.render(),window.test={commentFormObj:t.getObj()}})({commentId:n.helpers.params.id})}},oe.Sessions=class{new(){new a.UI.Form({id:"sign_in_admin",callbackSuccess:re}).render()}},oe.Users=class{async index(){const e=await q.get("all");C.dispatch(function(e){return{type:y,users:e}}(e.resources)),(0,L.render)(P.createElement(se,{users:e.resources}),document.querySelector("table tbody"))}async show(){(e=>{document.getElementById("user_email").textContent=e.email,document.getElementById("user_username").textContent=e.username,document.getElementById("user_confirmed").textContent=e.confirmed?"Yes":"No",(e=>{const t=document.getElementById("edit_link"),r=t.getAttribute("href");t.setAttribute("href",r.replace("/0/",`/${e.id}/`))})(e)})(await q.find(n.helpers.params.id))}edit(){var e;e=new q({id:n.helpers.params.id}),new a.UI.Form({for:e,initObj:!0,id:"admin_user_form"}).render()}};var ce=oe;const le=(e,t)=>e.comments[t];function de({comment:e}){const t=new H(e.createdAt).strftime("%d %b %y");return P.createElement("p",{id:`comment_${e.id}`},P.createElement("b",null,e.author)," on ",P.createElement("i",null,t)," wrote:",P.createElement("br",null),e.text)}de.propTypes={comment:U().instanceOf(N).isRequired};var me=de;function ue(e){const t=e.articleId,[r,n]=(0,P.useState)(e.comments);(0,P.useEffect)((()=>{const e=C.subscribe((()=>{n(le(C.getState(),t))}));return()=>{e()}}),[]);const a=r.map((e=>P.createElement(me,{key:e.id,comment:e})));return 0===r.length?P.createElement("p",{id:"no_comments"},"No comments."):P.createElement(P.Fragment,null,a)}ue.propTypes={articleId:U().number.isRequired,comments:U().arrayOf(U().instanceOf(N)).isRequired};var pe=ue;function fe(e){const[t,r]=(0,P.useState)(e.comments);return(0,P.useEffect)((()=>{const t=C.subscribe((()=>{r(le(C.getState(),e.articleId))}));return()=>{t()}}),[]),P.createElement(P.Fragment,null,`${t.length} comment${1===t.length?"":"s"}`)}fe.propTypes={articleId:U().number.isRequired,comments:U().arrayOf(U().instanceOf(N)).isRequired};var ye=fe;const ge=(e,t,r)=>{null!=e[t]&&(r.classList.add(t),document.querySelector(".flash p").textContent=e[t])};var he=(e={})=>{const{hide:t}=e,r=document.querySelector(".flash");(e=>{e.classList.remove("notice"),e.classList.remove("alert"),e.classList.remove("warning")})(r),ge(e,"notice",r),ge(e,"alert",r),ge(e,"warning",r),r.classList.remove("none"),t&&((e=4e3)=>{setTimeout((()=>{document.querySelector(".flash").classList.add("none")}),e)})()};const be=e=>async function(t){switch(t){case"updating":he({warning:"Author is currently editing article. Be aware of possible changes."});break;case"updated":{const t=await e.reload();we(t,!0)}}},we=(e,t=!1)=>{!1===t&&(0,n.subscribe)({to:e,with:be(e)}),document.getElementById("title").textContent=e.title,document.getElementById("author").textContent=e.author;const r=new H(e.publishedAt);document.getElementById("pub_date").textContent=r.toString("short");const a=document.getElementById("text");a.innerHTML="";const i=((s=(s=(s=e.content).replace(/\r\n?/,"\n")).trim()).length>0&&(s="

"+(s=(s=s.replace(/\n\n+/g,"

")).replace(/\n/g,"
"))+"

"),s);var s;a.insertAdjacentHTML("beforeend",i)};var ve={renderArticle:we,renderForm:e=>{new a.UI.Form({for:e,initObj:!0,id:"new_comment"}).render()}};function Ee(){const[e,t]=(0,P.useState)(1),[r,n]=(0,P.useState)(!1);return r?P.createElement("span",null,"No more posts."):P.createElement("a",{href:"#",id:"load_more",onClick:async function(r){r.preventDefault();const a=e+1;t(a);let i=null;try{i=await B.get("all",{page:a})}catch(r){return void alert(`Invalid URL: ${r}`)}i.resources.length>0?C.dispatch(g(i.resources)):n(!0)}},"Load more…")}function _e({article:e}){const t=new H(e.publishedAt).toString("short");return P.createElement("article",{id:`article_${e.id}`},P.createElement("h2",null,e.title),P.createElement("p",null,P.createElement("i",null,e.author," wrote this on ",t," /"," ",P.createElement("a",{href:`/articles/${e.id}#comments`,className:"comments_quantity"},e.commentsCount," comment",1===e.commentsCount?"":"s"))),P.createElement("p",null,e.content),P.createElement("p",null,P.createElement("a",{href:`/articles/${e.id}`},"Continued…")))}_e.propTypes={article:U().instanceOf(B).isRequired};var Ie=_e;function ke(e){const[t,r]=(0,P.useState)(e.articles);(0,P.useEffect)((()=>{const e=C.subscribe((()=>r(C.getState().articles)));return()=>{e()}}),[]);const n=t.map((e=>P.createElement(Ie,{key:e.id,article:e})));return P.createElement(P.Fragment,null,n)}ke.propTypes={articles:U().arrayOf(U().instanceOf(B)).isRequired};var Se=ke;const Ae=e=>{switch(e){case"confirming":document.getElementById("verification_info").textContent=document.getElementById("verification_progress").textContent;break;case"confirmed":window.location.href="/user/sessions/new?event=confirmed"}},Ce=e=>{(0,n.subscribe)({to:new q({id:e.id}),with:Ae}),document.querySelector("form").style.display="none",document.getElementById("sign_in_paragraph").classList.remove("none"),document.getElementById("verification_info").classList.remove("none"),he({notice:e.notice})};class je extends n.Controllers.Base{initialize(){this.setScope("main")}}je.Articles=class{async show(){const e=new N({articleId:n.helpers.params.id});ve.renderForm(e),(async()=>{const e=await B.find(n.helpers.params.id);C.dispatch(h([e])),ve.renderArticle(e)})(),(async()=>{const e=await N.get("count",{articleId:n.helpers.params.id}),t=await N.all({articleId:n.helpers.params.id,total:e.total});C.dispatch(w(t,n.helpers.params.id)),(0,L.render)(P.createElement(pe,{articleId:n.helpers.params.id,comments:t}),document.getElementById("comments")),(0,L.render)(P.createElement(ye,{articleId:n.helpers.params.id,comments:t}),document.getElementById("comments_count"))})()}},je.Pages=class{async index(){(0,L.render)(P.createElement(Ee,null),document.getElementById("load_more_wrapper"));const e=await B.get("all",{page:1});C.dispatch(h(e.resources)),(0,L.render)(P.createElement(Se,{articles:e.resources}),document.getElementById("articles"))}},je.Users=class{new(){new a.UI.Form({for:new q,callbackSuccess:Ce}).render()}};var ze=je;function xe(e,t,r){var n;return(t="symbol"==typeof(n=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?n:String(n))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class Oe extends n.Models.Base{constructor(e){super(e)}}xe(Oe,"identity","Room.Member"),xe(Oe,"resources",{url:"/user/rooms/:roomId/members",paginate:{per:100}});var Re,Be,Te,$e,Ne=Oe;class Me extends n.Models.Base{constructor(e){super(e)}}Re=Me,Te="Room",(Be="symbol"==typeof($e=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(Be="identity"))?$e:String($e))in Re?Object.defineProperty(Re,Be,{value:Te,enumerable:!0,configurable:!0,writable:!0}):Re[Be]=Te;var De=Me;const qe=e=>{document.querySelector(`#room_${e} td.members`)},Pe=(e,t)=>{switch(e){case"Room member_joined":(e=>{const t=qe(e);t.textContent=parseInt(t.text())+1})(t.room_id);break;case"Room member_left":(e=>{const t=qe(e);t.textContent=parseInt(t.text())-1})(t.room_id);break;case"Room created":document.getElementById("rooms_list").insertAdjacentHTML("beforeend",((r=t.room).id,r.name,r.id,void r.id));break;case"Room destroyed":{const e=document.getElementById(`room_${t.room_id}`);e.parentNode.removeChild(e)}}var r},Le=e=>{const t=`
  • ${e.username}
  • `;document.getElementById("members").insertAdjacentHTML("beforeend",t)},Fe=e=>function(t,r){switch(t){case"Room member_joined":if(r.room_id!==e)return;Le(r.member);break;case"Room member_left":if(r.room_id!==e)return;(e=>{const t=document.querySelector(`#members li#user_${e.id}`);t.parentNode.removeChild(t)})(r.member)}};var Ue=(e,t)=>{const r=`

    ${t}: ${e}

    `;document.getElementById("messages").insertAdjacentHTML("beforeend",r)},He=class{constructor(){this.callbacks={}}index(){(0,n.subscribe)({to:De,with:Pe})}async show(){var e;this.callbacks.receivedMessage=Ue,e=n.helpers.params.id,(0,n.subscribe)({to:De,with:Fe(e)}),(e=>{document.querySelector("[data-behavior~=room-speaker]").addEventListener("keypress",(t=>{13===t.keyCode&&(t.preventDefault(),lt.emit({type:"NEW_MESSAGE",txt:t.target.value,room_id:e}),t.target.value="")}))})(e);(e=>{for(const t of e)Le(t)})((await Ne.all({roomId:n.helpers.params.id})).resources)}};const Ve=e=>{document.getElementById("article_title").textContent=e.title,document.getElementById("article_text").textContent=e.content;const t=document.getElementById("publish_article");t&&null!=e.publishedAt?t.style.display="none":t&&(t.style.display="")},We=e=>async function(t){switch(t){case"updated":await e.reload(),e.applyChanges(),Ve(e);break;case"destroyed":window.location.href="/user/articles?message=deleted"}};function Ye({comment:e,isAdmin:t=!1}){const[r,n]=(0,P.useState)(!1),a=new H(e.createdAt).strftime("%d %b %y"),i=async t=>{t.preventDefault(),n(!0),e.approved=!0,(await e.updateAttribute("approved")).ok&&C.dispatch(v(new N({...e,approved:!0}),e.articleId))};return P.createElement("p",{id:`comment_${e.id}`},P.createElement("b",null,e.author)," on ",P.createElement("i",null,a),t?(()=>{let t;return t=e.approved?P.createElement(P.Fragment,null,P.createElement("span",null,"approved")," |"," "):r?P.createElement(P.Fragment,null,P.createElement("span",null,"approving...")," |"," "):P.createElement(P.Fragment,null,P.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}/approve`,className:"approve",onClick:i},"approve")," ","|"," "),P.createElement(P.Fragment,null," ","(",t,P.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}/edit`},"edit")," ","|"," ",P.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}`,"data-method":"delete","data-confirm":"Are you sure?"},"delete"),")")})():"",P.createElement("br",null),e.text)}Ye.propTypes={comment:U().instanceOf(N).isRequired,isAdmin:U().bool};var Je=Ye;function Ge(e){const t=e.articleId,r=e.isAdmin||!1,[n,a]=(0,P.useState)(e.comments);if((0,P.useEffect)((()=>{const e=C.subscribe((()=>a(le(C.getState(),t))));return()=>{e()}}),[]),0===n.length)return P.createElement("p",null,"No comments.");const i=n.map((e=>P.createElement(Je,{key:e.id,comment:e,isAdmin:r})));return P.createElement(P.Fragment,null,i)}Ge.propTypes={articleId:U().number.isRequired,isAdmin:U().bool,comments:U().arrayOf(U().instanceOf(N)).isRequired};var Ke=Ge;const Qe=e=>async function(t,r){switch(t){case"updating":document.querySelector("h1").getAttribute("data-mark")!==r.mark&&he({warning:"Uuups someone else started editing this article."});break;case"updated":await e.reload(),(e=>{for(const[t]of Object.entries(e.changes())){const r=document.querySelector(`a.apply_changes[data-for=${e.getAttrRemoteName(t)}]`);r&&r.classList.remove("none")}})(e);break;case"destroyed":window.location.href="/user/articles?message=deleted"}};var Xe=e=>{C.dispatch(g([e])),(0,n.subscribe)({to:e,with:Qe(e)});const t=new a.UI.Form({for:e});t.render(),(e=>{for(const t of Array.from(document.querySelectorAll("a.apply_changes")))t.addEventListener("click",(t=>{t.preventDefault();const r=e.getObj(),n=r.getAttrName(t.target.getAttribute("data-for"));r[n]=r.changes()[n].is,e.fill(n),t.target.classList.add("none")}))})(t)};function Ze({article:e,onArticleDestroyed:t}){return P.createElement("tr",{id:`article_${e.id}`},P.createElement("td",null,e.title),P.createElement("td",null,e.content),P.createElement("td",{className:"comments_quantity"},e.commentsCount),P.createElement("td",{className:"published"},e.publishedAt?"yes":"no"),P.createElement("td",null,P.createElement("a",{href:`/user/articles/${e.id}`},"Show")," |",P.createElement("a",{href:`/user/articles/${e.id}/edit`},"Edit")," |",P.createElement("a",{href:`/user/articles/${e.id}`,className:"delete_article",onClick:async r=>{if(r.preventDefault(),!confirm("Are you sure?"))return;const n=await e.delete(null);var a;n.success&&C.dispatch((a=n.id,{type:c,id:a})),t(n)}},"Delete")))}Ze.propTypes={article:U().instanceOf(B).isRequired,onArticleDestroyed:U().func.isRequired};var et=Ze;function tt(e){const[t,r]=(0,P.useState)(e.articles);(0,P.useEffect)((()=>{const e=C.subscribe((()=>r(C.getState().articles)));return()=>{e()}}),[]);const n=t.map((t=>P.createElement(et,{key:t.id,article:t,onArticleDestroyed:e.onArticleDestroyed})));return P.createElement(P.Fragment,null,n)}tt.propTypes={articles:U().arrayOf(U().instanceOf(B)).isRequired,onArticleDestroyed:U().func.isRequired};var rt=tt;const nt=e=>{e.success?he({notice:e.notice}):he({alert:e.alert})};class at extends n.Controllers.Base{}at.Articles=class{async index(){"deleted"===n.helpers.params.message&&he({alert:"Article has been deleted."});const e=await B.get("all");C.dispatch(h(e.resources)),(0,L.render)(P.createElement(rt,{articles:e.resources,onArticleDestroyed:nt}),document.getElementById("article_list"))}show(){(async()=>{const e=await B.find(n.helpers.params.id);C.dispatch(h([e])),(e=>{null!==e&&((0,n.subscribe)({to:e,with:We(e)}),(e=>{document.getElementById("publish_article").addEventListener("click",(async t=>{t.preventDefault(),t.target.textContent="Publishing...";try{await e.put("publish"),document.getElementById("publish_article").outerHTML="Published!"}catch(e){document.getElementById("publish_article").textContent="Publish",he({alert:"Connection error!"})}}))})(e),(e=>{const t=document.getElementById("edit_link").getAttribute("href");document.getElementById("edit_link").setAttribute("href",t.replace("/0/",`/${e}/`))})(e.id),Ve(e))})(e)})(),(async()=>{const e=await N.all({articleId:n.helpers.params.id});C.dispatch(w(e.resources,n.helpers.params.id)),(0,L.render)(P.createElement(Ke,{articleId:n.helpers.params.id,comments:e.resources}),document.getElementById("comments"))})()}new(){Xe(new B)}async edit(){(async e=>{const t=await N.all({articleId:e});C.dispatch(w(t.resources,e)),(0,L.render)(P.createElement(Ke,{articleId:e,comments:t.resources,isAdmin:!0}),document.getElementById("comments"))})(n.helpers.params.id);const e=await B.find(n.helpers.params.id);Xe(e)}},at.Rooms=He;var it=at;const st=({article_id:e},t)=>{const[r,n]=z(C.getState(),e);if(!r)return;const a=new B({...r,commentsCount:r.commentsCount+t});C.dispatch(b(a,n))};B.Comment=N,De.Member=Ne;const ot=(0,n.init)({cable:(0,i.gF)(),controllers:{Admin:ce,Main:ze,User:it},models:{Article:B,Room:De,User:q},notificationCenter:async e=>{switch(e.type){case"PING":lt.getEnv().namespaceController.constructor===it&&alert("Ping!");break;case"NEW_MESSAGE":(lt.getEnv().namespaceController.constructor!==it||lt.getEnv().controller.constructor!==He||"show"!==lt.getEnv().action?()=>{}:lt.getEnv().controller.callbacks.receivedMessage)(e.message,e.author);break;case"Article created":(async({id:e})=>{if(lt.getEnv().namespaceController.constructor!==it)return;const t=await B.find({id:e,abbr:!0});C.dispatch(g([t]))})(e.payload);break;case"Article published":(async({id:e})=>{if(lt.getEnv().namespaceController.constructor===ce){const t=await B.find({id:e,abbr:!0,resource:"admin"});C.dispatch(function(e){return{type:o,articles:e}}([t]))}else{const t=await B.find({id:e,abbr:!0});C.dispatch(g([t]))}})(e.payload);break;case"Article updated":(async({id:e})=>{const t={id:e,abbr:!0};lt.getEnv().namespaceController.constructor===ce&&(t.resource="admin");let[r,n]=z(C.getState(),e);r&&(r=await B.find(t),C.dispatch(b(r,n)))})(e.payload);break;case"Article.Comment created":(async({article_id:e,id:t})=>{const r={articleId:e,id:t};lt.getEnv().namespaceController.constructor===ze&&(r.resource="main");const[n]=z(C.getState(),e);if(!n)return;const a=await N.find(r);null!==a&&(C.dispatch(function(e,t){return{type:m,articleId:t,comments:e}}([a],e)),st({article_id:e},1))})(e.payload);break;case"Article.Comment destroyed":st(e.payload,-1),(({article_id:e,id:t})=>{C.dispatch(function(e,t){return{type:u,id:e,articleId:t}}(t,e))})(e.payload);break;case"Article.Comment updated":(async({article_id:e,id:t})=>{const[r,n]=x(C.getState(),t,{parentId:e});if(!r)return;const a=await r.reload();C.dispatch(v(a,e,n))})(e.payload);break;case"User created":{const t=await q.find(e.payload.id);C.dispatch(function(e){return{type:y,users:e}}([t]));break}}},notifications:{log:!0,size:10,disconnectedForTooLong:()=>{he({alert:"You have been disconnected from the server for too long. Reload page!",hide:!1})}},postInit:()=>{"test"===document.querySelector("body").getAttribute("data-rails-env")&&ot.getWire().setPollingTime(1e3)}});(0,a.connect)((0,n.createConnector)(ot));var ct,lt=ot;n.Validators.Vulgarity=(function(e,t,r){t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(ct=class extends n.Validators.Base{constructor(){super()}validate(){if(null!=this.val)switch(typeof this.val){case"string":{const e=this._getVulgarWord();if(!new RegExp(`${e}`,["i"]).exec(this.val))return;this._addErrorMessage();break}default:throw new TypeError(`Vulgarity validator is applicable only for strings and ${this.attr} isn't.`)}}_addErrorMessage(){const e=n.I18n[(0,n.getLocale)()].errors.messages.vulgarity;this.obj.addErrorMessage(e,{for:this.attr})}_getVulgarWord(){switch((0,n.getLocale)()){case"pl":return"kurwa";case"en":return"fuck"}}},"identity","Vulgarity"),ct),n.I18n.pl={variants:{few(e){const t=parseInt((r=String(e))[r.length-1]);var r;-1!==[2,3,4].indexOf(t)&&(2!==String(e).length||String(e)[0])}},models:{},attributes:{},ui:{form:{sending:"Wysyłam...",success:"Sukces",errors:{connection:"Błąd z połączeniem",invalid_data:"Nieprawidłowe dane"}}},date:{formats:{default:"%d-%m-%Y",short:"%d %b",long:"%B %d, %Y"},day_names:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],abbr_day_names:["nie","pon","wto","śro","czw","pią","sob"],month_names:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],abbr_month_names:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"]},errors:{messages:{accepted:"musi zostać zaakceptowane",blank:"nie może być puste",confirmation:"nie zgadza się z polem %{attribute}",empty:"nie może być puste",equal_to:"musi być równe %{count}",even:"musi być parzyste",exclusion:"jest zarezerwowane",greater_than:"musi być większe od %{count}",greater_than_or_equal_to:"musi być większe lub równe %{count}",inclusion:"nie znajduje się na liście dopuszczalnych wartości",invalid:"jest nieprawidłowe",less_than:"musi być mniejsze od %{count}",less_than_or_equal_to:"musi być mniejsze lub równe %{count}",not_a_number:"nie jest liczbą",not_an_integer:"musi być liczbą całkowitą",odd:"musi być nieparzyste",present:"musi być puste",too_long:{few:"jest za długie (maksymalnie %{count} znaki)",many:"jest za długie (maksymalnie %{count} znaków)",one:"jest za długie (maksymalnie jeden znak)",other:"jest za długie (maksymalnie %{count} znaków)"},too_short:{few:"jest za krótkie (przynajmniej %{count} znaki)",many:"jest za krótkie (przynajmniej %{count} znaków)",one:"jest za krótkie (przynajmniej jeden znak)",other:"jest za krótkie (przynajmniej %{count} znaków)"},wrong_length:{few:"ma nieprawidłową długość (powinna wynosić %{count} znaki)",many:"ma nieprawidłową długość (powinna wynosić %{count} znaków)",one:"ma nieprawidłową długość (powinna wynosić jeden znak)",other:"ma nieprawidłową długość (powinna wynosić %{count} znaków)"},other_than:"musi być inna niż %{count}"}}},n.I18n.pl.models.User="Użytkownik",n.I18n.pl.attributes.User={password:"Hasło",passwordConfirmation:"Powtórz hasło"},n.I18n.en.errors.messages.vulgarity="contains strong language.",n.I18n.pl.errors.messages.vulgarity="zawiera mocny język.",n.I18n.en.date={formats:{default:"%Y-%m-%d",short:"%b %d",long:"%B %d, %Y"},day_names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbr_day_names:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],month_names:["January","February","March","April","May","June","July","August","September","October","November","December"],abbr_month_names:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},window.test={getLine:()=>lt.getLine(),getWire:()=>lt.getWire()}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e].call(i.exports,i,i.exports,n),i.exports}n.m=t,e=[],n.O=function(t,r,a,i){if(!r){var s=1/0;for(d=0;d=i)&&Object.keys(n.O).every((function(e){return n.O[e](r[c])}))?r.splice(c--,1):(o=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[r,a,i]},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={72:0};n.O.j=function(t){return 0===e[t]};var t=function(t,r){var a,i,s=r[0],o=r[1],c=r[2],l=0;if(s.some((function(t){return 0!==e[t]}))){for(a in o)n.o(o,a)&&(n.m[a]=o[a]);if(c)var d=c(n)}for(t&&t(r);l{if(-1!==e.indexOf(t))return null;const n=(e=>{let t=e.length;return e.find((e,n)=>{if(null===e)return t=n,!0}),t})(e);return e[n]=t,n},o=(e,t,n)=>{void 0!==s?.[e]?.[t]?.[n]&&(s[e][t][n]=null)},a=e=>{const t=e.getIdentity();void 0===s[t]&&(s[t]={}),void 0===s[t][e.id]&&(s[t][e.id]=[]),s[t][e.id][0]=e};var c={get imap(){return s},clear:()=>s={},subscribe:e=>{const t=()=>{};if("object"==typeof e.to){const n=((e,t={})=>{const n=t.with;a(n);const r=s[n.getIdentity()][n.id];return i(r,e)})(e.with,{with:e.to});return null===n?t:()=>{o(e.to.getIdentity(),e.to.id,n)}}if("function"==typeof e.to){const n=((e,t={})=>{void 0===s[e]&&(s[e]={}),void 0===s[e].collection&&(s[e].collection=[]);const n=s[e].collection;return i(n,t.to)})(e.to.getIdentity(),{to:e.with});return null===n?t:()=>{o(e.to.getIdentity(),"collection",n)}}},unsubscribe:o,add:a,find:(e,t)=>void 0!==s[e]&&null!=s[e][t]?s[e][t][0]:null,findConnected:(e,t)=>void 0!==s[e]&&void 0!==s[e][t]&&s[e][t].length>1?s[e][t].slice(1):[]};class l{static instance(e,t,n){const r=this.identity;null==this.sharedInstances[r]&&(this.sharedInstances[r]=new j[r]);const s=this.sharedInstances[r];return s.assignAttribs(e,t,n),s}constructor(){this.obj=null,this.attr=null,this.val=null,this.opts=null}assignAttribs(e,t,n){this.obj=e,this.attr=t,this.val=this.obj[this.attr],this.opts=n}}var u=l;l.sharedInstances={};class d extends u{constructor(){super()}validate(){if("string"==typeof this.val){if(null!=this.val&&0===this.val.length)return}else if(null==this.val)return;this.#e()}#e(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.present;this.obj.addErrorMessage(e,{for:this.attr})}}var m=d;d.identity="Absence";class h extends u{constructor(){super()}validate(){const e=this.obj[this.#t()];null!=this.val&&null!=e&&this.val===e||this.#e()}#e(){const e=this.attr.charAt(0).toUpperCase()+this.attr.slice(1),t=r[n.locale].attributes[this.obj.getIdentity()],s=t&&t[this.attr]||e;let i=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.confirmation;i=i.replace("%{attribute}",s),this.obj.addErrorMessage(i,{for:this.#t()})}#t(){return`${this.attr}Confirmation`}}var p=h;h.identity="Confirmation";class f extends u{constructor(){super()}validate(){-1!==(this.opts.in||this.opts.within||[]).indexOf(this.val)&&this.#e()}#e(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.exclusion;this.obj.addErrorMessage(e,{for:this.attr})}}var g=f;f.identity="Exclusion";class y extends u{constructor(){super()}validate(){null==this.opts.with.exec(this.val||"")&&this.#e()}#e(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.invalid;this.obj.addErrorMessage(e,{for:this.attr})}}var b=y;y.identity="Format";class _ extends u{constructor(){super()}validate(){-1===(this.opts.in||this.opts.within||[]).indexOf(this.val)&&this.#e()}#e(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.inclusion;this.obj.addErrorMessage(e,{for:this.attr})}}var v=_;_.identity="Inclusion";class w extends u{constructor(){super()}validate(){if(null==this.val)return;let e=null;const[t,n]=this.#n();null!=t&&null!=n&&t===n&&this.val.length!==t?e=this.#r("wrong_length",t):null!=t&&this.val.lengthn&&(e=this.#r("too_long",n)),null!==e&&this.obj.addErrorMessage(e,{for:this.attr})}#n(){return[this.opts.minimum||this.opts.is||null!=this.opts.within&&this.opts.within[0]||null,this.opts.maximum||this.opts.is||null!=this.opts.within&&this.opts.within[1]||null]}#r(e,t){if(1===t)return r[n.locale].errors.messages[e].one;let s=null;for(const i of["few","many"])if(this.#s(i,t)){s=r[n.locale].errors.messages[e][i];break}return null==s&&(s=r[n.locale].errors.messages[e].other),null!=this.opts.message&&(s=this.opts.message),/%\{count\}/.exec(s)&&(s=s.replace("%{count}",t)),s}#s(e,t){if(null!=r[n.locale].variants[e])return r[n.locale].variants[e](t)}}var E=w;w.identity="Length";class I extends u{constructor(){super()}validate(){isNaN(this.val)?this.#i():null!=this.opts.only_integer&&Number(this.val)!==parseInt(this.val,10)?this.#o():null!=this.opts.greater_than&&Number(this.val)<=this.opts.greater_than?this.#a():null!=this.opts.greater_than_or_equal_to&&Number(this.val)=this.opts.less_than?this.#u():null!=this.opts.less_than_or_equal_to&&Number(this.val)>this.opts.less_than_or_equal_to?this.#d():null!=this.opts.other_than&&Number(this.val)===this.opts.other_than?this.#m():null!=this.opts.odd&&Number(this.val)%2!=1?this.#h():null!=this.opts.even&&Number(this.val)%2!=0&&this.#p()}#i(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.not_a_number;this.obj.addErrorMessage(e,{for:this.attr})}#o(){const e=r[n.locale].errors.messages.not_an_integer;this.obj.addErrorMessage(e,{for:this.attr})}#a(){let e=r[n.locale].errors.messages.greater_than;e=e.replace("%{count}",this.opts.greater_than),this.obj.addErrorMessage(e,{for:this.attr})}#c(){let e=r[n.locale].errors.messages.greater_than_or_equal_to;e=e.replace("%{count}",this.opts.greater_than_or_equal_to),this.obj.addErrorMessage(e,{for:this.attr})}#l(){let e=r[n.locale].errors.messages.equal_to;e=e.replace("%{count}",this.opts.equal_to),this.obj.addErrorMessage(e,{for:this.attr})}#u(){let e=r[n.locale].errors.messages.less_than;e=e.replace("%{count}",this.opts.less_than),this.obj.addErrorMessage(e,{for:this.attr})}#d(){let e=r[n.locale].errors.messages.less_than_or_equal_to;e=e.replace("%{count}",this.opts.less_than_or_equal_to),this.obj.addErrorMessage(e,{for:this.attr})}#m(){let e=r[n.locale].errors.messages.other_than;e=e.replace("%{count}",this.opts.other_than),this.obj.addErrorMessage(e,{for:this.attr})}#h(){const e=r[n.locale].errors.messages.odd;this.obj.addErrorMessage(e,{for:this.attr})}#p(){const e=r[n.locale].errors.messages.even;this.obj.addErrorMessage(e,{for:this.attr})}}var k=I;I.identity="Numericality";class S extends u{constructor(){super()}validate(){if("string"==typeof this.val){if(null!=this.val&&this.val.length>0)return}else if(null!=this.val)return;this.#e()}#e(){const e=null!=this.opts.message?this.opts.message:r[n.locale].errors.messages.blank;this.obj.addErrorMessage(e,{for:this.attr})}}var C=S;S.identity="Presence";class A extends u{constructor(){super()}validate(){return E.instance(this.obj,this.attr,this.opts).validate()}}var O=A;A.identity="Size";var j={Absence:m,Base:u,Confirmation:p,Exclusion:g,Format:b,Inclusion:v,Length:E,Numericality:k,Presence:C,Size:O};const R=(e,t,n,r={})=>{const s=(e=>{const t={};if(!e)return t;const n=["resource","total","count"];return Object.keys(e).forEach(r=>{-1===n.indexOf(r)&&(t[r]=e[r])}),t})(n),i="GET"===e?`${t}?${(e=>{let t="";return Object.keys(e).forEach(n=>{""!==t&&(t=`${t}&`),t=`${t}${n}=${encodeURIComponent(e[n])}`}),t})(s)}`:t,o=document.querySelector("meta[name='csrf-token']"),a=new XMLHttpRequest;return a.withCredentials=!0===r.cookiesByCORS,a.open(e,i),a.setRequestHeader("Accept","application/json"),a.setRequestHeader("Content-Type","application/json"),o&&a.setRequestHeader("X-CSRF-Token",o.content),null!=r.authorizationHeader&&a.setRequestHeader("Authorization",r.authorizationHeader),a.send(JSON.stringify(s)),a};var N=class{static getIdentity(){if(null!=this.identity)return this.identity;throw new Error("Specify Model's identity!")}static getRemoteName(){return null!=this.remoteName?this.remoteName:this.getIdentity()}static all(e={}){return this.get("all",e)}static get(e,t={}){return this.__send("GET",e,t)}static post(e,t={}){return this.__send("POST",e,t)}static put(e,t={}){return this.__send("PUT",e,t)}static patch(e,t={}){return this.__send("PATCH",e,t)}static delete(e,t={}){return this.__send("DELETE",e,t)}static find(e){let t,n={};"object"==typeof e?(n={...e},t=e.id,delete n.id):t=e;const r=`${this.__getResourcesUrl(n)}/${t}`,s=R("GET",r,n,this.__requestOpts());return new Promise((t,n)=>{s.onerror=e=>n(e),s.onload=n=>{if(404===n.target.status)return void t(null);const r=JSON.parse(n.target.response);t(this.__initFromJSON(r,e.resource))}})}static getAttribRemoteName(e){return null==this.attributes||null==this.attributes[e]?null:null==this.attributes[e].remoteName?e:this.attributes[e].remoteName}static getResourcesUrlParams(e){let t=this.__getResourcesUrl({resource:e.resource});const n=/:(\w+)\/?/,r=[];let s;for(;s=n.exec(t);)r.push(s[1]),t=t.replace(s[0],s[1]);return r}static __getResourcesUrl(e={}){let t;t=null==this.resources?`/${this.getRemoteName().toLowerCase()}s`:e.resource?this.resources[e.resource].url:null!=n.scope&&null!=this.resources&&null!=this.resources[n.scope]?this.resources[n.scope].url:this.resources.url,null!=this.protocolWithHost?t=`${this.protocolWithHost}${t}`:null!=n.protocolWithHost&&(t=`${n.protocolWithHost}${t}`);const r=/:([a-zA-Z]+)\/?/.exec(t);return null==r||(null!=e[r[1]]?(t=t.replace(`:${r[1]}`,e[r[1]]),delete e[r[1]]):null!=e.obj&&null!=e.obj[r[1]]&&(t=t.replace(`:${r[1]}`,e.obj[r[1]]))),t}static __requestOpts(){return{authorizationHeader:n.authorizationHeader||this.authorizationHeader,cookiesByCORS:null!=this.cookiesByCORS?this.cookiesByCORS:n.cookiesByCORS}}static __page(e,t,n){const r=t.url;t.params[t.pageParam]=e;const s=R(t.method,r,t.params,this.__requestOpts());return new Promise((e,r)=>{s.onerror=e=>r(e),s.onload=r=>{const s=JSON.parse(r.target.response);if(Array.isArray(s))for(const e of s){const r=this.__initFromJSON(e,t.resource);n.push(r)}else if(null!=s.resources){n.constructor===Array&&(n={resources:[],count:0});for(const e of s.resources){const r=this.__initFromJSON(e,t.resource);n.resources.push(r)}n.count=s.count}else for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&(n[e]=s[e]);e(n)}})}static __paginate(e){const t={method:e.method,url:e.url,params:e.params,pageParam:e.pageParam,resource:e.resource};return this.__page(e.pageNum||1,t,[]).then(n=>{const r=n.count||e.total;let s=Promise.resolve(n);if(null!=e.pageNum)return s;if(r<=e.perPage)return s;let i=parseInt(r/e.perPage,10);if(i!==r/e.perPage&&(i+=1),1===i)return s;for(let e=2;e<=i;e+=1)(e=>{s=s.then(()=>this.__page(e,t,n))})(e);return s})}static __getPaginationParam(e){const t="page";return null!=e&&null!=this.resources&&this.resources[e]?this.resources[e].paginate&&this.resources[e].paginate.param||t:null!=n.scope&&null!=this.resources&&null!=this.resources[n.scope]?this.resources[n.scope]&&this.resources[n.scope].paginate&&this.resources[n.scope].paginate.param||t:null!=this.resources&&null!=this.resources.paginate&&null!=this.resources.paginate.param?this.resources.paginate.param:t}static __getPaginationPer(e){return null!=e&&null!=this.resources&&this.resources[e]?this.resources[e].paginate&&this.resources[e].paginate.per:null!=n.scope&&null!=this.resources&&null!=this.resources[n.scope]?this.resources[n.scope]&&this.resources[n.scope].paginate&&this.resources[n.scope].paginate.per:null!=this.resources&&null!=this.resources.paginate&&null!=this.resources.paginate.per?this.resources.paginate.per:null}static __send(e,t,n){let r=this.__getResourcesUrl(n);"all"!==t&&(r=`${r}/${t}`);const s={method:e,url:r,params:n,resource:n.resource,perPage:this.__getPaginationPer(n.resource),pageNum:n.page,pageParam:this.__getPaginationParam(n.resource),total:n.total||n.count};return this.__paginate(s)}static __initFromJSON(e,t){const n=new this(e);return n.resource=t,c.add(n),n}constructor(e={}){this.id=null,this.errors=null,this.resource=e.resource,null!=this.constructor.attributes&&this.#f(),null!=e&&this.#g(e)}setResource(e){this.resource=e}getIdentity(){return this.constructor.getIdentity()}getAttrRemoteName(e){return null==this.constructor.attributes||null==this.constructor.attributes[e]?null:this.constructor.attributes[e].remoteName||e}getAttrName(e){if(null==this.constructor.attributes)return e;if(null!=this.constructor.attributes[e])return e;for(const t in this.constructor.attributes)if(this.constructor.attributes[t].remoteName===e)return t;return e}getAttrType(e){return null==this.constructor.attributes||null==this.constructor.attributes[e]?null:this.constructor.attributes[e].type}assignAttr(e,t){const n=this.getAttrType(e);if(null!=t){switch(n){case"Date":t=new Date(Date.parse(t));break;case"Integer":case"Int":t=parseInt(t,10);break;case"Float":t=parseFloat(t);break;case"Boolean":case"Bool":t="boolean"==typeof t?t:Boolean(parseInt(t,10));break;case"Number":t=Number(t);break;case"String":t=String(t)}this[e]=t}else this[e]=null}attributes(){const e={id:this.id};if(null==this.constructor.attributes)return e;for(const t in this.constructor.attributes)e[t]=this[t];return e}isValid(){if(null==this.constructor.attributes)return!0;this.errors=null;for(const e in this.constructor.attributes){const t=this.constructor.attributes[e];if(null!=t&&null!=t.validations)for(const n in t.validations){const r=t.validations[n];if(null!=this.id&&"create"===r.on)continue;if(null==this.id&&"update"===r.on)continue;if(null!=r.if&&!r.if(this))continue;const s=n.charAt(0).toUpperCase()+n.slice(1);if(null==j[s]){console.warn(`"${s}" validator is not implemented!`);continue}const i=this.#y(r);j[s].instance(this,e,i).validate()}}if(null!=this.constructor.validate)for(const e of this.constructor.validate)"function"==typeof this[e]&&this[e]();return null==this.errors}isInvalid(){return!this.isValid()}isEmpty(){const e=this.attributes();for(const t in e)if(null!==this[t])return!1;return!0}addErrorMessage(e,t={}){null==this.errors&&(this.errors={});const n=t.for;null==this.errors[n]&&(this.errors[n]=[]),this.errors[n].push(e)}save(){const e=null!=this.id?"PUT":"POST",t=R(e,this.#b(),this.serialize(),this.constructor.__requestOpts());return new Promise((e,n)=>{t.onerror=e=>n(e),t.onload=t=>{const n=JSON.parse(t.target.response);n.success||null!=n.errors&&this.#_(n.errors),e(n)}})}updateAttribute(e){const t=R("PUT",this.#b(),this.serialize(e),this.constructor.__requestOpts());return new Promise((e,n)=>{t.onerror=e=>n(e),t.onload=t=>{if(t.target.status>=200&&t.target.status<400){const n=JSON.parse(t.target.response);if(n.success)return void e(n);null!=n.errors&&this.#_(n.errors),e(n)}else t.target.status>=500&&n(t)}})}serialize(e=null){if(null==this.constructor.attributes)return{};const t={},n=this.constructor.getRemoteName().toLowerCase();t[n]={};let r={};null!=e?r[e]=null:r=this.constructor.attributes;for(const e in r){const r=this.getAttrRemoteName(e);t[n][r]=this[e]}return t}reload(){const e={id:this.id,resource:this.resource},t=this.constructor.getResourcesUrlParams({resource:this.resource});for(const n of t)e[n]=this[n];return this.constructor.find(e)}changes(){const e={},t=c.find(this.getIdentity(),this.id),n=this.attributes();for(const r in n){const s=n[r];if(s!==t[r]){if(null!=s&&s.constructor===Date&&t[r]-s===0)continue;s!==t[r]&&(e[r]={is:t[r],was:s})}}return e}applyChanges(){const e=this.changes();for(const t in e)this[t]=e[t].is}toKey(){return`${this.getIdentity().toLowerCase()}_${this.id}`}get(e,t={}){return this.#v("GET",e,t)}post(e,t={}){return this.#v("POST",e,t)}put(e,t={}){return this.#v("PUT",e,t)}patch(e,t={}){return this.#v("PATCH",e,t)}delete(e,t={}){return this.#v("DELETE",e,t)}#v(e,t,n){let r=this.#b();null!=t&&(r=`${r}/${t}`);const s=R(e,r,n,this.constructor.__requestOpts());return new Promise((e,t)=>{s.onerror=e=>t(e),s.onload=n=>{if(n.target.status>=200&&n.target.status<400){const t=JSON.parse(n.target.response);e(t)}else n.target.status>=500&&t(n)}})}#g(e){for(const t in e){const n=e[t],r=this.getAttrName(t);this.assignAttr(r,n)}}#f(){for(const e in this.constructor.attributes)this[e]=null}#_(e){for(const t in e){const n=e[t],r=this.getAttrName(t);for(const e of n)this.addErrorMessage(e,{for:r})}}#b(){const e=this.constructor.__getResourcesUrl({resource:this.resource,obj:this});return null==this.id?e:`${e}/${this.id}`}#y(e){const t={};for(const n in e){const r=e[n];t[n]="function"==typeof r?r(this):r}return t}};N.prototype.clone=function(){return new this.constructor({...this.attributes()})};var $={Base:N};const z={IdentityMap:c,Models:$};return t}()},728:function(e,t,n){"use strict";n(559),document.addEventListener("turbo:before-render",e=>{const{namespace:t,controller:n,action:r}=e.detail.newBody.dataset;document.body.dataset.namespace=t,document.body.dataset.controller=n,document.body.dataset.action=r});var r=n(916),s=n(278),i=class{setScope(e){s.Config.scope=e}},o=n(540),a=n(338);const c="ADD_ARTICLES",l="PREPEND_ARTICLES",u="REMOVE_ARTICLE",d="SET_ARTICLES",m="UPDATE_ARTICLE",h="ADD_COMMENTS",p="REMOVE_COMMENT",f="SET_COMMENTS",g="UPDATE_COMMENT",y="PREPEND_USERS";function b(e){return{type:c,articles:e}}function _(e){return{type:d,articles:e}}function v(e,t){return{type:m,article:e,index:t}}function w(e,t){return{type:f,comments:e,articleId:t}}function E(e,t,n){return{type:g,comment:e,articleId:t,index:n}}var I=n(644),k=n(932),S=(0,k.jM)((e=[],t)=>{switch(t.type){case c:{const n=t.articles.filter(t=>!e.some(e=>e.id===t.id));return void e.push(...n)}case l:return t.articles.concat(e);case u:return e.filter(e=>e.id!==t.id);case d:return t.articles;case m:e[t.index]=t.article;break;default:return e}}),C=(0,k.jM)((e={},t)=>{switch(t.type){case h:void 0===e[t.articleId]&&(e[t.articleId]=[]),e[t.articleId]=e[t.articleId].concat(t.comments);break;case p:if(null==e[t.articleId])return e;e[t.articleId]=e[t.articleId].filter(e=>e.id!==t.id);break;case f:e[t.articleId]=t.comments;break;case g:{const n=t.articleId;let r=t.index;if(!r){const s=e[n].find(e=>e.id===t.comment.id);r=e[n].indexOf(s)}e[n][r]=t.comment;break}default:return e}}),A=(0,k.jM)((e=[],t)=>{switch(t.type){case"SET_USERS":return t.users;case y:return t.users.concat(e);default:return e}}),O=(0,I.HY)({articles:S,comments:C,users:A}),j=(0,I.Yl)(O);class R extends s.Models.Base{static identity="Article";static resources={url:"/user/articles",paginate:{per:5},main:{url:"/articles",paginate:{per:3}},admin:{url:"/admin/articles",paginate:{per:4}}};static attributes={title:{validations:{presence:!0,length:{within:[3,255]}}},content:{validations:{presence:!0,length:{minimum:100}},remoteName:"text"},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"},commentsCount:{type:"Int",remoteName:"comments_count"},publishedAt:{type:"Date",remoteName:"published_at"},published:{},adminReview:{remoteName:"admin_review"},adminRate:{type:"Int",remoteName:"admin_rate"},categoryId:{type:"Int",remoteName:"category_id"},adminReviewStartedAt:{remoteName:"admin_review_started_at"}};static validate=["vulgarityLevel"];constructor(e){super(e),this.published=null!=this.publishedAt}vulgarityLevel(){(null!=this.title&&/fuck/i.exec(this.title)||null!=this.content&&/fuck/i.exec(this.content))&&this.addErrorMessage("Article contains strong language.",{for:"base"})}setDefaultValuesForAdminReview(){this.adminRate=null==this.adminRate?3:this.adminRate,this.categoryId=null==this.categoryId?6:this.categoryId,this.adminReviewStartedAt=Date.now()}}var N=R;class $ extends s.Models.Base{static identity="Article.Comment";static remoteName="Comment";static resources={url:"/user/articles/:articleId/comments",paginate:{per:10},main:{url:"/articles/:articleId/comments",paginate:{per:5,param:"page-num"}},admin:{url:"/admin/articles/:articleId/comments",paginate:{per:5}}};static attributes={author:{validations:{presence:!0}},text:{validations:{presence:!0,vulgarity:!0}},articleId:{type:"Int",validations:{presence:!0},remoteName:"article_id"},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"},emotion:{type:"Int"},pinned:{type:"Boolean"},adminRate:{type:"Int",remoteName:"admin_rate"},approved:{type:"Boolean"}};constructor(e){super(e)}}var z=$,M=n(874),T=n(556),x=n.n(T),q=class{constructor(e,t=s.Config.locale){this.date=e,this.skope=s.I18n[t].date}toString(e="default"){const t=this.skope.formats;switch(e){case"default":return this.strftime(t.default);case"short":return this.strftime(t.short);case"long":return this.strftime(t.long);default:console.log("Services.Date#toString: unknown format.")}}strftime(e){e=(e=e.replace("%Y",this.date.getFullYear())).replace("%y",this.date.getFullYear().toString().substr(-2,2));let t=this.date.getMonth()+1;return t=t>=10?t:`0${t}`,(e=(e=(e=(e=(e=(e=e.replace("%m",t)).replace("%b",this.skope.abbr_month_names[this.date.getMonth()])).replace("%B",this.skope.month_names[this.date.getMonth()])).replace("%d",this.date.getDate()>=10?this.date.getDate():`0${this.date.getDate()}`)).replace("%H",this.date.getHours()>=10?this.date.getHours():`0${this.date.getHours()}`)).replace("%M",this.date.getMinutes()>=10?this.date.getMinutes():`0${this.date.getMinutes()}`)).replace("%S",this.date.getSeconds()>=10?this.date.getSeconds():`0${this.date.getSeconds()}`)}};function P({comment:e}){const t=new q(e.createdAt).strftime("%d %b %y");return o.createElement("p",{id:`comment_${e.id}`},o.createElement("b",null,e.author)," on ",o.createElement("i",null,t)," (",o.createElement("a",{href:`/admin/articles/${e.articleId}/comments/${e.id}/edit`},"edit"),")",o.createElement("br",null),e.text)}P.propTypes={comment:x().instanceOf(z).isRequired};var B=P;function H({comments:e}){return 0===e.length?o.createElement("p",null,"No comments"):o.createElement(o.Fragment,null,e.map(e=>o.createElement(B,{comment:e,key:e.id})))}H.propTypes={comments:x().arrayOf(x().instanceOf(z)).isRequired};var L=H;const D=e=>{document.getElementById("article_author").textContent=e.author,document.getElementById("article_title").textContent=e.title,document.getElementById("article_text").textContent=e.content},U=e=>async function(t){if("updated"===t){const t=await e.reload();D(t)}};var F=n(228);function W({article:e}){const t=new q(e.publishedAt).toString("short");return o.createElement("article",{id:`article_${e.id}`},o.createElement("h2",null,e.title),o.createElement("p",null,o.createElement("i",null,e.author," wrote this on ",t," /"," ",o.createElement("span",{className:"comments_quantity"},e.commentsCount," comment",1===e.commentsCount?"":"s"))),o.createElement("p",null,e.content),o.createElement("p",null,o.createElement("a",{href:`/admin/articles/${e.id}/edit`},"Review")))}W.propTypes={article:x().instanceOf(N).isRequired};var V=W;function J(e){const[t,n]=(0,o.useState)(e.articles);(0,o.useEffect)(()=>{const e=j.subscribe(()=>n(j.getState().articles));return()=>{e()}},[]);const r=t.map(e=>o.createElement(V,{key:e.id,article:e}));return o.createElement(o.Fragment,null,r)}J.propTypes={articles:x().arrayOf(x().instanceOf(N)).isRequired};var Y=J;const G=async()=>{const e=await N.find(r.helpers.params.id);(e=>{(0,M.subscribe)({to:e,with:U(e)}),D(e)})(e),(e=>{e.setDefaultValuesForAdminReview(),new F.UI.Form({id:"edit_article_form",for:e}).render()})(e)};const X=()=>window.location.href="/admin";class Z extends s.Models.Base{static identity="User";static resources={url:"/users",admin:{url:"/admin/users"}};static paginate={per:10};static attributes={email:{validations:{presence:!0,format:{with:/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i}}},username:{validations:{presence:!0,format:{with:/^[a-z][a-z0-9_-]*$/i}}},password:{validations:{presence:{on:"create"},confirmation:!0}},passwordConfirmation:{remoteName:"password_confirmation"},confirmed:{},createdAt:{type:"Date",remoteName:"created_at"},updatedAt:{type:"Date",remoteName:"updated_at"}};constructor(e){super(e)}}var K=Z,Q=n(997);const ee=e=>function(t,n,r={}){let s=t[e];if(r.parentId&&(s=s[r.parentId]),void 0===s)return[null,null];const i=s.find(e=>e.id===n);return i?[i,s.indexOf(i)]:[null,null]},te=ee("articles"),ne=ee("comments"),re=(e,t)=>e.comments[t];function se({comment:e}){const t=new q(e.createdAt).strftime("%d %b %y");return o.createElement("p",{id:`comment_${e.id}`},o.createElement("b",null,e.author)," on ",o.createElement("i",null,t)," wrote:",o.createElement("br",null),e.text)}se.propTypes={comment:x().instanceOf(z).isRequired};var ie=se;function oe(e){const t=e.articleId,[n,r]=(0,o.useState)(e.comments);(0,o.useEffect)(()=>{const e=j.subscribe(()=>{r(re(j.getState(),t))});return()=>{e()}},[]);const s=n.map(e=>o.createElement(ie,{key:e.id,comment:e}));return 0===n.length?o.createElement("p",{id:"no_comments"},"No comments."):o.createElement(o.Fragment,null,s)}oe.propTypes={articleId:x().number.isRequired,comments:x().arrayOf(x().instanceOf(z)).isRequired};var ae=oe;function ce(e){const[t,n]=(0,o.useState)(e.comments);return(0,o.useEffect)(()=>{const t=j.subscribe(()=>{n(re(j.getState(),e.articleId))});return()=>{t()}},[]),o.createElement(o.Fragment,null,`${t.length} comment${1===t.length?"":"s"}`)}ce.propTypes={articleId:x().number.isRequired,comments:x().arrayOf(x().instanceOf(z)).isRequired};var le=ce;const ue=(e,t,n)=>{null!=e[t]&&(n.classList.add(t),document.querySelector(".flash p").textContent=e[t])};var de=(e={})=>{const{hide:t}=e,n=document.querySelector(".flash");(e=>{e.classList.remove("notice"),e.classList.remove("alert"),e.classList.remove("warning")})(n),ue(e,"notice",n),ue(e,"alert",n),ue(e,"warning",n),n.classList.remove("none"),t&&((e=4e3)=>{setTimeout(()=>{document.querySelector(".flash").classList.add("none")},e)})()};const me=e=>async function(t){switch(t){case"updating":de({warning:"Author is currently editing article. Be aware of possible changes."});break;case"updated":{const t=await e.reload();he(t,!0)}}},he=(e,t=!1)=>{!1===t&&(0,M.subscribe)({to:e,with:me(e)}),document.getElementById("title").textContent=e.title,document.getElementById("author").textContent=e.author;const n=new q(e.publishedAt);document.getElementById("pub_date").textContent=n.toString("short");const r=document.getElementById("text");r.innerHTML="";const s=((i=(i=(i=e.content).replace(/\r\n?/,"\n")).trim()).length>0&&(i="

    "+(i=(i=i.replace(/\n\n+/g,"

    ")).replace(/\n/g,"
    "))+"

    "),i);var i;r.insertAdjacentHTML("beforeend",s)};var pe={renderArticle:he,renderForm:e=>{new F.UI.Form({for:e,initObj:!0,id:"new_comment"}).render()}};function fe(){const[e,t]=(0,o.useState)(1),[n,r]=(0,o.useState)(!1);return n?o.createElement("span",null,"No more posts."):o.createElement("a",{href:"#",id:"load_more",onClick:async function(n){n.preventDefault();const s=e+1;t(s);let i=null;try{i=await N.get("all",{page:s})}catch(n){return void alert(`Invalid URL: ${n}`)}i.resources.length>0?j.dispatch(b(i.resources)):r(!0)}},"Load more…")}function ge({article:e}){const t=new q(e.publishedAt).toString("short");return o.createElement("article",{id:`article_${e.id}`},o.createElement("h2",null,e.title),o.createElement("p",null,o.createElement("i",null,e.author," wrote this on ",t," /"," ",o.createElement("a",{href:`/articles/${e.id}#comments`,className:"comments_quantity"},e.commentsCount," comment",1===e.commentsCount?"":"s"))),o.createElement("p",null,e.content),o.createElement("p",null,o.createElement("a",{href:`/articles/${e.id}`},"Continued…")))}ge.propTypes={article:x().instanceOf(N).isRequired};var ye=ge;function be(e){const[t,n]=(0,o.useState)(e.articles);(0,o.useEffect)(()=>{const e=j.subscribe(()=>n(j.getState().articles));return()=>{e()}},[]);const r=t.map(e=>o.createElement(ye,{key:e.id,article:e}));return o.createElement(o.Fragment,null,r)}be.propTypes={articles:x().arrayOf(x().instanceOf(N)).isRequired};var _e=be;const ve=e=>{switch(e){case"confirming":document.getElementById("verification_info").textContent=document.getElementById("verification_progress").textContent;break;case"confirmed":window.location.href="/user/sessions/new?event=confirmed"}},we=e=>{rt.getWire().token=e.access_token,(0,M.subscribe)({to:new K({id:e.id}),with:ve}),document.querySelector("form").style.display="none",document.getElementById("sign_in_paragraph").classList.remove("none"),document.getElementById("verification_info").classList.remove("none"),de({notice:e.notice})};class Ee extends i{initialize(){this.setScope("main")}}Ee.Articles=class{async show(){const e=new z({articleId:r.helpers.params.id});pe.renderForm(e),(async()=>{const e=await N.find(r.helpers.params.id);j.dispatch(_([e])),pe.renderArticle(e)})(),(async()=>{const e=await z.get("count",{articleId:r.helpers.params.id}),t=await z.all({articleId:r.helpers.params.id,total:e.total});j.dispatch(w(t,r.helpers.params.id)),(0,a.createRoot)(document.getElementById("comments")).render(o.createElement(ae,{articleId:r.helpers.params.id,comments:t})),(0,a.createRoot)(document.getElementById("comments_count")).render(o.createElement(le,{articleId:r.helpers.params.id,comments:t}))})()}},Ee.Pages=class{async index(){(0,a.createRoot)(document.getElementById("load_more_wrapper")).render(o.createElement(fe,null));const e=await N.get("all",{page:1});j.dispatch(_(e.resources)),(0,a.createRoot)(document.getElementById("articles")).render(o.createElement(_e,{articles:e.resources}))}},Ee.Users=class{new(){new F.UI.Form({for:new K,callbackSuccess:we}).render()}};var Ie=Ee;class ke extends s.Models.Base{static identity="Room.Member";static resources={url:"/user/rooms/:roomId/members",paginate:{per:100}};constructor(e){super(e)}}var Se=ke;class Ce extends s.Models.Base{static identity="Room";constructor(e){super(e)}}var Ae=Ce;let Oe=[];const je=({id:e,name:t,members_count:n,joined:r})=>`\n \n ${t}\n ${n}\n \n \n ${r?"Leave":"Join"}\n \n |\n \n Destroy\n \n \n \n `,Re=e=>{document.querySelector("#rooms_list tbody").insertAdjacentHTML("beforeend",je(e))},Ne=(e,t,n)=>{const r=Oe.find(t=>t.id===e);r.members_count+=t,n===(()=>{const e=document.getElementById("current-user-data");return JSON.parse(e.textContent)})().id&&(r.joined=t>0),(e=>{const t=Oe.find(t=>t.id===e);document.getElementById(`room_${e}`).innerHTML=je(t)})(e)},$e=(e,t)=>{switch(e){case"Room member_joined":Ne(t.room_id,1,t.member.id);break;case"Room member_left":Ne(t.room_id,-1,t.member.id);break;case"Room created":t.room.members_count=0,Oe.push(t.room),Re(t.room);break;case"Room destroyed":{const e=document.getElementById(`room_${t.room_id}`);e.parentNode.removeChild(e)}}};const ze=e=>{if(document.querySelector(`#members li#user_${e.id}`))return;const t=`
  • ${e.username}
  • `;document.getElementById("members").insertAdjacentHTML("beforeend",t)},Me=e=>function(t,n){switch(t){case"Room member_joined":if(n.room_id!==e)return;ze(n.member);break;case"Room member_left":if(n.room_id!==e)return;(e=>{const t=document.querySelector(`#members li#user_${e.id}`);t.parentNode.removeChild(t)})(n.member)}};var Te={render:e=>{(e=>{document.querySelector("[data-behavior~=room-speaker]").addEventListener("keypress",t=>{13===t.keyCode&&(t.preventDefault(),rt.emit({type:"NEW_MESSAGE",txt:t.target.value,room_id:e,message_type:document.querySelector("[name='message_type']:checked").value}),t.target.value="")})})(e);const t=(e=>{const t=setInterval(()=>{rt.emit({type:"HEARTBEAT",room_id:e}),console.log("heartbeat",e)},3e3);return()=>clearInterval(t)})(e),n=(0,M.subscribe)({to:Ae,with:Me(e)});return()=>{t(),n()}},renderMembers:e=>{for(const t of e)ze(t)},receivedMessage:(e,t)=>{const n=`

    ${t}: ${e}

    `;document.getElementById("messages").insertAdjacentHTML("beforeend",n)},disconnected:()=>{de({alert:"You have been disconnected from the server. You might have lost some ephemeral messages.",hide:!1})}},xe=class{constructor(){this.view=null,this.unsubscribe=null}deinitialize(){null!==this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}index(){this.unsubscribe=function(){let e=document.getElementById("rooms-data");return Oe=JSON.parse(e.textContent),Oe.forEach(e=>Re(e)),(0,M.subscribe)({to:Ae,with:$e})}()}async show(){this.view=Te,this.unsubscribe=Te.render(r.helpers.params.id);const e=await Se.all({roomId:r.helpers.params.id});Te.renderMembers(e.resources)}};const qe=e=>{document.getElementById("article_title").textContent=e.title,document.getElementById("article_text").textContent=e.content;const t=document.getElementById("publish_article");t&&null!=e.publishedAt?t.style.display="none":t&&(t.style.display="")},Pe=e=>async function(t){switch(t){case"updated":await e.reload(),e.applyChanges(),qe(e);break;case"destroyed":window.location.href="/user/articles?message=deleted"}};function Be({comment:e,isAdmin:t=!1}){const[n,r]=(0,o.useState)(!1),s=new q(e.createdAt).strftime("%d %b %y"),i=async t=>{t.preventDefault(),r(!0),e.approved=!0,(await e.updateAttribute("approved")).ok&&j.dispatch(E(new z({...e,approved:!0}),e.articleId))};return o.createElement("p",{id:`comment_${e.id}`},o.createElement("b",null,e.author)," on ",o.createElement("i",null,s),t?(()=>{let t;return t=e.approved?o.createElement(o.Fragment,null,o.createElement("span",null,"approved")," |"," "):n?o.createElement(o.Fragment,null,o.createElement("span",null,"approving...")," |"," "):o.createElement(o.Fragment,null,o.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}/approve`,className:"approve",onClick:i},"approve")," ","|"," "),o.createElement(o.Fragment,null," ","(",t,o.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}/edit`},"edit")," ","|"," ",o.createElement("a",{href:`/user/articles/${e.articleId}/comments/${e.id}`,"data-method":"delete","data-confirm":"Are you sure?"},"delete"),")")})():"",o.createElement("br",null),e.text)}Be.propTypes={comment:x().instanceOf(z).isRequired,isAdmin:x().bool};var He=Be;function Le(e){const t=e.articleId,n=e.isAdmin||!1,[r,s]=(0,o.useState)(e.comments);if((0,o.useEffect)(()=>{const e=j.subscribe(()=>s(re(j.getState(),t)));return()=>{e()}},[]),0===r.length)return o.createElement("p",null,"No comments.");const i=r.map(e=>o.createElement(He,{key:e.id,comment:e,isAdmin:n}));return o.createElement(o.Fragment,null,i)}Le.propTypes={articleId:x().number.isRequired,isAdmin:x().bool,comments:x().arrayOf(x().instanceOf(z)).isRequired};var De=Le;const Ue=e=>async function(t,n){switch(t){case"updating":document.querySelector("h1").getAttribute("data-mark")!==n.mark&&de({warning:"Uuups someone else started editing this article."});break;case"updated":await e.reload(),(e=>{for(const[t]of Object.entries(e.changes())){const n=document.querySelector(`a.apply_changes[data-for=${e.getAttrRemoteName(t)}]`);n&&n.classList.remove("none")}})(e);break;case"destroyed":window.location.href="/user/articles?message=deleted"}};var Fe=e=>{j.dispatch(b([e]));const t=(0,M.subscribe)({to:e,with:Ue(e)}),n=new F.UI.Form({for:e});return n.render(),(e=>{for(const t of Array.from(document.querySelectorAll("a.apply_changes")))t.addEventListener("click",t=>{t.preventDefault();const n=e.getObj(),r=n.getAttrName(t.target.getAttribute("data-for"));n[r]=n.changes()[r].is,e.fill(r),t.target.classList.add("none")})})(n),t};function We({article:e,onArticleDestroyed:t}){return o.createElement("tr",{id:`article_${e.id}`},o.createElement("td",{className:"title"},e.title),o.createElement("td",null,e.content),o.createElement("td",{className:"comments_quantity"},e.commentsCount),o.createElement("td",{className:"published"},e.publishedAt?"yes":"no"),o.createElement("td",null,o.createElement("a",{href:`/user/articles/${e.id}`},"Show")," |",o.createElement("a",{href:`/user/articles/${e.id}/edit`},"Edit")," |",o.createElement("a",{href:`/user/articles/${e.id}`,className:"delete_article",onClick:async n=>{if(n.preventDefault(),!confirm("Are you sure?"))return;const r=await e.delete(null);var s;r.success&&j.dispatch((s=r.id,{type:u,id:s})),t(r)}},"Delete")))}We.propTypes={article:x().instanceOf(N).isRequired,onArticleDestroyed:x().func.isRequired};var Ve=We;function Je(e){const[t,n]=(0,o.useState)(e.articles);(0,o.useEffect)(()=>{const e=j.subscribe(()=>n(j.getState().articles));return()=>{e()}},[]);const r=t.map(t=>o.createElement(Ve,{key:t.id,article:t,onArticleDestroyed:e.onArticleDestroyed}));return o.createElement(o.Fragment,null,r)}Je.propTypes={articles:x().arrayOf(x().instanceOf(N)).isRequired,onArticleDestroyed:x().func.isRequired};var Ye=Je;const Ge=e=>{e.success?de({notice:e.notice}):de({alert:e.alert})};class Xe extends i{initialize(){this.setScope(null)}}Xe.Articles=class{initialize(){this.unsubscribe=null}deinitialize(){null!==this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}async index(){"deleted"===r.helpers.params.message&&de({alert:"Article has been deleted."});const e=await N.get("all");j.dispatch(_(e.resources)),(0,a.createRoot)(document.getElementById("article_list")).render(o.createElement(Ye,{articles:e.resources,onArticleDestroyed:Ge}))}show(){(async()=>{const e=await N.find(r.helpers.params.id);j.dispatch(_([e])),(e=>{null!==e&&((0,M.subscribe)({to:e,with:Pe(e)}),(e=>{document.getElementById("publish_article").addEventListener("click",async t=>{t.preventDefault(),t.target.textContent="Publishing...";try{await e.put("publish"),document.getElementById("publish_article").outerHTML="Published!"}catch{document.getElementById("publish_article").textContent="Publish",de({alert:"Connection error!"})}})})(e),(e=>{const t=document.getElementById("edit_link").getAttribute("href");document.getElementById("edit_link").setAttribute("href",t.replace("/0/",`/${e}/`))})(e.id),qe(e))})(e)})(),(async()=>{const e=await z.all({articleId:r.helpers.params.id});j.dispatch(w(e.resources,r.helpers.params.id)),(0,a.createRoot)(document.getElementById("comments")).render(o.createElement(De,{articleId:r.helpers.params.id,comments:e.resources}))})()}new(){this.unsubscribe=Fe(new N)}async edit(){(async e=>{const t=await z.all({articleId:e});j.dispatch(w(t.resources,e)),(0,a.createRoot)(document.getElementById("comments")).render(o.createElement(De,{articleId:e,comments:t.resources,isAdmin:!0}))})(r.helpers.params.id);const e=await N.find(r.helpers.params.id);this.unsubscribe=Fe(e)}},Xe.Rooms=xe;var Ze=Xe;const Ke=()=>mt().namespaceController.constructor===Ze,Qe=()=>mt().namespaceController.constructor===lt,et=()=>Ke()&&null!==mt().controller&&mt().controller.constructor===xe&&"show"===mt().action,tt=({article_id:e},t)=>{const[n,r]=te(j.getState(),e);if(!n)return;const s=new N({...n,commentsCount:n.commentsCount+t});j.dispatch(v(s,r))};(0,M.connectWithModel)(s.connector),N.Comment=z,Ae.Member=Se;const nt=(0,M.init)({cable:(0,Q.Be)(),models:{Article:N,Room:Ae,User:K},notificationCenter:async e=>{switch(void 0!==e.loco&&"disconnected"===e.loco&&et()&&mt().controller.view.disconnected(),e.type){case"PING":Ke()&&alert("Ping!");break;case"NEW_MESSAGE":(et()?mt().controller.view.receivedMessage:()=>{})(e.message,e.author);break;case"Article created":(async({id:e})=>{if(!Ke())return;const t=await N.find({id:e,abbr:!0});j.dispatch(b([t]))})(e.payload);break;case"Article published":(async({id:e})=>{if(Qe()){const t=await N.find({id:e,abbr:!0,resource:"admin"});j.dispatch(function(e){return{type:l,articles:e}}([t]))}else{const t=await N.find({id:e,abbr:!0});j.dispatch(b([t]))}})(e.payload);break;case"Article updated":(async({id:e})=>{const t={id:e,abbr:!0};Qe()&&(t.resource="admin");let[n,r]=te(j.getState(),e);n&&(n=await N.find(t),j.dispatch(v(n,r)))})(e.payload);break;case"Article.Comment created":(async({article_id:e,id:t})=>{const n={articleId:e,id:t};mt().namespaceController.constructor===Ie&&(n.resource="main");const[r]=te(j.getState(),e);if(!r)return;const s=await z.find(n);null!==s&&(j.dispatch(function(e,t){return{type:h,articleId:t,comments:e}}([s],e)),tt({article_id:e},1))})(e.payload);break;case"Article.Comment destroyed":tt(e.payload,-1),(({article_id:e,id:t})=>{j.dispatch(function(e,t){return{type:p,id:e,articleId:t}}(t,e))})(e.payload);break;case"Article.Comment updated":(async({article_id:e,id:t})=>{const[n,r]=ne(j.getState(),t,{parentId:e});if(!n)return;const s=await n.reload();j.dispatch(E(s,e,r))})(e.payload);break;case"USER_CONFIRMED":window.location.href="/user/sessions/new?event=confirmed";break;case"User created":{const t=await K.find(e.payload.id);j.dispatch(function(e){return{type:y,users:e}}([t]));break}}},notifications:{log:!0,size:10},postInit:()=>{"test"===document.querySelector("body").getAttribute("data-rails-env")&&nt.getWire().setPollingTime(1e3)}});var rt=nt;const st=({user:e})=>o.createElement("tr",{id:`user_${e.id}`},o.createElement("td",null,e.email),o.createElement("td",null,e.username),o.createElement("td",{className:"confirmed"},e.confirmed?"Yes":"No"),o.createElement("td",null,o.createElement("a",{href:`/admin/users/${e.id}`},"Show")," |"," ",o.createElement("a",{href:`/admin/users/${e.id}/edit`},"Edit")," |"," ",o.createElement("a",{href:`/admin/users/${e.id}`,"data-method":"delete","data-confirm":"Are you sure?"},"Delete")," ","|"," ",o.createElement("a",{href:"#",onClick:t=>((e,t)=>{e.preventDefault(),rt.emit({type:"PING",user_id:t})})(t,e.id)},"Ping")));st.propTypes={user:x().instanceOf(K).isRequired};var it=st;function ot(e){const[t,n]=(0,o.useState)(e.users);(0,o.useEffect)(()=>{const e=j.subscribe(()=>n(j.getState().users));return()=>{e()}},[]);const r=t.map(e=>o.createElement(it,{key:`user_${e.id}`,user:e}));return o.createElement(o.Fragment,null,r)}ot.propTypes={users:x().arrayOf(x().instanceOf(K)).isRequired};var at=ot;class ct extends i{initialize(){this.setScope("admin")}}ct.Articles=class{async published(){const e=await N.get("published");j.dispatch(_(e.resources)),(0,a.createRoot)(document.getElementById("articles")).render(o.createElement(Y,{articles:e.resources}))}async edit(){G(),(async()=>{(e=>{(0,a.createRoot)(document.getElementById("comments")).render(o.createElement(L,{comments:e}))})((await z.all({articleId:r.helpers.params.id})).resources)})()}},ct.Comments=class{edit(){((e={})=>{const t=new F.UI.Form({for:new z({id:e.commentId,resource:"admin"}),id:`edit_comment_${e.commentId}`,initObj:!0});t.render(),window.test={commentFormObj:t.getObj()}})({commentId:r.helpers.params.id})}},ct.Sessions=class{new(){new F.UI.Form({id:"sign_in_admin",callbackSuccess:X}).render()}},ct.Users=class{async index(){const e=await K.get("all");j.dispatch(function(e){return{type:y,users:e}}(e.resources)),(0,a.createRoot)(document.querySelector("table tbody")).render(o.createElement(at,{users:e.resources}))}async show(){(e=>{document.getElementById("user_email").textContent=e.email,document.getElementById("user_username").textContent=e.username,document.getElementById("user_confirmed").textContent=e.confirmed?"Yes":"No",(e=>{const t=document.getElementById("edit_link"),n=t.getAttribute("href");t.setAttribute("href",n.replace("/0/",`/${e.id}/`))})(e)})(await K.find(r.helpers.params.id))}edit(){var e;e=new K({id:r.helpers.params.id}),new F.UI.Form({for:e,initObj:!0,id:"admin_user_form"}).render()}};var lt=ct;const ut={Admin:lt,Main:Ie,User:Ze};let dt=null;document.addEventListener("turbo:load",()=>{dt=(0,r.init)(ut)}),["turbo:click","turbo:submit-start"].forEach(e=>{document.addEventListener(e,()=>{null!==dt&&null!=dt.controller.cleanup&&(dt.controller.cleanup(),dt.controller.cleanup=null)})});var mt=()=>dt;(0,F.connect)({getLocale:()=>s.Config.locale,loco:rt,I18n:s.I18n}),s.Validators.Vulgarity=class extends s.Validators.Base{static identity="Vulgarity";constructor(){super()}validate(){if(null!=this.val)switch(typeof this.val){case"string":{const e=this._getVulgarWord();if(!new RegExp(`${e}`,["i"]).exec(this.val))return;this._addErrorMessage();break}default:throw new TypeError(`Vulgarity validator is applicable only for strings and ${this.attr} isn't.`)}}_addErrorMessage(){const e=s.I18n[s.Config.locale].errors.messages.vulgarity;this.obj.addErrorMessage(e,{for:this.attr})}_getVulgarWord(){switch(s.Config.locale){case"pl":return"kurwa";case"en":return"fuck"}}},s.I18n.pl={variants:{few(e){const t=parseInt((n=String(e))[n.length-1]);var n;-1!==[2,3,4].indexOf(t)&&(2!==String(e).length||String(e)[0])}},models:{},attributes:{},ui:{form:{sending:"Wysyłam...",success:"Sukces",errors:{connection:"Błąd z połączeniem",invalid_data:"Nieprawidłowe dane"}}},date:{formats:{default:"%d-%m-%Y",short:"%d %b",long:"%B %d, %Y"},day_names:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],abbr_day_names:["nie","pon","wto","śro","czw","pią","sob"],month_names:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],abbr_month_names:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"]},errors:{messages:{accepted:"musi zostać zaakceptowane",blank:"nie może być puste",confirmation:"nie zgadza się z polem %{attribute}",empty:"nie może być puste",equal_to:"musi być równe %{count}",even:"musi być parzyste",exclusion:"jest zarezerwowane",greater_than:"musi być większe od %{count}",greater_than_or_equal_to:"musi być większe lub równe %{count}",inclusion:"nie znajduje się na liście dopuszczalnych wartości",invalid:"jest nieprawidłowe",less_than:"musi być mniejsze od %{count}",less_than_or_equal_to:"musi być mniejsze lub równe %{count}",not_a_number:"nie jest liczbą",not_an_integer:"musi być liczbą całkowitą",odd:"musi być nieparzyste",present:"musi być puste",too_long:{few:"jest za długie (maksymalnie %{count} znaki)",many:"jest za długie (maksymalnie %{count} znaków)",one:"jest za długie (maksymalnie jeden znak)",other:"jest za długie (maksymalnie %{count} znaków)"},too_short:{few:"jest za krótkie (przynajmniej %{count} znaki)",many:"jest za krótkie (przynajmniej %{count} znaków)",one:"jest za krótkie (przynajmniej jeden znak)",other:"jest za krótkie (przynajmniej %{count} znaków)"},wrong_length:{few:"ma nieprawidłową długość (powinna wynosić %{count} znaki)",many:"ma nieprawidłową długość (powinna wynosić %{count} znaków)",one:"ma nieprawidłową długość (powinna wynosić jeden znak)",other:"ma nieprawidłową długość (powinna wynosić %{count} znaków)"},other_than:"musi być inna niż %{count}"}}},s.I18n.pl.models.User="Użytkownik",s.I18n.pl.attributes.User={password:"Hasło",passwordConfirmation:"Powtórz hasło"},s.I18n.en.errors.messages.vulgarity="contains strong language.",s.I18n.pl.errors.messages.vulgarity="zawiera mocny język.",s.I18n.en.date={formats:{default:"%Y-%m-%d",short:"%b %d",long:"%B %d, %Y"},day_names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbr_day_names:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],month_names:["January","February","March","April","May","June","July","August","September","October","November","December"],abbr_month_names:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},window.test={getLine:()=>rt.getLine(),getWire:()=>rt.getWire()}},874:function(e){window,e.exports=function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{connectWithModel:function(){return f},init:function(){return h},subscribe:function(){return p}});var n=class{static toURIParams(e){let t="";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const r=e[n];""!==t&&(t+="&"),t+=`${n}=${encodeURIComponent(r)}`}return t}};let r=null,s=null;const i=[];var o=e=>!!i.includes(e)||(i.unshift(e),i.length>100&&i.pop(),!1);const a=(e,t,n,r=null)=>{null!=e&&e(null==r?t:{type:r,payload:t},n)};var c=(e,t={})=>{t.log&&console.log(e);const[n,i,c,l]=e;if(o(l.loco.idempotency_key))return!1;if(delete l.loco,null==n&&null==c)return a(t.notificationCenter,l,t.emit),!0;const u=(e=>{for(const t of(()=>{if(!s||"object"!=typeof s)return[];const e=[],t=/^[A-Z]/;for(const n of Object.keys(s)){if(!t.test(n)||"Base"===n)continue;e.push(n);const r=s[n];for(const s of Object.keys(r))t.test(s)&&e.push(`${n}.${s}`)}return e})()){const n=t.split(".");if(1===n.length){const t=s[n[0]];if(t?.getRemoteName?.()===e)return t}else if(2===n.length){const t=s[n[0]]?.[n[1]];if(t?.getRemoteName?.()===e)return t}}})(n);return void 0===u?(a(t.notificationCenter,l,t.emit,`${n} ${c}`),!1):(((e,t,n,s,i,o)=>{const c=e.getIdentity();a(i,s,o,`${c} ${n}`),void 0!==r.imap[c]&&(void 0!==r.imap[c][t]&&((e,t,n,s,i,o=null)=>{null===o&&(o=new s({id:e}));for(const s of r.findConnected(i,e))s(t,n)})(t,n,s,e,c),void 0!==r.imap[c].collection&&0!==r.imap[c].collection.length&&((e,t,n)=>{for(const s of r.imap[n].collection.filter(e=>null!==e))s(`${n} ${e}`,t)})(n,s,c))})(u,i,c,l,t.notificationCenter,t.emit),!0)},l=class{constructor(e,t,n){this.pollingTime=e.pollingTime??3e3,this.log=!!e.log,this.ssl=e.ssl,this.location=e.location??"notification-center",this.size=e.size??100,this.protocolWithHost=e.protocolWithHost,this.notificationCenter=t,this.reqOpts=n,this.syncTime=null,this.token=null,this.pollingInterval=null,this.uuid=null,this.line=null}setLine(e){this.line=e}setPollingTime(e){this.pollingTime=e,this.line?.isConnected||(this.disconnect(),this.connect())}connect(){this.check(),this.pollingInterval=setInterval(()=>{this.line?.isConnected?this.disconnect():this.check()},this.pollingTime)}disconnect(){window.clearInterval(this.pollingInterval)}check(){const e=((e,t,n)=>{const r=document.querySelector("meta[name='csrf-token']"),s=new XMLHttpRequest;return s.withCredentials=!0===n.cookiesByCORS,s.open("GET",t),s.setRequestHeader("Accept","application/json"),r&&s.setRequestHeader("X-CSRF-Token",r.content),null!=n.authorizationHeader&&s.setRequestHeader("Authorization",n.authorizationHeader),s})(0,`${this._getURL()}?${n.toURIParams(this._requestParams())}`,this.reqOpts);e.onload=e=>{if(e.target.status>=200&&e.target.status<400){const t=JSON.parse(e.target.response);this.syncTime=t[1];const n=t[0];if(0===n.length)return;for(const e of n)c(e,{log:this.log,notificationCenter:this.notificationCenter,emit:e=>this.line?.send(e)});n.length===this.size&&this.check()}},e.send()}_requestParams(){const e={synced_at:this.syncTime};return null!=this.token&&(e.token=this.token),null!=this.uuid&&(e.uuid=this.uuid),e}_getURL(){let[e,,t]=window.location.href.split("/");return null!=this.protocolWithHost&&([e,t]=this.protocolWithHost.split("//")),null!=this.ssl&&(e=this.ssl?"https:":"http:"),`${e}//${t}/${this.location}`}},u=class{constructor(e,t,n){this.client=e,this.notificationCenter=t,this.wire=n,this.isConnected=!1,this.disconnectWire=!1}connect(){this.client.connect(this)}disconnect({all:e=!1}={}){return this.disconnectWire=e,this.client.disconnect()}send(e){return!!this.isConnected&&this.client.send(e)}pong(){setTimeout(()=>this.send({loco:{pong:!0}}),3e3)}connected(){console.log("WS connected"),this.isConnected=!0,null!==this.wire&&this.wire.check(),this.notificationCenter({loco:"connected"}),this.pong()}disconnected(){console.log("WS disconnected"),this.isConnected=!1,null!==this.wire&&(this.wire.uuid=null,this.disconnectWire||this.wire.connect()),this.disconnectWire=!1,this.notificationCenter({loco:"disconnected"})}rejected(){console.log("WS rejected"),this.notificationCenter({loco:"rejected"})}received(e){if(null!=e.loco){const t=((e,t)=>{if(!0===e.ping&&t.pong(),null!=t.wire)return"string"==typeof e.sync_time&&(t.wire.syncTime=e.sync_time),"string"==typeof e.uuid&&(console.log(`uuid: ${e.uuid}`),t.wire.uuid=e.uuid),"object"==typeof e.notification&&"Array"===e.notification.constructor.name&&c(e.notification,{log:t.wire.log,notificationCenter:t.notificationCenter,emit:t.send}),"string"!=typeof e.idempotency_key||!o(e.idempotency_key)})(e.loco,this);if(!0!==t)return;delete e.loco}0!==Object.keys(e).length&&this.notificationCenter(e)}},d=class{constructor(e){this.consumer=e,this.subscription=null}connect(e){this.subscription=this.consumer.subscriptions.create({channel:"Loco::NotificationCenterChannel"},{connected:()=>{e.connected()},disconnected:()=>{e.disconnected()},rejected:()=>{e.rejected()},received:t=>{e.received(t)}})}disconnect(){this.consumer.disconnect()}send(e){this.subscription.send(e)}},m=class{constructor(e){this.models=e,this.wire=null,this.line=null}getModels(){return this.models}getLine(){return this.line}getWire(){return this.wire}setAuthorizationHeader(e){for(const t in this.models)Object.prototype.hasOwnProperty.call(this.models,t)&&(this.models[t].authorizationHeader=e)}init(e){const t=e.notifications??{};if(t.protocolWithHost=e.protocolWithHost,!1!==t.enable){const n={cookiesByCORS:e.cookiesByCORS,authorizationHeader:e.authorizationHeader};this.wire=new l(t,e.notificationCenter,n),this.wire.connect()}const n=this.#e(e);null!=n&&(this.line=new u(n,e.notificationCenter,this.wire),this.line.connect(),this.wire&&this.wire.setLine(this.line)),this.#t(()=>{e.postInit?.()})}emit(e){return this.line.send(e)}#e(e){return null!=e.wsClient?e.wsClient:null!=e.cable?new d(e.cable):null}#t(e){(document.attachEvent?"complete"===document.readyState:"loading"!==document.readyState)?e():document.addEventListener("DOMContentLoaded",e)}};const h=e=>{const t=(e=>{const t=e.models||{};if(null===s)return t;for(const e of Object.keys(t))s[e]=t[e];return t})(e),n=new m(t);return n.init(e),n};let p=()=>{};const f=e=>{var t,n;t=e.IdentityMap,r=t,r.clear(),n=e.Models,s=n,p=e.IdentityMap.subscribe};return t}()},916:function(e){window,e.exports=function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{helpers:function(){return a},init:function(){return o}});let n=null,r=null;const s=(e,t)=>{"function"==typeof e.constructor[t]&&e.constructor[t](),"function"==typeof e[t]&&e[t]()},i=(e,t,n)=>{const r=void 0===n?e[t]:e[t][n];return"function"==typeof r?new r:"object"==typeof r?r:null};var o=e=>{const t=document.getElementsByTagName("body")[0],o=t.getAttribute("data-namespace"),a=t.getAttribute("data-controller"),c=t.getAttribute("data-action");return null!==r&&(s(r,"deinitialize"),r=null),null!==n&&(s(n,"deinitialize"),n=null),n=i(e,o),r=i(e,a),null!==n&&(r=i(e,o,a),n.controller=r,s(n,"initialize")),null!==r&&(r.namespaceController=n,s(r,"initialize"),s(r,c)),{namespaceController:n,controller:r,action:c}},a={get params(){return((e=window.location.href)=>{const t={},n=/https?:\/\/.+\/\w+\/(\d+)/.exec(e),r=null!==n?n[1]:null;null!==r&&(t.id=parseInt(r));const s=e.split("?");if(1===s.length)return t;const i=s[s.length-1].split("&").map(e=>e.split("="));for(const e of i){let n=decodeURIComponent(e[0]),r=decodeURIComponent(e[1]);"string"==typeof r&&(r=r.replace(/\+/g," ")),t[n]=r}return t})()}};return t}()}},n={};function r(e){var s=n[e];if(void 0!==s)return s.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.m=t,e=[],r.O=function(t,n,s,i){if(!n){var o=1/0;for(u=0;u=i)&&Object.keys(r.O).every(function(e){return r.O[e](n[c])})?n.splice(c--,1):(a=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,s,i]},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.e=function(){return Promise.resolve()},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={543:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var s,i,o=n[0],a=n[1],c=n[2],l=0;if(o.some(function(t){return 0!==e[t]})){for(s in a)r.o(a,s)&&(r.m[s]=a[s]);if(c)var u=c(r)}for(t&&t(n);l 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import Rails from \"@rails/ujs\";\n\nRails.start();\n","/*\n * action types\n */\n\nexport const ADD_ARTICLES = \"ADD_ARTICLES\";\nexport const PREPEND_ARTICLES = \"PREPEND_ARTICLES\";\nexport const REMOVE_ARTICLE = \"REMOVE_ARTICLE\";\nexport const SET_ARTICLES = \"SET_ARTICLES\";\nexport const UPDATE_ARTICLE = \"UPDATE_ARTICLE\";\n\nexport const ADD_COMMENTS = \"ADD_COMMENTS\";\nexport const REMOVE_COMMENT = \"REMOVE_COMMENT\";\nexport const SET_COMMENTS = \"SET_COMMENTS\";\nexport const UPDATE_COMMENT = \"UPDATE_COMMENT\";\n\nexport const PREPEND_USERS = \"PREPEND_USERS\";\nexport const SET_USERS = \"SET_USERS\";\n\n/*\n * action creators\n */\n\nexport function addArticles(articles) {\n return { type: ADD_ARTICLES, articles };\n}\n\nexport function prependArticles(articles) {\n return { type: PREPEND_ARTICLES, articles };\n}\n\nexport function removeArticle(id) {\n return { type: REMOVE_ARTICLE, id };\n}\n\nexport function setArticles(articles) {\n return { type: SET_ARTICLES, articles };\n}\n\nexport function updateArticle(article, index) {\n return { type: UPDATE_ARTICLE, article, index };\n}\n\nexport function addComments(comments, articleId) {\n return { type: ADD_COMMENTS, articleId, comments };\n}\n\nexport function removeComment(id, articleId) {\n return { type: REMOVE_COMMENT, id, articleId };\n}\n\nexport function setComments(comments, articleId) {\n return { type: SET_COMMENTS, comments, articleId };\n}\n\nexport function updateComment(comment, articleId, index) {\n return { type: UPDATE_COMMENT, comment, articleId, index };\n}\n\nexport function prependUsers(users) {\n return { type: PREPEND_USERS, users };\n}\n\nexport function setUsers(users) {\n return { type: PREPEND_USERS, users };\n}\n","import produce from \"immer\";\n\nimport {\n ADD_ARTICLES,\n PREPEND_ARTICLES,\n REMOVE_ARTICLE,\n SET_ARTICLES,\n UPDATE_ARTICLE,\n} from \"actions\";\n\nexport default produce((draft = [], action) => {\n switch (action.type) {\n case ADD_ARTICLES:\n return draft.concat(action.articles);\n case PREPEND_ARTICLES:\n return action.articles.concat(draft);\n case REMOVE_ARTICLE:\n return draft.filter((article) => article.id !== action.id);\n case SET_ARTICLES:\n return action.articles;\n case UPDATE_ARTICLE:\n draft[action.index] = action.article;\n break;\n default:\n return draft;\n }\n});\n","import produce from \"immer\";\n\nimport {\n ADD_COMMENTS,\n REMOVE_COMMENT,\n SET_COMMENTS,\n UPDATE_COMMENT,\n} from \"actions\";\n\nexport default produce((draft = {}, action) => {\n switch (action.type) {\n case ADD_COMMENTS:\n if (draft[action.articleId] === undefined) {\n draft[action.articleId] = [];\n }\n draft[action.articleId] = draft[action.articleId].concat(action.comments);\n break;\n case REMOVE_COMMENT:\n if (draft[action.articleId] == null) return draft;\n draft[action.articleId] = draft[action.articleId].filter(\n (comment) => comment.id !== action.id\n );\n break;\n case SET_COMMENTS:\n draft[action.articleId] = action.comments;\n break;\n case UPDATE_COMMENT: {\n const articleId = action.articleId;\n let index = action.index;\n if (!index) {\n const comment = draft[articleId].find(\n (c) => c.id === action.comment.id\n );\n index = draft[articleId].indexOf(comment);\n }\n draft[articleId][index] = action.comment;\n break;\n }\n default:\n return draft;\n }\n});\n","import produce from \"immer\";\n\nimport { PREPEND_USERS, SET_USERS } from \"actions\";\n\nexport default produce((draft = [], action) => {\n switch (action.type) {\n case SET_USERS:\n return action.users;\n case PREPEND_USERS:\n return action.users.concat(draft);\n default:\n return draft;\n }\n});\n","import { combineReducers } from \"redux\";\n\nimport articles from \"./articles\";\nimport comments from \"./comments\";\nimport users from \"./users\";\n\nexport default combineReducers({\n articles,\n comments,\n users,\n});\n","import { createStore } from \"redux\";\n\nimport reducer from \"reducers\";\n\nconst store = createStore(reducer);\n\nexport default store;\n","export const createFinder = (resourceType) => {\n return function (state, id, opts = {}) {\n let resources = state[resourceType];\n if (opts.parentId) resources = resources[opts.parentId];\n if (resources === undefined) return [null, null];\n const resource = resources.find((a) => a.id === id);\n if (!resource) return [null, null];\n const index = resources.indexOf(resource);\n return [resource, index];\n };\n};\n","import { createFinder } from \"./index\";\n\nexport const findArticle = createFinder(\"articles\");\n\nexport const findComment = createFinder(\"comments\");\n","import { Models } from \"loco-js\";\n\nclass Article extends Models.Base {\n static identity = \"Article\";\n\n static resources = {\n url: \"/user/articles\",\n paginate: { per: 5 },\n main: {\n url: \"/articles\",\n paginate: { per: 3 },\n },\n admin: {\n url: \"/admin/articles\",\n paginate: { per: 4 },\n },\n };\n\n static attributes = {\n title: {\n validations: {\n presence: true,\n length: { within: [3, 255] },\n },\n },\n content: {\n validations: {\n presence: true,\n length: { minimum: 100 },\n },\n remoteName: \"text\",\n },\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n commentsCount: {\n type: \"Int\",\n remoteName: \"comments_count\",\n },\n publishedAt: {\n type: \"Date\",\n remoteName: \"published_at\",\n },\n published: {},\n adminReview: {\n remoteName: \"admin_review\",\n },\n adminRate: {\n type: \"Int\",\n remoteName: \"admin_rate\",\n },\n categoryId: {\n type: \"Int\",\n remoteName: \"category_id\",\n },\n adminReviewStartedAt: {\n remoteName: \"admin_review_started_at\",\n },\n };\n\n static validate = [\"vulgarityLevel\"];\n\n constructor(data) {\n super(data);\n this.published = this.publishedAt == null ? false : true;\n }\n\n vulgarityLevel() {\n if (\n (this.title != null && /fuck/i.exec(this.title)) ||\n (this.content != null && /fuck/i.exec(this.content))\n )\n this.addErrorMessage(\"Article contains strong language.\", {\n for: \"base\",\n });\n }\n\n setDefaultValuesForAdminReview() {\n this.adminRate = this.adminRate == null ? 3 : this.adminRate;\n this.categoryId = this.categoryId == null ? 6 : this.categoryId;\n this.adminReviewStartedAt = Date.now();\n }\n}\n\nexport default Article;\n","import { Models } from \"loco-js\";\n\nclass Comment extends Models.Base {\n static identity = \"Article.Comment\";\n\n static remoteName = \"Comment\";\n\n static resources = {\n url: \"/user/articles/:articleId/comments\",\n paginate: { per: 10 },\n main: {\n url: \"/articles/:articleId/comments\",\n paginate: { per: 5, param: \"page-num\" },\n },\n admin: {\n url: \"/admin/articles/:articleId/comments\",\n paginate: { per: 5 },\n },\n };\n\n static attributes = {\n author: {\n validations: {\n presence: true,\n },\n },\n text: {\n validations: {\n presence: true,\n vulgarity: true,\n },\n },\n articleId: {\n type: \"Int\",\n validations: {\n presence: true,\n },\n remoteName: \"article_id\",\n },\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n emotion: {\n type: \"Int\",\n },\n pinned: {\n type: \"Boolean\",\n },\n adminRate: {\n type: \"Int\",\n remoteName: \"admin_rate\",\n },\n approved: {\n type: \"Boolean\",\n },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Comment;\n","import { Models } from \"loco-js\";\n\nclass User extends Models.Base {\n static identity = \"User\";\n\n static resources = {\n url: \"/users\",\n admin: {\n url: \"/admin/users\",\n },\n };\n\n static paginate = { per: 10 };\n\n static attributes = {\n email: {\n validations: {\n presence: true,\n format: { with: /^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/i },\n },\n },\n username: {\n validations: {\n presence: true,\n format: { with: /^[a-z][a-z0-9_-]*$/i },\n },\n },\n password: {\n validations: {\n presence: { on: \"create\" },\n confirmation: true,\n },\n },\n passwordConfirmation: {\n remoteName: \"password_confirmation\",\n },\n confirmed: {},\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default User;\n","import { getLocale, I18n } from \"loco-js\";\n\nclass Date {\n constructor(date, locale = getLocale()) {\n this.date = date;\n this.skope = I18n[locale].date;\n }\n\n toString(format = \"default\") {\n const skope = this.skope.formats;\n switch (format) {\n case \"default\":\n return this.strftime(skope.default);\n case \"short\":\n return this.strftime(skope.short);\n case \"long\":\n return this.strftime(skope.long);\n default:\n console.log(\"Services.Date#toString: unknown format.\");\n }\n }\n\n strftime(str) {\n str = str.replace(\"%Y\", this.date.getFullYear());\n str = str.replace(\"%y\", this.date.getFullYear().toString().substr(-2, 2));\n let month = this.date.getMonth() + 1;\n month = month >= 10 ? month : `0${month}`;\n str = str.replace(\"%m\", month);\n str = str.replace(\"%b\", this.skope.abbr_month_names[this.date.getMonth()]);\n str = str.replace(\"%B\", this.skope.month_names[this.date.getMonth()]);\n str = str.replace(\n \"%d\",\n this.date.getDate() >= 10\n ? this.date.getDate()\n : `0${this.date.getDate()}`\n );\n str = str.replace(\n \"%H\",\n this.date.getHours() >= 10\n ? this.date.getHours()\n : `0${this.date.getHours()}`\n );\n str = str.replace(\n \"%M\",\n this.date.getMinutes() >= 10\n ? this.date.getMinutes()\n : `0${this.date.getMinutes()}`\n );\n return str.replace(\n \"%S\",\n this.date.getSeconds() >= 10\n ? this.date.getSeconds()\n : `0${this.date.getSeconds()}`\n );\n }\n}\n\nexport default Date;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment }) {\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n return (\n

    \n {comment.author} on {createdAt} (\n \n edit\n \n )\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n};\n\nexport default Comment;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport CommentModel from \"models/article/Comment\";\nimport Comment from \"components/admin/comment\";\n\nfunction CommentList({ comments }) {\n if (comments.length === 0) {\n return

    No comments

    ;\n }\n return (\n <>\n {comments.map((comment) => (\n \n ))}\n \n );\n}\n\nCommentList.propTypes = {\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React from \"react\";\nimport { render as renderElement } from \"react-dom\";\nimport { subscribe } from \"loco-js\";\n\nimport CommentList from \"components/admin/CommentList\";\n\nconst renderArticle = (article) => {\n document.getElementById(\"article_author\").textContent = article.author;\n document.getElementById(\"article_title\").textContent = article.title;\n document.getElementById(\"article_text\").textContent = article.content;\n};\n\nconst createReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updated\": {\n const reloadedArticle = await article.reload();\n renderArticle(reloadedArticle);\n }\n }\n };\n};\n\nexport default {\n render: (article) => {\n subscribe({ to: article, with: createReceivedMessage(article) });\n renderArticle(article);\n },\n\n renderComments: (comments) => {\n renderElement(\n ,\n document.getElementById(\"comments\")\n );\n },\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport ArticleModel from \"models/Article\";\n\nfunction Article({ article }) {\n const date = new DateService(article.publishedAt).toString(\"short\");\n\n return (\n
    \n

    {article.title}

    \n

    \n \n {article.author} wrote this on {date} /{\" \"}\n \n {article.commentsCount} comment\n {article.commentsCount === 1 ? \"\" : \"s\"}\n \n \n

    \n

    {article.content}

    \n

    \n Review\n

    \n
    \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/admin/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles)\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n
    \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n};\n\nexport default ArticleList;\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { helpers } from \"loco-js\";\n\nimport { setArticles } from \"actions\";\nimport store from \"store\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport EditView from \"views/admin/articles/Edit\";\nimport renderForm from \"views/admin/articles/Form\";\n\nimport ArticleList from \"containers/admin/ArticleList\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n EditView.render(article);\n renderForm(article);\n};\n\nconst renderComment = async () => {\n const resp = await Comment.all({ articleId: helpers.params.id });\n EditView.renderComments(resp.resources);\n};\n\nclass Articles {\n async published() {\n const resp = await Article.get(\"published\");\n store.dispatch(setArticles(resp.resources));\n render(\n ,\n document.getElementById(\"articles\")\n );\n }\n\n async edit() {\n renderArticle();\n renderComment();\n }\n}\n\nexport default Articles;\n","import { UI } from \"loco-js-ui\";\n\nexport default (article) => {\n article.setDefaultValuesForAdminReview();\n const form = new UI.Form({ id: \"edit_article_form\", for: article });\n form.render();\n};\n","import { UI } from \"loco-js-ui\";\n\nconst signedIn = () => (window.location.href = \"/admin\");\n\nexport default () => {\n const form = new UI.Form({\n id: \"sign_in_admin\",\n callbackSuccess: signedIn,\n });\n form.render();\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport loco from \"initializers/loco\";\nimport UserModel from \"models/User\";\n\nconst User = ({ user }) => {\n const ping = (e, userId) => {\n e.preventDefault();\n loco.emit({ type: \"PING\", user_id: userId });\n };\n\n return (\n \n {user.email}\n {user.username}\n {user.confirmed ? \"Yes\" : \"No\"}\n \n Show |{\" \"}\n Edit |{\" \"}\n \n Delete\n {\" \"}\n |{\" \"}\n ping(e, user.id)}>\n Ping\n \n \n \n );\n};\n\nUser.propTypes = {\n user: PropTypes.instanceOf(UserModel).isRequired,\n};\n\nexport default User;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport User from \"components/admin/User\";\nimport UserModel from \"models/User\";\n\nfunction UserList(props) {\n const [users, setUsers] = useState(props.users);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => setUsers(store.getState().users));\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = users.map((user) => (\n \n ));\n\n return <>{list};\n}\n\nUserList.propTypes = {\n users: PropTypes.arrayOf(PropTypes.instanceOf(UserModel)).isRequired,\n};\n\nexport default UserList;\n","import { Controllers } from \"loco-js\";\n\nimport Articles from \"./admin/Articles\";\nimport Comments from \"./admin/Comments\";\nimport Sessions from \"./admin/Sessions\";\nimport Users from \"./admin/Users\";\n\nclass Admin extends Controllers.Base {\n initialize() {\n this.setScope(\"admin\");\n }\n}\n\nAdmin.Articles = Articles;\nAdmin.Comments = Comments;\nAdmin.Sessions = Sessions;\nAdmin.Users = Users;\n\nexport default Admin;\n","import { helpers } from \"loco-js\";\n\nimport renderForm from \"views/admin/comments/Form\";\n\nclass Comments {\n edit() {\n renderForm({ commentId: helpers.params.id });\n }\n}\n\nexport default Comments;\n","import { UI } from \"loco-js-ui\";\n\nimport CommentModel from \"models/article/Comment\";\n\nexport default (opts = {}) => {\n const form = new UI.Form({\n for: new CommentModel({ id: opts.commentId, resource: \"admin\" }),\n id: `edit_comment_${opts.commentId}`,\n initObj: true,\n });\n form.render();\n\n // only for testing purpose\n window.test = { commentFormObj: form.getObj() };\n};\n","import renderForm from \"views/admin/sessions/Form\";\n\nclass Sessions {\n new() {\n renderForm();\n }\n}\n\nexport default Sessions;\n","import React from \"react\";\nimport { render as renderElement } from \"react-dom\";\nimport { helpers } from \"loco-js\";\n\nimport { setUsers } from \"actions\";\nimport store from \"store\";\n\nimport User from \"models/User\";\nimport UserList from \"containers/admin/UserList\";\nimport renderUser from \"views/admin/users/Show\";\nimport renderForm from \"views/admin/users/Form\";\n\nclass Users {\n async index() {\n const resp = await User.get(\"all\");\n store.dispatch(setUsers(resp.resources));\n renderElement(\n ,\n document.querySelector(\"table tbody\")\n );\n }\n\n async show() {\n const user = await User.find(helpers.params.id);\n renderUser(user);\n }\n\n edit() {\n renderForm(new User({ id: helpers.params.id }));\n }\n}\n\nexport default Users;\n","const updateEditLink = (user) => {\n const editLink = document.getElementById(\"edit_link\");\n const href = editLink.getAttribute(\"href\");\n editLink.setAttribute(\"href\", href.replace(\"/0/\", `/${user.id}/`));\n};\n\nexport default (user) => {\n document.getElementById(\"user_email\").textContent = user.email;\n document.getElementById(\"user_username\").textContent = user.username;\n document.getElementById(\"user_confirmed\").textContent = user.confirmed\n ? \"Yes\"\n : \"No\";\n updateEditLink(user);\n};\n","import { UI } from \"loco-js-ui\";\n\nexport default (user) => {\n const form = new UI.Form({\n for: user,\n initObj: true,\n id: \"admin_user_form\",\n });\n form.render();\n};\n","export const commentsForArticle = (state, articleId) => {\n return state.comments[articleId];\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment }) {\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n return (\n

    \n {comment.author} on {createdAt} wrote:\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n};\n\nexport default Comment;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport Comment from \"components/main/Comment\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentList(props) {\n const articleId = props.articleId;\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => {\n setComments(commentsForArticle(store.getState(), articleId));\n });\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = comments.map((comment) => (\n \n ));\n\n if (comments.length === 0) {\n return

    No comments.

    ;\n }\n\n return <>{list};\n}\n\nCommentList.propTypes = {\n articleId: PropTypes.number.isRequired,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentsNumber(props) {\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => {\n setComments(commentsForArticle(store.getState(), props.articleId));\n });\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return <>{`${comments.length} comment${comments.length === 1 ? \"\" : \"s\"}`};\n}\n\nCommentsNumber.propTypes = {\n articleId: PropTypes.number.isRequired,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentsNumber;\n","export const simpleFormat = (str) => {\n str = str.replace(/\\r\\n?/, \"\\n\");\n str = str.trim();\n if (str.length > 0) {\n str = str.replace(/\\n\\n+/g, \"

    \");\n str = str.replace(/\\n/g, \"
    \");\n str = \"

    \" + str + \"

    \";\n }\n return str;\n};\n","const resetNode = (node) => {\n node.classList.remove(\"notice\");\n node.classList.remove(\"alert\");\n node.classList.remove(\"warning\");\n};\n\nconst setMsg = (opts, msg, node) => {\n if (opts[msg] == null) return;\n node.classList.add(msg);\n document.querySelector(\".flash p\").textContent = opts[msg];\n};\n\nconst hideAfterTime = (time = 4000) => {\n setTimeout(() => {\n document.querySelector(\".flash\").classList.add(\"none\"); // slideUp initially\n }, time);\n};\n\nexport default (opts = {}) => {\n const { hide } = opts;\n const node = document.querySelector(\".flash\");\n resetNode(node);\n setMsg(opts, \"notice\", node);\n setMsg(opts, \"alert\", node);\n setMsg(opts, \"warning\", node);\n node.classList.remove(\"none\"); // slideDown initially\n if (hide) hideAfterTime();\n};\n","import { subscribe } from \"loco-js\";\nimport { simpleFormat } from \"helpers/text\";\nimport DateService from \"services/Date\";\nimport { UI } from \"loco-js-ui\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nconst createArticleReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updating\": {\n const txt =\n \"Author is currently editing article. Be aware of possible changes.\";\n renderFlash({ warning: txt });\n break;\n }\n case \"updated\": {\n const reloadedArticle = await article.reload();\n renderArticle(reloadedArticle, true);\n }\n }\n };\n};\n\nconst renderArticle = (article, update = false) => {\n if (update === false) {\n subscribe({ to: article, with: createArticleReceivedMessage(article) });\n }\n document.getElementById(\"title\").textContent = article.title;\n document.getElementById(\"author\").textContent = article.author;\n const dateService = new DateService(article.publishedAt);\n document.getElementById(\"pub_date\").textContent =\n dateService.toString(\"short\");\n const textEl = document.getElementById(\"text\");\n textEl.innerHTML = \"\";\n const text = simpleFormat(article.content);\n textEl.insertAdjacentHTML(\"beforeend\", text);\n};\n\nconst renderForm = (comment) => {\n const form = new UI.Form({\n for: comment,\n initObj: true,\n id: \"new_comment\",\n });\n form.render();\n};\n\nexport default {\n renderArticle,\n renderForm,\n};\n","import React, { useState } from \"react\";\n\nimport Article from \"models/Article\";\n\nimport { addArticles } from \"actions\";\nimport store from \"store\";\n\nexport default function LoadMoreLink() {\n const [page, setPage] = useState(1);\n const [noMorePosts, setNoMorePosts] = useState(false);\n\n async function handleClick(e) {\n e.preventDefault();\n const currentPage = page + 1;\n setPage(currentPage);\n let resp = null;\n try {\n resp = await Article.get(\"all\", { page: currentPage });\n } catch (e) {\n alert(`Invalid URL: ${e}`);\n return;\n }\n if (resp.resources.length > 0) {\n store.dispatch(addArticles(resp.resources));\n } else {\n setNoMorePosts(true);\n }\n }\n\n function output() {\n if (noMorePosts) return No more posts.;\n else\n return (\n \n Load more…\n \n );\n }\n\n return output();\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport ArticleModel from \"models/Article\";\n\nfunction Article({ article }) {\n const date = new DateService(article.publishedAt).toString(\"short\");\n\n return (\n
    \n

    {article.title}

    \n

    \n \n {article.author} wrote this on {date} /{\" \"}\n \n {article.commentsCount} comment\n {article.commentsCount === 1 ? \"\" : \"s\"}\n \n \n

    \n

    {article.content}

    \n

    \n Continued…\n

    \n
    \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/main/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles)\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n
    \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n};\n\nexport default ArticleList;\n","import { subscribe } from \"loco-js\";\nimport { UI } from \"loco-js-ui\";\n\nimport User from \"models/User\";\nimport renderFlash from \"views/shared/Flash\";\n\nconst confirming = () => {\n document.getElementById(\"verification_info\").textContent =\n document.getElementById(\"verification_progress\").textContent;\n};\n\nconst confirmed = () => {\n window.location.href = \"/user/sessions/new?event=confirmed\";\n};\n\nconst receivedMessage = (type) => {\n switch (type) {\n case \"confirming\":\n confirming();\n break;\n case \"confirmed\":\n confirmed();\n }\n};\n\nconst created = (data) => {\n subscribe({ to: new User({ id: data.id }), with: receivedMessage });\n document.querySelector(\"form\").style.display = \"none\";\n document.getElementById(\"sign_in_paragraph\").classList.remove(\"none\");\n document.getElementById(\"verification_info\").classList.remove(\"none\");\n renderFlash({ notice: data.notice });\n};\n\nexport default () => {\n const form = new UI.Form({\n for: new User(),\n callbackSuccess: created,\n });\n form.render();\n};\n","import { Controllers } from \"loco-js\";\n\nimport Articles from \"./main/Articles\";\nimport Pages from \"./main/Pages\";\nimport Users from \"./main/Users\";\n\nclass Main extends Controllers.Base {\n initialize() {\n this.setScope(\"main\");\n }\n}\n\nMain.Articles = Articles;\nMain.Pages = Pages;\nMain.Users = Users;\n\nexport default Main;\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { helpers } from \"loco-js\";\n\nimport { setArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport CommentList from \"containers/main/articles/CommentList\";\nimport CommentsNumber from \"containers/main/articles/CommentsNumber\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport ShowView from \"views/main/articles/Show\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n store.dispatch(setArticles([article]));\n ShowView.renderArticle(article);\n};\n\nconst renderComments = async () => {\n const res = await Comment.get(\"count\", { articleId: helpers.params.id });\n const comments = await Comment.all({\n articleId: helpers.params.id,\n total: res.total,\n });\n store.dispatch(setComments(comments, helpers.params.id));\n render(\n ,\n document.getElementById(\"comments\")\n );\n render(\n ,\n document.getElementById(\"comments_count\")\n );\n};\n\nclass Articles {\n async show() {\n const newComment = new Comment({ articleId: helpers.params.id });\n ShowView.renderForm(newComment);\n renderArticle();\n renderComments();\n }\n}\n\nexport default Articles;\n","import React from \"react\";\nimport { render as renderElement } from \"react-dom\";\n\nimport { setArticles } from \"actions\";\nimport store from \"store\";\n\nimport Article from \"models/Article\";\nimport LoadMoreLink from \"containers/main/pages/LoadMoreLink\";\nimport ArticleList from \"containers/main/pages/ArticleList\";\n\nclass Pages {\n async index() {\n renderElement(\n ,\n document.getElementById(\"load_more_wrapper\")\n );\n const resp = await Article.get(\"all\", { page: 1 });\n store.dispatch(setArticles(resp.resources));\n renderElement(\n ,\n document.getElementById(\"articles\")\n );\n }\n}\n\nexport default Pages;\n","import renderUserRegistrationForm from \"views/main/users/UserRegistrationForm\";\n\nclass Users {\n new() {\n renderUserRegistrationForm();\n }\n}\n\nexport default Users;\n","import { Models } from \"loco-js\";\n\nclass Member extends Models.Base {\n static identity = \"Room.Member\";\n\n static resources = {\n url: \"/user/rooms/:roomId/members\",\n paginate: { per: 100 },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Member;\n","import { Models } from \"loco-js\";\n\nclass Room extends Models.Base {\n static identity = \"Room\";\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Room;\n","import { subscribe } from \"loco-js\";\n\nimport Room from \"models/Room\";\n\nconst memberJoined = (roomId) => {\n const node = membersNode(roomId);\n node.textContent = parseInt(node.text()) + 1;\n};\n\nconst memberLeft = (roomId) => {\n const node = membersNode(roomId);\n node.textContent = parseInt(node.text()) - 1;\n};\n\nconst membersNode = (roomId) => {\n document.querySelector(`#room_${roomId} td.members`);\n};\n\nconst renderRoom = (room) => {\n `\n \n ${room.name}\n 0\n \n Join |\n Destroy\n \n \n `;\n};\n\nconst receivedMessage = (type, data) => {\n switch (type) {\n case \"Room member_joined\":\n memberJoined(data.room_id);\n break;\n case \"Room member_left\":\n memberLeft(data.room_id);\n break;\n case \"Room created\": {\n document\n .getElementById(\"rooms_list\")\n .insertAdjacentHTML(\"beforeend\", renderRoom(data.room));\n break;\n }\n case \"Room destroyed\": {\n const roomNode = document.getElementById(`room_${data.room_id}`);\n roomNode.parentNode.removeChild(roomNode);\n }\n }\n};\n\nexport default function () {\n subscribe({ to: Room, with: receivedMessage });\n}\n","import { subscribe } from \"loco-js\";\n\nimport loco from \"initializers/loco\";\nimport Room from \"models/Room\";\n\nconst memberJoined = (member) => {\n const li = `
  • ${member.username}
  • `;\n document.getElementById(\"members\").insertAdjacentHTML(\"beforeend\", li);\n};\n\nconst memberLeft = (member) => {\n const node = document.querySelector(`#members li#user_${member.id}`);\n node.parentNode.removeChild(node);\n};\n\nconst createReceivedMessage = (roomId) => {\n return function (type, data) {\n switch (type) {\n case \"Room member_joined\":\n if (data.room_id !== roomId) return;\n memberJoined(data.member);\n break;\n case \"Room member_left\":\n if (data.room_id !== roomId) return;\n memberLeft(data.member);\n }\n };\n};\n\nconst handleSendingMessage = (roomId) => {\n document\n .querySelector(\"[data-behavior~=room-speaker]\")\n .addEventListener(\"keypress\", (event) => {\n if (event.keyCode !== 13) return;\n event.preventDefault();\n loco.emit({\n type: \"NEW_MESSAGE\",\n txt: event.target.value,\n room_id: roomId,\n });\n event.target.value = \"\";\n });\n};\n\nexport default {\n render: (roomId) => {\n subscribe({ to: Room, with: createReceivedMessage(roomId) });\n handleSendingMessage(roomId);\n },\n\n renderMembers: (members) => {\n for (const member of members) {\n memberJoined(member);\n }\n },\n\n receivedMessage: (message, author) => {\n const renderedMessage = `

    ${author}: ${message}

    `;\n document\n .getElementById(\"messages\")\n .insertAdjacentHTML(\"beforeend\", renderedMessage);\n },\n};\n","import { helpers } from \"loco-js\";\n\nimport Member from \"models/room/Member\";\n\nimport List from \"views/user/rooms/List\";\nimport Show from \"views/user/rooms/Show\";\n\nclass Rooms {\n constructor() {\n this.callbacks = {};\n }\n\n index() {\n List();\n }\n\n async show() {\n this.callbacks[\"receivedMessage\"] = Show.receivedMessage;\n Show.render(helpers.params.id);\n const resp = await Member.all({ roomId: helpers.params.id });\n Show.renderMembers(resp.resources);\n }\n}\n\nexport default Rooms;\n","import { subscribe } from \"loco-js\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nconst updateEditLink = (id) => {\n const href = document.getElementById(\"edit_link\").getAttribute(\"href\");\n document\n .getElementById(\"edit_link\")\n .setAttribute(\"href\", href.replace(\"/0/\", `/${id}/`));\n};\n\nconst handlePublishing = (article) => {\n document\n .getElementById(\"publish_article\")\n .addEventListener(\"click\", async (e) => {\n e.preventDefault();\n e.target.textContent = \"Publishing...\";\n try {\n await article.put(\"publish\");\n document.getElementById(\"publish_article\").outerHTML =\n \"Published!\";\n } catch (err) {\n document.getElementById(\"publish_article\").textContent = \"Publish\";\n renderFlash({ alert: \"Connection error!\" });\n }\n });\n};\n\nconst renderArticle = (article) => {\n document.getElementById(\"article_title\").textContent = article.title;\n document.getElementById(\"article_text\").textContent = article.content;\n const node = document.getElementById(\"publish_article\");\n if (node && article.publishedAt != null) node.style.display = \"none\";\n else if (node) node.style.display = \"\";\n};\n\nconst createArticleReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updated\":\n await article.reload();\n article.applyChanges();\n renderArticle(article);\n break;\n case \"destroyed\":\n window.location.href = \"/user/articles?message=deleted\";\n }\n };\n};\n\nexport default (article) => {\n if (article === null) return;\n subscribe({ to: article, with: createArticleReceivedMessage(article) });\n handlePublishing(article);\n updateEditLink(article.id);\n renderArticle(article);\n};\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport { updateComment } from \"actions\";\nimport store from \"store\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment, isAdmin = false }) {\n const [approving, setApproving] = useState(false);\n\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n const handleApproving = async (e) => {\n e.preventDefault();\n setApproving(true);\n comment.approved = true;\n const res = await comment.updateAttribute(\"approved\");\n if (!res.ok) return;\n store.dispatch(\n updateComment(\n new CommentModel({ ...comment, approved: true }),\n comment.articleId\n )\n );\n };\n\n const adminSection = () => {\n let approveLink;\n\n if (comment.approved) {\n approveLink = (\n <>\n approved |{\" \"}\n \n );\n } else if (approving) {\n approveLink = (\n <>\n approving... |{\" \"}\n \n );\n } else {\n approveLink = (\n <>\n \n approve\n {\" \"}\n |{\" \"}\n \n );\n }\n\n return (\n <>\n {\" \"}\n ({approveLink}\n \n edit\n {\" \"}\n |{\" \"}\n \n delete\n \n )\n \n );\n };\n\n return (\n

    \n {comment.author} on {createdAt}\n {isAdmin ? adminSection() : \"\"}\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n isAdmin: PropTypes.bool,\n};\n\nexport default Comment;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport Comment from \"containers/user/Comment\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentList(props) {\n const articleId = props.articleId;\n const isAdmin = props.isAdmin || false;\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setComments(commentsForArticle(store.getState(), articleId))\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n if (comments.length === 0) return

    No comments.

    ;\n\n const list = comments.map((comment) => (\n \n ));\n\n return <>{list};\n}\n\nCommentList.propTypes = {\n articleId: PropTypes.number.isRequired,\n isAdmin: PropTypes.bool,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React from \"react\";\nimport { render as renderElement } from \"react-dom\";\nimport { subscribe } from \"loco-js\";\nimport { UI } from \"loco-js-ui\";\n\nimport { addArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport Comment from \"models/article/Comment\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nimport CommentList from \"containers/user/CommentList\";\n\nconst displayChanges = (article) => {\n for (const [attrib] of Object.entries(article.changes())) {\n const sel = document.querySelector(\n `a.apply_changes[data-for=${article.getAttrRemoteName(attrib)}]`\n );\n if (!sel) continue;\n sel.classList.remove(\"none\");\n }\n};\n\nconst createReceivedMessage = (article) => {\n return async function (type, data) {\n switch (type) {\n case \"updating\":\n if (\n document.querySelector(\"h1\").getAttribute(\"data-mark\") !== data.mark\n ) {\n renderFlash({\n warning: \"Uuups someone else started editing this article.\",\n });\n }\n break;\n case \"updated\":\n await article.reload();\n displayChanges(article);\n break;\n case \"destroyed\":\n window.location.href = \"/user/articles?message=deleted\";\n }\n };\n};\n\nconst handleApplyingChanges = (form) => {\n for (const sel of Array.from(document.querySelectorAll(\"a.apply_changes\"))) {\n sel.addEventListener(\"click\", (e) => {\n e.preventDefault();\n const article = form.getObj();\n const attrName = article.getAttrName(e.target.getAttribute(\"data-for\"));\n article[attrName] = article.changes()[attrName].is;\n form.fill(attrName);\n e.target.classList.add(\"none\");\n });\n }\n};\n\nexport default {\n render: (article) => {\n store.dispatch(addArticles([article]));\n subscribe({ to: article, with: createReceivedMessage(article) });\n const form = new UI.Form({ for: article });\n form.render();\n handleApplyingChanges(form);\n },\n\n renderComments: async (articleId) => {\n const resp = await Comment.all({ articleId: articleId });\n store.dispatch(setComments(resp.resources, articleId));\n renderElement(\n ,\n document.getElementById(\"comments\")\n );\n },\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ArticleModel from \"models/Article\";\n\nimport { removeArticle } from \"actions\";\nimport store from \"store\";\n\nfunction Article({ article, onArticleDestroyed }) {\n const handleDeletingArticle = async (e) => {\n e.preventDefault();\n if (!confirm(\"Are you sure?\")) return;\n const data = await article.delete(null);\n if (data.success) {\n store.dispatch(removeArticle(data.id));\n }\n onArticleDestroyed(data);\n };\n\n return (\n \n {article.title}\n {article.content}\n {article.commentsCount}\n {article.publishedAt ? \"yes\" : \"no\"}\n \n Show |\n Edit |\n \n Delete\n \n \n \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n onArticleDestroyed: PropTypes.func.isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/user/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles)\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n onArticleDestroyed: PropTypes.func.isRequired,\n};\n\nexport default ArticleList;\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { helpers } from \"loco-js\";\n\nimport { setArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport renderFlash from \"views/shared/Flash\";\nimport ShowView from \"views/user/articles/Show\";\nimport FormView from \"views/user/articles/Form\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\n\nimport ArticleList from \"containers/user/ArticleList\";\nimport CommentList from \"containers/user/CommentList\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n store.dispatch(setArticles([article]));\n ShowView(article);\n};\n\nconst renderComments = async () => {\n const resp = await Comment.all({ articleId: helpers.params.id });\n store.dispatch(setComments(resp.resources, helpers.params.id));\n render(\n ,\n document.getElementById(\"comments\")\n );\n};\n\nconst onArticleDestroyed = (res) => {\n if (res.success) renderFlash({ notice: res.notice });\n else renderFlash({ alert: res.alert });\n};\n\nclass Articles {\n async index() {\n if (helpers.params.message === \"deleted\") {\n renderFlash({ alert: \"Article has been deleted.\" });\n }\n const resp = await Article.get(\"all\");\n store.dispatch(setArticles(resp.resources));\n render(\n ,\n document.getElementById(\"article_list\")\n );\n }\n\n show() {\n renderArticle();\n renderComments();\n }\n\n new() {\n FormView.render(new Article());\n }\n\n async edit() {\n FormView.renderComments(helpers.params.id);\n const article = await Article.find(helpers.params.id);\n FormView.render(article);\n }\n}\n\nexport default Articles;\n","import { Controllers } from \"loco-js\";\n\nimport Articles from \"./user/Articles\";\nimport Rooms from \"./user/Rooms\";\n\nclass User extends Controllers.Base {}\n\nUser.Articles = Articles;\nUser.Rooms = Rooms;\n\nexport default User;\n","import loco from \"initializers/loco\";\n\nimport {\n addArticles,\n prependArticles,\n updateArticle,\n addComments,\n prependUsers,\n removeComment,\n updateComment,\n} from \"actions\";\nimport store from \"store\";\nimport { findArticle, findComment } from \"selectors/articles\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport User from \"models/User\";\n\nimport AdminController from \"controllers/Admin\";\nimport MainController from \"controllers/Main\";\nimport RoomsController from \"controllers/user/Rooms\";\nimport UserController from \"controllers/User\";\n\nconst articleCreated = async ({ id }) => {\n if (loco.getEnv().namespaceController.constructor !== UserController) return;\n const article = await Article.find({ id, abbr: true });\n store.dispatch(addArticles([article]));\n};\n\nconst articlePublished = async ({ id }) => {\n if (loco.getEnv().namespaceController.constructor === AdminController) {\n const article = await Article.find({ id, abbr: true, resource: \"admin\" });\n store.dispatch(prependArticles([article]));\n } else {\n const article = await Article.find({ id, abbr: true });\n store.dispatch(addArticles([article]));\n }\n};\n\nconst articleUpdated = async ({ id }) => {\n const findParams = { id: id, abbr: true };\n if (loco.getEnv().namespaceController.constructor === AdminController) {\n findParams[\"resource\"] = \"admin\";\n }\n let [article, index] = findArticle(store.getState(), id);\n if (!article) return;\n article = await Article.find(findParams);\n store.dispatch(updateArticle(article, index));\n};\n\nconst commentsChanged = ({ article_id: articleId }, diff) => {\n const [article, index] = findArticle(store.getState(), articleId);\n if (!article) return;\n const updatedArticle = new Article({\n ...article,\n commentsCount: article.commentsCount + diff,\n });\n store.dispatch(updateArticle(updatedArticle, index));\n};\n\nconst commentCreated = async ({ article_id: articleId, id }) => {\n const findParams = { articleId, id };\n if (loco.getEnv().namespaceController.constructor === MainController) {\n findParams[\"resource\"] = \"main\";\n }\n const [article] = findArticle(store.getState(), articleId);\n if (!article) return;\n const comment = await Comment.find(findParams);\n if (comment === null) return;\n store.dispatch(addComments([comment], articleId));\n commentsChanged({ article_id: articleId }, 1);\n};\n\nconst commentDestroyed = ({ article_id: articleId, id }) => {\n store.dispatch(removeComment(id, articleId));\n};\n\nconst commentUpdated = async ({ article_id: articleId, id }) => {\n const [comment, index] = findComment(store.getState(), id, {\n parentId: articleId,\n });\n if (!comment) return;\n const reloadedComment = await comment.reload();\n store.dispatch(updateComment(reloadedComment, articleId, index));\n};\n\nconst ping = () => {\n if (loco.getEnv().namespaceController.constructor !== UserController) return;\n alert(\"Ping!\");\n};\n\nconst getCallbackForReceivedMessage = () => {\n const nullCallback = () => {};\n if (loco.getEnv().namespaceController.constructor !== UserController)\n return nullCallback;\n if (loco.getEnv().controller.constructor !== RoomsController)\n return nullCallback;\n if (loco.getEnv().action !== \"show\") return nullCallback;\n return loco.getEnv().controller.callbacks[\"receivedMessage\"];\n};\n\nexport default async (data) => {\n switch (data.type) {\n case \"PING\":\n ping();\n break;\n case \"NEW_MESSAGE\":\n getCallbackForReceivedMessage()(data.message, data.author);\n break;\n case \"Article created\":\n articleCreated(data.payload);\n break;\n case \"Article published\":\n articlePublished(data.payload);\n break;\n case \"Article updated\":\n articleUpdated(data.payload);\n break;\n case \"Article.Comment created\":\n commentCreated(data.payload);\n break;\n case \"Article.Comment destroyed\":\n commentsChanged(data.payload, -1);\n commentDestroyed(data.payload);\n break;\n case \"Article.Comment updated\":\n commentUpdated(data.payload);\n break;\n case \"User created\": {\n const user = await User.find(data.payload.id);\n store.dispatch(prependUsers([user]));\n break;\n }\n }\n};\n","import { createConnector, init } from \"loco-js\";\nimport { connect as connectUI } from \"loco-js-ui\";\nimport { createConsumer } from \"@rails/actioncable\";\n\nimport NotificationCenter from \"services/NotificationCenter\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport Member from \"models/room/Member\";\nimport Room from \"models/Room\";\nimport User from \"models/User\";\n\nimport Admin from \"controllers/Admin\";\nimport Main from \"controllers/Main\";\nimport UserController from \"controllers/User\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nArticle.Comment = Comment;\nRoom.Member = Member;\n\nconst loco = init({\n cable: createConsumer(),\n controllers: {\n Admin,\n Main,\n User: UserController,\n },\n models: {\n Article,\n Room,\n User,\n },\n notificationCenter: NotificationCenter,\n notifications: {\n log: true,\n size: 10,\n disconnectedForTooLong: () => {\n const msg =\n \"You have been disconnected from the server for too long. Reload page!\";\n renderFlash({ alert: msg, hide: false });\n },\n },\n postInit: () => {\n if (\n document.querySelector(\"body\").getAttribute(\"data-rails-env\") !== \"test\"\n )\n return;\n loco.getWire().setPollingTime(1000);\n },\n});\n\nconnectUI(createConnector(loco));\n\nexport default loco;\n","import { getLocale, I18n, Validators } from \"loco-js\";\n\nValidators.Vulgarity = class extends Validators.Base {\n static identity = \"Vulgarity\";\n\n constructor() {\n super();\n }\n\n validate() {\n if (this.val == null) return;\n switch (typeof this.val) {\n case \"string\": {\n const vulgarWord = this._getVulgarWord();\n const match = new RegExp(`${vulgarWord}`, [\"i\"]).exec(this.val);\n if (match) this._addErrorMessage();\n else return;\n break;\n }\n default:\n throw new TypeError(\n `Vulgarity validator is applicable only for strings and ${this.attr} isn't.`\n );\n }\n }\n\n _addErrorMessage() {\n const message = I18n[getLocale()].errors.messages.vulgarity;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n _getVulgarWord() {\n switch (getLocale()) {\n case \"pl\":\n return \"kurwa\";\n case \"en\":\n return \"fuck\";\n }\n }\n};\n","import { I18n } from \"loco-js\";\n\nconst lastChar = (s) => s[s.length - 1];\n\nI18n.pl = {\n variants: {\n few(i) {\n const num = parseInt(lastChar(String(i)));\n [2, 3, 4].indexOf(num) !== -1 &&\n !(String(i).length === 2 && String(i)[0] === \"1\");\n },\n },\n models: {},\n attributes: {},\n ui: {\n form: {\n sending: \"Wysyłam...\",\n success: \"Sukces\",\n errors: {\n connection: \"Błąd z połączeniem\",\n invalid_data: \"Nieprawidłowe dane\",\n },\n },\n },\n date: {\n formats: {\n default: \"%d-%m-%Y\",\n short: \"%d %b\",\n long: \"%B %d, %Y\",\n },\n day_names: [\n \"niedziela\",\n \"poniedziałek\",\n \"wtorek\",\n \"środa\",\n \"czwartek\",\n \"piątek\",\n \"sobota\",\n ],\n abbr_day_names: [\"nie\", \"pon\", \"wto\", \"śro\", \"czw\", \"pią\", \"sob\"],\n month_names: [\n \"styczeń\",\n \"luty\",\n \"marzec\",\n \"kwiecień\",\n \"maj\",\n \"czerwiec\",\n \"lipiec\",\n \"sierpień\",\n \"wrzesień\",\n \"październik\",\n \"listopad\",\n \"grudzień\",\n ],\n abbr_month_names: [\n \"sty\",\n \"lut\",\n \"mar\",\n \"kwi\",\n \"maj\",\n \"cze\",\n \"lip\",\n \"sie\",\n \"wrz\",\n \"paź\",\n \"lis\",\n \"gru\",\n ],\n },\n errors: {\n messages: {\n accepted: \"musi zostać zaakceptowane\",\n blank: \"nie może być puste\",\n confirmation: \"nie zgadza się z polem %{attribute}\",\n empty: \"nie może być puste\",\n equal_to: \"musi być równe %{count}\",\n even: \"musi być parzyste\",\n exclusion: \"jest zarezerwowane\",\n greater_than: \"musi być większe od %{count}\",\n greater_than_or_equal_to: \"musi być większe lub równe %{count}\",\n inclusion: \"nie znajduje się na liście dopuszczalnych wartości\",\n invalid: \"jest nieprawidłowe\",\n less_than: \"musi być mniejsze od %{count}\",\n less_than_or_equal_to: \"musi być mniejsze lub równe %{count}\",\n not_a_number: \"nie jest liczbą\",\n not_an_integer: \"musi być liczbą całkowitą\",\n odd: \"musi być nieparzyste\",\n present: \"musi być puste\",\n too_long: {\n few: \"jest za długie (maksymalnie %{count} znaki)\",\n many: \"jest za długie (maksymalnie %{count} znaków)\",\n one: \"jest za długie (maksymalnie jeden znak)\",\n other: \"jest za długie (maksymalnie %{count} znaków)\",\n },\n too_short: {\n few: \"jest za krótkie (przynajmniej %{count} znaki)\",\n many: \"jest za krótkie (przynajmniej %{count} znaków)\",\n one: \"jest za krótkie (przynajmniej jeden znak)\",\n other: \"jest za krótkie (przynajmniej %{count} znaków)\",\n },\n wrong_length: {\n few: \"ma nieprawidłową długość (powinna wynosić %{count} znaki)\",\n many: \"ma nieprawidłową długość (powinna wynosić %{count} znaków)\",\n one: \"ma nieprawidłową długość (powinna wynosić jeden znak)\",\n other: \"ma nieprawidłową długość (powinna wynosić %{count} znaków)\",\n },\n other_than: \"musi być inna niż %{count}\",\n },\n },\n};\n","import { I18n } from \"loco-js\";\n\nI18n.pl.models.User = \"Użytkownik\";\nI18n.pl.attributes.User = {\n password: \"Hasło\",\n passwordConfirmation: \"Powtórz hasło\",\n};\n","import { I18n } from \"loco-js\";\n\nI18n.en.errors.messages.vulgarity = \"contains strong language.\";\n","import { I18n } from \"loco-js\";\n\nI18n.pl.errors.messages.vulgarity = \"zawiera mocny język.\";\n","import { I18n } from \"loco-js\";\n\nI18n.en.date = {\n formats: {\n default: \"%Y-%m-%d\",\n short: \"%b %d\",\n long: \"%B %d, %Y\",\n },\n day_names: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n month_names: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n abbr_month_names: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n};\n","import \"core-js/stable\";\n\nimport \"scaffold.css\";\nimport \"global.css\";\n\nimport \"initializers/rails\";\nimport loco from \"initializers/loco\";\nimport \"validators/Vulgarity\";\nimport \"locales\";\n\n// for testing purposes only\nwindow.test = {\n getLine: () => loco.getLine(),\n getWire: () => loco.getWire(),\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t72: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [968], function() { return __webpack_require__(91520); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","Rails","start","ADD_ARTICLES","PREPEND_ARTICLES","REMOVE_ARTICLE","SET_ARTICLES","UPDATE_ARTICLE","ADD_COMMENTS","REMOVE_COMMENT","SET_COMMENTS","UPDATE_COMMENT","PREPEND_USERS","addArticles","articles","type","setArticles","updateArticle","article","index","setComments","comments","articleId","updateComment","comment","produce","draft","action","concat","filter","id","undefined","find","c","indexOf","users","combineReducers","createStore","reducer","createFinder","resourceType","state","opts","resources","parentId","resource","a","findArticle","findComment","Article","Models","Base","constructor","data","super","this","published","publishedAt","vulgarityLevel","title","exec","content","addErrorMessage","for","setDefaultValuesForAdminReview","adminRate","categoryId","adminReviewStartedAt","Date","now","_defineProperty","url","paginate","per","main","admin","validations","presence","length","within","minimum","remoteName","createdAt","updatedAt","commentsCount","adminReview","Comment","param","author","text","vulgarity","emotion","pinned","approved","User","email","format","with","username","password","on","confirmation","passwordConfirmation","confirmed","date","locale","getLocale","skope","I18n","toString","formats","strftime","default","short","long","console","log","str","replace","getFullYear","substr","month","getMonth","abbr_month_names","month_names","getDate","getHours","getMinutes","getSeconds","DateService","React","href","propTypes","PropTypes","CommentModel","isRequired","CommentList","map","key","renderArticle","document","getElementById","textContent","createReceivedMessage","async","reloadedArticle","reload","className","ArticleModel","ArticleList","props","useState","useEffect","unsubscribe","store","subscribe","getState","list","helpers","params","to","EditView","UI","Form","render","renderForm","signedIn","window","location","user","onClick","e","ping","userId","preventDefault","loco","emit","user_id","UserModel","UserList","setUsers","Admin","Controllers","initialize","setScope","Articles","resp","get","dispatch","edit","renderElement","all","renderComment","Comments","form","commentId","initObj","test","commentFormObj","getObj","Sessions","new","callbackSuccess","Users","querySelector","show","editLink","getAttribute","setAttribute","updateEditLink","renderUser","commentsForArticle","CommentsNumber","setMsg","msg","node","classList","add","hide","remove","resetNode","hideAfterTime","time","setTimeout","createArticleReceivedMessage","renderFlash","warning","update","dateService","textEl","innerHTML","trim","insertAdjacentHTML","LoadMoreLink","page","setPage","noMorePosts","setNoMorePosts","currentPage","alert","receivedMessage","created","style","display","notice","Main","newComment","ShowView","res","total","renderComments","Pages","Member","Room","membersNode","roomId","parseInt","memberJoined","room_id","memberLeft","room","name","roomNode","parentNode","removeChild","member","li","message","renderedMessage","callbacks","Show","addEventListener","event","keyCode","txt","target","value","handleSendingMessage","members","applyChanges","isAdmin","approving","setApproving","handleApproving","updateAttribute","ok","adminSection","approveLink","mark","attrib","Object","entries","changes","sel","getAttrRemoteName","displayChanges","Array","from","querySelectorAll","attrName","getAttrName","is","fill","handleApplyingChanges","onArticleDestroyed","confirm","delete","success","put","outerHTML","err","handlePublishing","FormView","Rooms","commentsChanged","article_id","diff","updatedArticle","init","cable","createConsumer","controllers","UserController","models","notificationCenter","getEnv","namespaceController","controller","RoomsController","nullCallback","abbr","articleCreated","payload","AdminController","prependArticles","articlePublished","findParams","articleUpdated","MainController","addComments","commentCreated","commentDestroyed","removeComment","reloadedComment","commentUpdated","prependUsers","notifications","size","disconnectedForTooLong","postInit","getWire","setPollingTime","connectUI","createConnector","Validators","Vulgarity","_Class","validate","val","vulgarWord","_getVulgarWord","RegExp","_addErrorMessage","TypeError","attr","errors","messages","obj","pl","variants","few","i","num","s","String","attributes","ui","sending","connection","invalid_data","day_names","abbr_day_names","accepted","blank","empty","equal_to","even","exclusion","greater_than","greater_than_or_equal_to","inclusion","invalid","less_than","less_than_or_equal_to","not_a_number","not_an_integer","odd","present","too_long","many","one","other","too_short","wrong_length","other_than","en","getLine","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","prototype","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","push","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"application.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///LocoModel/webpack/universalModuleDefinition","webpack:///LocoModel/webpack/bootstrap","webpack:///LocoModel/webpack/runtime/define property getters","webpack:///LocoModel/webpack/runtime/hasOwnProperty shorthand","webpack:///LocoModel/webpack/runtime/make namespace object","webpack:///LocoModel/src/config.js","webpack:///LocoModel/src/i18n.js","webpack:///LocoModel/src/locales/en.js","webpack:///LocoModel/src/IdentityMap.js","webpack:///LocoModel/src/validators/base.js","webpack:///LocoModel/src/validators/absence.js","webpack:///LocoModel/src/validators/confirmation.js","webpack:///LocoModel/src/validators/exclusion.js","webpack:///LocoModel/src/validators/format.js","webpack:///LocoModel/src/validators/inclusion.js","webpack:///LocoModel/src/validators/length.js","webpack:///LocoModel/src/validators/numericality.js","webpack:///LocoModel/src/validators/presence.js","webpack:///LocoModel/src/validators/size.js","webpack:///LocoModel/src/validators.js","webpack:///LocoModel/src/helpers/obj.js","webpack:///LocoModel/src/helpers/connectivity.js","webpack:///LocoModel/src/base.js","webpack:///LocoModel/src/models.js","webpack:///LocoModel/src/index.js","webpack:///./test/dummy/frontend/js/initializers/turbo-rails.js","webpack:///./test/dummy/frontend/js/controllers/Base.js","webpack:///./test/dummy/frontend/js/actions.js","webpack:///./test/dummy/frontend/js/reducers/articles.js","webpack:///./test/dummy/frontend/js/reducers/comments.js","webpack:///./test/dummy/frontend/js/reducers/users.js","webpack:///./test/dummy/frontend/js/reducers/index.js","webpack:///./test/dummy/frontend/js/store.js","webpack:///./test/dummy/frontend/js/models/Article.js","webpack:///./test/dummy/frontend/js/models/article/Comment.js","webpack:///./test/dummy/frontend/js/services/Date.js","webpack:///./test/dummy/frontend/js/components/admin/comment.js","webpack:///./test/dummy/frontend/js/components/admin/CommentList.js","webpack:///./test/dummy/frontend/js/views/admin/articles/Edit.js","webpack:///./test/dummy/frontend/js/components/admin/Article.js","webpack:///./test/dummy/frontend/js/containers/admin/ArticleList.js","webpack:///./test/dummy/frontend/js/controllers/admin/Articles.js","webpack:///./test/dummy/frontend/js/views/admin/articles/Form.js","webpack:///./test/dummy/frontend/js/views/admin/sessions/Form.js","webpack:///./test/dummy/frontend/js/models/User.js","webpack:///./test/dummy/frontend/js/selectors/index.js","webpack:///./test/dummy/frontend/js/selectors/articles.js","webpack:///./test/dummy/frontend/js/selectors/comments.js","webpack:///./test/dummy/frontend/js/components/main/Comment.js","webpack:///./test/dummy/frontend/js/containers/main/articles/CommentList.js","webpack:///./test/dummy/frontend/js/containers/main/articles/CommentsNumber.js","webpack:///./test/dummy/frontend/js/helpers/text.js","webpack:///./test/dummy/frontend/js/views/shared/Flash.js","webpack:///./test/dummy/frontend/js/views/main/articles/Show.js","webpack:///./test/dummy/frontend/js/containers/main/pages/LoadMoreLink.js","webpack:///./test/dummy/frontend/js/components/main/Article.js","webpack:///./test/dummy/frontend/js/containers/main/pages/ArticleList.js","webpack:///./test/dummy/frontend/js/views/main/users/UserRegistrationForm.js","webpack:///./test/dummy/frontend/js/controllers/Main.js","webpack:///./test/dummy/frontend/js/controllers/main/Articles.js","webpack:///./test/dummy/frontend/js/controllers/main/Pages.js","webpack:///./test/dummy/frontend/js/controllers/main/Users.js","webpack:///./test/dummy/frontend/js/models/room/Member.js","webpack:///./test/dummy/frontend/js/models/Room.js","webpack:///./test/dummy/frontend/js/views/user/rooms/List.js","webpack:///./test/dummy/frontend/js/services/CurrentUser.js","webpack:///./test/dummy/frontend/js/views/user/rooms/Show.js","webpack:///./test/dummy/frontend/js/controllers/user/Rooms.js","webpack:///./test/dummy/frontend/js/views/user/articles/Show.js","webpack:///./test/dummy/frontend/js/containers/user/Comment.js","webpack:///./test/dummy/frontend/js/containers/user/CommentList.js","webpack:///./test/dummy/frontend/js/views/user/articles/Form.js","webpack:///./test/dummy/frontend/js/components/user/Article.js","webpack:///./test/dummy/frontend/js/containers/user/ArticleList.js","webpack:///./test/dummy/frontend/js/controllers/user/Articles.js","webpack:///./test/dummy/frontend/js/controllers/User.js","webpack:///./test/dummy/frontend/js/services/NotificationCenter.js","webpack:///./test/dummy/frontend/js/initializers/loco.js","webpack:///./test/dummy/frontend/js/components/admin/User.js","webpack:///./test/dummy/frontend/js/containers/admin/UserList.js","webpack:///./test/dummy/frontend/js/controllers/Admin.js","webpack:///./test/dummy/frontend/js/controllers/admin/Comments.js","webpack:///./test/dummy/frontend/js/views/admin/comments/Form.js","webpack:///./test/dummy/frontend/js/controllers/admin/Sessions.js","webpack:///./test/dummy/frontend/js/controllers/admin/Users.js","webpack:///./test/dummy/frontend/js/views/admin/users/Show.js","webpack:///./test/dummy/frontend/js/views/admin/users/Form.js","webpack:///./test/dummy/frontend/js/initializers/loco-core.js","webpack:///./test/dummy/frontend/js/initializers/loco-ui.js","webpack:///./test/dummy/frontend/js/validators/Vulgarity.js","webpack:///./test/dummy/frontend/js/locales/base/pl.js","webpack:///./test/dummy/frontend/js/locales/models/user/pl.js","webpack:///./test/dummy/frontend/js/locales/validators/en.vulgarity.js","webpack:///./test/dummy/frontend/js/locales/validators/pl.vulgarity.js","webpack:///./test/dummy/frontend/js/locales/services/en.Date.js","webpack:///./test/dummy/frontend/index.js","webpack:///Loco/webpack/universalModuleDefinition","webpack:///Loco/webpack/bootstrap","webpack:///Loco/webpack/runtime/define property getters","webpack:///Loco/webpack/runtime/hasOwnProperty shorthand","webpack:///Loco/webpack/runtime/make namespace object","webpack:///Loco/src/utils/object.js","webpack:///Loco/src/deps.js","webpack:///Loco/src/line/idempotencyKeys.js","webpack:///Loco/src/wire/processNotification.js","webpack:///Loco/src/getModelForRemoteName.js","webpack:///Loco/src/wire.js","webpack:///Loco/src/wire/openRequest.js","webpack:///Loco/src/line.js","webpack:///Loco/src/line/processSystemNotification.js","webpack:///Loco/src/line/cable.js","webpack:///Loco/src/loco.js","webpack:///Loco/src/index.js","webpack:///LocoCore/webpack/universalModuleDefinition","webpack:///LocoCore/webpack/bootstrap","webpack:///LocoCore/webpack/runtime/define property getters","webpack:///LocoCore/webpack/runtime/hasOwnProperty shorthand","webpack:///LocoCore/webpack/runtime/make namespace object","webpack:///LocoCore/src/init.js","webpack:///LocoCore/src/helpers.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"LocoModel\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"LocoModel\"] = factory();\n\telse\n\t\troot[\"LocoModel\"] = factory();\n})(window, function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","class Configurator {\n constructor() {\n this.localeVar = \"en\";\n this.protocolWithHostVar = null;\n this.scopeVar = null;\n }\n\n get locale() {\n return this.localeVar;\n }\n\n set locale(val) {\n this.localeVar = val;\n }\n\n get protocolWithHost() {\n return this.protocolWithHostVar;\n }\n\n set protocolWithHost(val) {\n if (!val) {\n this.protocolWithHostVar = null;\n } else if (val[val.length - 1] === \"/\") {\n this.protocolWithHostVar = val.slice(0, val.length - 1);\n } else {\n this.protocolWithHostVar = val;\n }\n }\n\n get scope() {\n return this.scopeVar;\n }\n\n set scope(val) {\n this.scopeVar = val;\n }\n}\n\nconst Config = new Configurator();\n\nexport default Config;\n","import en from \"./locales/en\";\n\nconst I18n = { en };\n\nexport default I18n;\n","const en = {\n variants: {},\n models: {},\n attributes: {},\n errors: {\n messages: {\n accepted: \"must be accepted\",\n blank: \"can't be blank\",\n confirmation: \"doesn't match %{attribute}\",\n empty: \"can't be empty\",\n equal_to: \"must be equal to %{count}\",\n even: \"must be even\",\n exclusion: \"is reserved\",\n greater_than: \"must be greater than %{count}\",\n greater_than_or_equal_to: \"must be greater than or equal to %{count}\",\n inclusion: \"is not included in the list\",\n invalid: \"is invalid\",\n less_than: \"must be less than %{count}\",\n less_than_or_equal_to: \"must be less than or equal to %{count}\",\n not_a_number: \"is not a number\",\n not_an_integer: \"must be an integer\",\n odd: \"must be odd\",\n present: \"must be blank\",\n too_long: {\n one: \"is too long (maximum is 1 character)\",\n other: \"is too long (maximum is %{count} characters)\",\n },\n too_short: {\n one: \"is too short (minimum is 1 character)\",\n other: \"is too short (minimum is %{count} characters)\",\n },\n wrong_length: {\n one: \"is the wrong length (should be 1 character)\",\n other: \"is the wrong length (should be %{count} characters)\",\n },\n other_than: \"must be other than %{count}\",\n },\n },\n};\n\nexport default en;\n","/*\nEx.\nimap = {\n Post: {\n 1: [\n #\n ],\n 10: [\n #, #\n ],\n collection: [\n #\n ]\n }\n}\n*/\nlet imap = {};\n\nconst findPosition = (arr) => {\n let idx = arr.length;\n arr.find((element, index) => {\n if (element === null) {\n idx = index;\n return true;\n }\n });\n return idx;\n};\n\nconst addToImap = (arr, obj) => {\n if (arr.indexOf(obj) !== -1) return null;\n const idx = findPosition(arr);\n arr[idx] = obj;\n return idx;\n};\n\nconst connect = (obj, opts = {}) => {\n const model = opts.with;\n add(model);\n const arr = imap[model.getIdentity()][model.id];\n return addToImap(arr, obj);\n};\n\nconst addCollection = (identity, opts = {}) => {\n if (imap[identity] === undefined) imap[identity] = {};\n if (imap[identity][\"collection\"] === undefined)\n imap[identity][\"collection\"] = [];\n const arr = imap[identity][\"collection\"];\n return addToImap(arr, opts.to);\n};\n\nconst subscribe = (args) => {\n const forExistingElement = () => {};\n if (typeof args.to === \"object\") {\n const idx = connect(args.with, { with: args.to });\n if (idx === null) return forExistingElement;\n return () => {\n unsubscribe(args.to.getIdentity(), args.to.id, idx);\n };\n } else if (typeof args.to === \"function\") {\n const idx = addCollection(args.to.getIdentity(), {\n to: args.with,\n });\n if (idx === null) return forExistingElement;\n return () => {\n unsubscribe(args.to.getIdentity(), \"collection\", idx);\n };\n }\n};\n\nconst unsubscribe = (identity, id, idx) => {\n if (imap?.[identity]?.[id]?.[idx] !== undefined) {\n imap[identity][id][idx] = null;\n }\n};\n\nconst add = (obj) => {\n const identity = obj.getIdentity();\n if (imap[identity] === undefined) imap[identity] = {};\n if (imap[identity][obj.id] === undefined) imap[identity][obj.id] = [];\n imap[identity][obj.id][0] = obj;\n};\n\nconst find = (klass, id) => {\n return imap[klass] !== undefined && imap[klass][id] != undefined\n ? imap[klass][id][0]\n : null;\n};\n\nconst findConnected = (klass, id) => {\n if (\n imap[klass] !== undefined &&\n imap[klass][id] !== undefined &&\n imap[klass][id].length > 1\n ) {\n return imap[klass][id].slice(1);\n } else {\n return [];\n }\n};\n\nexport default {\n get imap() {\n return imap;\n },\n clear: () => (imap = {}),\n subscribe,\n unsubscribe,\n add,\n find,\n findConnected,\n};\n","import Validators from \"../validators\";\n\nclass Base {\n static instance(obj, attr, opts) {\n const validatorName = this.identity;\n if (this.sharedInstances[validatorName] == null) {\n this.sharedInstances[validatorName] = new Validators[validatorName]();\n }\n const sharedInstance = this.sharedInstances[validatorName];\n sharedInstance.assignAttribs(obj, attr, opts);\n return sharedInstance;\n }\n\n constructor() {\n this.obj = null;\n this.attr = null;\n this.val = null;\n this.opts = null;\n }\n\n assignAttribs(obj, attr, opts) {\n this.obj = obj;\n this.attr = attr;\n this.val = this.obj[this.attr];\n this.opts = opts;\n }\n}\n\nexport default Base;\n\nBase.sharedInstances = {};\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Absence extends Base {\n constructor() {\n super();\n }\n\n validate() {\n switch (typeof this.val) {\n case \"string\":\n if (this.val != null && this.val.length === 0) return;\n break;\n default:\n if (this.val == null) return;\n }\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.present;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Absence;\n\nAbsence.identity = \"Absence\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Confirmation extends Base {\n constructor() {\n super();\n }\n\n validate() {\n const properVal = this.obj[this.#properAttr()];\n if (this.val != null && properVal != null && this.val === properVal) return;\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const defaultAttrName =\n this.attr.charAt(0).toUpperCase() + this.attr.slice(1);\n const attrNames = I18n[Config.locale].attributes[this.obj.getIdentity()];\n const attrName = (attrNames && attrNames[this.attr]) || defaultAttrName;\n let message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.confirmation;\n message = message.replace(\"%{attribute}\", attrName);\n this.obj.addErrorMessage(message, { for: this.#properAttr() });\n }\n\n #properAttr() {\n return `${this.attr}Confirmation`;\n }\n}\n\nexport default Confirmation;\n\nConfirmation.identity = \"Confirmation\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Exclusion extends Base {\n constructor() {\n super();\n }\n\n validate() {\n const set = this.opts.in || this.opts.within || [];\n if (set.indexOf(this.val) === -1) return;\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.exclusion;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Exclusion;\n\nExclusion.identity = \"Exclusion\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Format extends Base {\n constructor() {\n super();\n }\n\n validate() {\n const match = this.opts.with.exec(this.val || \"\");\n if (match != null) return;\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.invalid;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Format;\n\nFormat.identity = \"Format\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Inclusion extends Base {\n constructor() {\n super();\n }\n\n validate() {\n const set = this.opts.in || this.opts.within || [];\n if (set.indexOf(this.val) !== -1) return;\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.inclusion;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Inclusion;\n\nInclusion.identity = \"Inclusion\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Length extends Base {\n constructor() {\n super();\n }\n\n validate() {\n if (this.val == null) return;\n let message = null;\n const [from, to] = this.#range();\n if (from != null && to != null && from === to && this.val.length !== from) {\n message = this.#selectErrorMessage(\"wrong_length\", from);\n } else if (from != null && this.val.length < from) {\n message = this.#selectErrorMessage(\"too_short\", from);\n } else if (to != null && this.val.length > to) {\n message = this.#selectErrorMessage(\"too_long\", to);\n }\n if (message === null) return;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #range() {\n const from =\n this.opts.minimum ||\n this.opts.is ||\n (this.opts.within != null && this.opts.within[0]) ||\n null;\n const to =\n this.opts.maximum ||\n this.opts.is ||\n (this.opts.within != null && this.opts.within[1]) ||\n null;\n return [from, to];\n }\n\n #selectErrorMessage(msg, val) {\n if (val === 1) return I18n[Config.locale].errors.messages[msg].one;\n let message = null;\n for (const variant of [\"few\", \"many\"]) {\n if (this.#checkVariant(variant, val)) {\n message = I18n[Config.locale].errors.messages[msg][variant];\n break;\n }\n }\n if (message == null) {\n message = I18n[Config.locale].errors.messages[msg].other;\n }\n if (this.opts.message != null) {\n message = this.opts.message;\n }\n if (/%\\{count\\}/.exec(message)) {\n message = message.replace(\"%{count}\", val);\n }\n return message;\n }\n\n #checkVariant(variant, val) {\n if (I18n[Config.locale].variants[variant] == null) return undefined;\n return I18n[Config.locale].variants[variant](val);\n }\n}\n\nexport default Length;\n\nLength.identity = \"Length\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Numericality extends Base {\n constructor() {\n super();\n }\n\n validate() {\n if (isNaN(this.val)) {\n this.#addNaNErrorMessage();\n } else if (\n this.opts.only_integer != null &&\n Number(this.val) !== parseInt(this.val, 10)\n ) {\n this.#addIntErrorMessage();\n } else if (\n this.opts.greater_than != null &&\n Number(this.val) <= this.opts.greater_than\n ) {\n this.#addGreatherThanErrorMessage();\n } else if (\n this.opts.greater_than_or_equal_to != null &&\n Number(this.val) < this.opts.greater_than_or_equal_to\n ) {\n this.#addGreatherThanOrEqualToErrorMessage();\n } else if (\n this.opts.equal_to != null &&\n Number(this.val) !== this.opts.equal_to\n ) {\n this.#addEqualToErrorMessage();\n } else if (\n this.opts.less_than != null &&\n Number(this.val) >= this.opts.less_than\n ) {\n this.#addLessThanErrorMessage();\n } else if (\n this.opts.less_than_or_equal_to != null &&\n Number(this.val) > this.opts.less_than_or_equal_to\n ) {\n this.#addLessThanOrEqualToErrorMessage();\n } else if (\n this.opts.other_than != null &&\n Number(this.val) === this.opts.other_than\n ) {\n this.#addOtherThanErrorMessage();\n } else if (this.opts.odd != null && Number(this.val) % 2 !== 1) {\n this.#addOddErrorMessage();\n } else if (this.opts.even != null && Number(this.val) % 2 !== 0) {\n this.#addEvenErrorMessage();\n }\n }\n\n #addNaNErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.not_a_number;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addIntErrorMessage() {\n const message = I18n[Config.locale].errors.messages.not_an_integer;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addGreatherThanErrorMessage() {\n let message = I18n[Config.locale].errors.messages.greater_than;\n message = message.replace(\"%{count}\", this.opts.greater_than);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addGreatherThanOrEqualToErrorMessage() {\n let message = I18n[Config.locale].errors.messages.greater_than_or_equal_to;\n message = message.replace(\"%{count}\", this.opts.greater_than_or_equal_to);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addEqualToErrorMessage() {\n let message = I18n[Config.locale].errors.messages.equal_to;\n message = message.replace(\"%{count}\", this.opts.equal_to);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addLessThanErrorMessage() {\n let message = I18n[Config.locale].errors.messages.less_than;\n message = message.replace(\"%{count}\", this.opts.less_than);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addLessThanOrEqualToErrorMessage() {\n let message = I18n[Config.locale].errors.messages.less_than_or_equal_to;\n message = message.replace(\"%{count}\", this.opts.less_than_or_equal_to);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addOtherThanErrorMessage() {\n let message = I18n[Config.locale].errors.messages.other_than;\n message = message.replace(\"%{count}\", this.opts.other_than);\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addOddErrorMessage() {\n const message = I18n[Config.locale].errors.messages.odd;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n #addEvenErrorMessage() {\n const message = I18n[Config.locale].errors.messages.even;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Numericality;\n\nNumericality.identity = \"Numericality\";\n","import Base from \"./base.js\";\nimport I18n from \"../i18n\";\nimport Config from \"../config\";\n\nclass Presence extends Base {\n constructor() {\n super();\n }\n\n validate() {\n switch (typeof this.val) {\n case \"string\":\n if (this.val != null && this.val.length > 0) return;\n break;\n default:\n if (this.val != null) return;\n }\n this.#addErrorMessage();\n }\n\n #addErrorMessage() {\n const message =\n this.opts.message != null\n ? this.opts.message\n : I18n[Config.locale].errors.messages.blank;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n}\n\nexport default Presence;\n\nPresence.identity = \"Presence\";\n","import Base from \"./base.js\";\nimport Length from \"./length.js\";\n\nclass Size extends Base {\n constructor() {\n super();\n }\n\n validate() {\n return Length.instance(this.obj, this.attr, this.opts).validate();\n }\n}\n\nexport default Size;\n\nSize.identity = \"Size\";\n","import Absence from \"./validators/absence\";\nimport Base from \"./validators/base\";\nimport Confirmation from \"./validators/confirmation\";\nimport Exclusion from \"./validators/exclusion\";\nimport Format from \"./validators/format\";\nimport Inclusion from \"./validators/inclusion\";\nimport Length from \"./validators/length\";\nimport Numericality from \"./validators/numericality\";\nimport Presence from \"./validators/presence\";\nimport Size from \"./validators/size\";\n\nconst Validators = {\n Absence,\n Base,\n Confirmation,\n Exclusion,\n Format,\n Inclusion,\n Length,\n Numericality,\n Presence,\n Size,\n};\n\nexport default Validators;\n","export const toURIParams = (obj) => {\n let str = \"\";\n Object.keys(obj).forEach((key) => {\n if (str !== \"\") str = `${str}&`;\n str = `${str}${key}=${encodeURIComponent(obj[key])}`;\n });\n return str;\n};\n\nexport default toURIParams;\n","import { toURIParams } from \"./obj\";\n\nconst filterParams = (data) => {\n const params = {};\n if (!data) return params;\n const forbidden = [\"resource\", \"total\", \"count\"];\n Object.keys(data).forEach((prop) => {\n if (forbidden.indexOf(prop) === -1) {\n params[prop] = data[prop];\n }\n });\n return params;\n};\n\nexport const sendReq = (httpMeth, url, data, opts = {}) => {\n const params = filterParams(data);\n const finalURL = httpMeth === \"GET\" ? `${url}?${toURIParams(params)}` : url;\n const meta = document.querySelector(\"meta[name='csrf-token']\");\n const req = new XMLHttpRequest();\n req.withCredentials = opts.cookiesByCORS === true ? true : false;\n req.open(httpMeth, finalURL);\n req.setRequestHeader(\"Accept\", \"application/json\");\n req.setRequestHeader(\"Content-Type\", \"application/json\");\n if (meta) {\n req.setRequestHeader(\"X-CSRF-Token\", meta.content);\n }\n if (opts.authorizationHeader != null) {\n req.setRequestHeader(\"Authorization\", opts.authorizationHeader);\n }\n req.send(JSON.stringify(params));\n return req;\n};\n\nexport default sendReq;\n","import Validators from \"./validators\";\nimport Config from \"./config\";\nimport IdentityMap from \"./IdentityMap\";\nimport { sendReq } from \"./helpers/connectivity\";\n\nclass Base {\n static getIdentity() {\n if (this.identity != null) return this.identity;\n throw new Error(\"Specify Model's identity!\");\n }\n\n static getRemoteName() {\n return this.remoteName != null ? this.remoteName : this.getIdentity();\n }\n\n static all(opts = {}) {\n return this.get(\"all\", opts);\n }\n\n static get(action, opts = {}) {\n return this.__send(\"GET\", action, opts);\n }\n\n static post(action, opts = {}) {\n return this.__send(\"POST\", action, opts);\n }\n\n static put(action, opts = {}) {\n return this.__send(\"PUT\", action, opts);\n }\n\n static patch(action, opts = {}) {\n return this.__send(\"PATCH\", action, opts);\n }\n\n static delete(action, opts = {}) {\n return this.__send(\"DELETE\", action, opts);\n }\n\n static find(idOrObj) {\n let urlParams = {};\n let id;\n if (typeof idOrObj === \"object\") {\n urlParams = { ...idOrObj };\n id = idOrObj.id;\n delete urlParams.id;\n } else {\n id = idOrObj;\n }\n const url = `${this.__getResourcesUrl(urlParams)}/${id}`;\n const req = sendReq(\"GET\", url, urlParams, this.__requestOpts());\n return new Promise((resolve, reject) => {\n req.onerror = (e) => reject(e);\n req.onload = (e) => {\n if (e.target.status === 404) {\n resolve(null);\n return;\n }\n const record = JSON.parse(e.target.response);\n resolve(this.__initFromJSON(record, idOrObj.resource));\n };\n });\n }\n\n static getAttribRemoteName(attrib) {\n if (this.attributes == null) return null;\n if (this.attributes[attrib] == null) return null;\n if (this.attributes[attrib].remoteName == null) return attrib;\n return this.attributes[attrib].remoteName;\n }\n\n static getResourcesUrlParams(opts) {\n let url = this.__getResourcesUrl({ resource: opts.resource });\n const regexp = /:(\\w+)\\/?/;\n const params = [];\n let match;\n // Extract all params like :id, :userId, etc.\n while ((match = regexp.exec(url))) {\n params.push(match[1]);\n url = url.replace(match[0], match[1]);\n }\n return params;\n }\n\n static __getResourcesUrl(opts = {}) {\n let resourcesUrl;\n if (this.resources == null) {\n resourcesUrl = `/${this.getRemoteName().toLowerCase()}s`;\n } else if (opts.resource) {\n resourcesUrl = this.resources[opts.resource].url;\n } else if (\n Config.scope != null &&\n this.resources != null &&\n this.resources[Config.scope] != null\n ) {\n resourcesUrl = this.resources[Config.scope].url;\n } else {\n resourcesUrl = this.resources.url;\n }\n if (this.protocolWithHost != null) {\n resourcesUrl = `${this.protocolWithHost}${resourcesUrl}`;\n } else if (Config.protocolWithHost != null) {\n resourcesUrl = `${Config.protocolWithHost}${resourcesUrl}`;\n }\n const match = /:([a-zA-Z]+)\\/?/.exec(resourcesUrl);\n if (match == null) return resourcesUrl;\n if (opts[match[1]] != null) {\n resourcesUrl = resourcesUrl.replace(`:${match[1]}`, opts[match[1]]);\n delete opts[match[1]];\n } else if (opts.obj != null && opts.obj[match[1]] != null) {\n resourcesUrl = resourcesUrl.replace(`:${match[1]}`, opts.obj[match[1]]);\n }\n return resourcesUrl;\n }\n\n static __requestOpts() {\n return {\n authorizationHeader:\n Config.authorizationHeader || this.authorizationHeader,\n cookiesByCORS:\n this.cookiesByCORS != null ? this.cookiesByCORS : Config.cookiesByCORS,\n };\n }\n\n static __page(i, pageData, resp) {\n const url = pageData.url;\n pageData.params[pageData.pageParam] = i;\n const req = sendReq(\n pageData.method,\n url,\n pageData.params,\n this.__requestOpts(),\n );\n return new Promise((resolve, reject) => {\n req.onerror = (e) => reject(e);\n req.onload = (e) => {\n const data = JSON.parse(e.target.response);\n if (Array.isArray(data)) {\n for (const record of data) {\n const obj = this.__initFromJSON(record, pageData.resource);\n resp.push(obj);\n }\n } else if (data.resources != null) {\n if (resp.constructor === Array) {\n resp = { resources: [], count: 0 };\n }\n for (const record of data.resources) {\n const obj = this.__initFromJSON(record, pageData.resource);\n resp.resources.push(obj);\n }\n resp.count = data.count;\n } else {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n resp[key] = data[key];\n }\n }\n }\n resolve(resp);\n };\n });\n }\n\n static __paginate(opts) {\n const pageData = {\n method: opts.method,\n url: opts.url,\n params: opts.params,\n pageParam: opts.pageParam,\n resource: opts.resource,\n };\n return this.__page(opts.pageNum || 1, pageData, []).then((data) => {\n const total = data.count || opts.total;\n let promise = Promise.resolve(data);\n if (opts.pageNum != null) return promise;\n if (total <= opts.perPage) return promise;\n let max = parseInt(total / opts.perPage, 10);\n if (max !== total / opts.perPage) max += 1;\n if (max === 1) return promise;\n for (let i = 2; i <= max; i += 1) {\n const func = (ii) => {\n promise = promise.then(() => this.__page(ii, pageData, data));\n };\n func(i);\n }\n return promise;\n });\n }\n\n static __getPaginationParam(resource) {\n const defaultParam = \"page\";\n if (\n resource != null &&\n this.resources != null &&\n this.resources[resource]\n ) {\n return (\n (this.resources[resource].paginate &&\n this.resources[resource].paginate.param) ||\n defaultParam\n );\n }\n if (\n Config.scope != null &&\n this.resources != null &&\n this.resources[Config.scope] != null\n ) {\n const param =\n this.resources[Config.scope] &&\n this.resources[Config.scope].paginate &&\n this.resources[Config.scope].paginate.param;\n return param || defaultParam;\n }\n if (\n this.resources != null &&\n this.resources.paginate != null &&\n this.resources.paginate.param != null\n ) {\n return this.resources.paginate.param;\n }\n return defaultParam;\n }\n\n static __getPaginationPer(resource) {\n if (\n resource != null &&\n this.resources != null &&\n this.resources[resource]\n ) {\n return (\n this.resources[resource].paginate &&\n this.resources[resource].paginate.per\n );\n }\n if (\n Config.scope != null &&\n this.resources != null &&\n this.resources[Config.scope] != null\n ) {\n return (\n this.resources[Config.scope] &&\n this.resources[Config.scope].paginate &&\n this.resources[Config.scope].paginate.per\n );\n }\n if (\n this.resources != null &&\n this.resources.paginate != null &&\n this.resources.paginate.per != null\n ) {\n return this.resources.paginate.per;\n }\n return null;\n }\n\n static __send(method, action, opts) {\n let url = this.__getResourcesUrl(opts);\n if (action !== \"all\") {\n url = `${url}/${action}`;\n }\n const data = {\n method,\n url,\n params: opts,\n resource: opts.resource,\n perPage: this.__getPaginationPer(opts.resource),\n pageNum: opts.page,\n pageParam: this.__getPaginationParam(opts.resource),\n total: opts.total || opts.count,\n };\n return this.__paginate(data);\n }\n\n static __initFromJSON(record, resource) {\n const obj = new this(record);\n obj.resource = resource;\n IdentityMap.add(obj);\n return obj;\n }\n\n constructor(data = {}) {\n this.id = null;\n this.errors = null;\n this.resource = data.resource;\n if (this.constructor.attributes != null) this.#initAttributes();\n if (data != null) this.#assignAttributes(data);\n }\n\n setResource(name) {\n this.resource = name;\n }\n\n getIdentity() {\n return this.constructor.getIdentity();\n }\n\n getAttrRemoteName(attr) {\n if (this.constructor.attributes == null) return null;\n if (this.constructor.attributes[attr] == null) return null;\n return this.constructor.attributes[attr].remoteName || attr;\n }\n\n getAttrName(remoteName) {\n if (this.constructor.attributes == null) return remoteName;\n if (this.constructor.attributes[remoteName] != null) return remoteName;\n for (const name in this.constructor.attributes) {\n const config = this.constructor.attributes[name];\n if (config.remoteName === remoteName) return name;\n }\n return remoteName;\n }\n\n getAttrType(attrName) {\n if (this.constructor.attributes == null) return null;\n if (this.constructor.attributes[attrName] == null) return null;\n return this.constructor.attributes[attrName].type;\n }\n\n assignAttr(attrName, val) {\n const attrType = this.getAttrType(attrName);\n if (val == null) {\n this[attrName] = null;\n return;\n }\n switch (attrType) {\n case \"Date\":\n val = new Date(Date.parse(val));\n break;\n case \"Integer\":\n case \"Int\":\n val = parseInt(val, 10);\n break;\n case \"Float\":\n val = parseFloat(val);\n break;\n case \"Boolean\":\n case \"Bool\":\n val = typeof val === \"boolean\" ? val : Boolean(parseInt(val, 10));\n break;\n case \"Number\":\n val = Number(val);\n break;\n case \"String\":\n val = String(val);\n break;\n default:\n break;\n }\n this[attrName] = val;\n }\n\n attributes() {\n const attribs = { id: this.id };\n if (this.constructor.attributes == null) return attribs;\n for (const name in this.constructor.attributes) {\n attribs[name] = this[name];\n }\n return attribs;\n }\n\n isValid() {\n if (this.constructor.attributes == null) return true;\n this.errors = null;\n for (const name in this.constructor.attributes) {\n const config = this.constructor.attributes[name];\n if (config == null || config.validations == null) continue;\n for (const validationName in config.validations) {\n const validationSettings = config.validations[validationName];\n if (this.id != null && validationSettings.on === \"create\") continue;\n if (this.id == null && validationSettings.on === \"update\") continue;\n if (validationSettings.if != null && !validationSettings.if(this))\n continue;\n const validator =\n validationName.charAt(0).toUpperCase() + validationName.slice(1);\n if (Validators[validator] == null) {\n console.warn(`\"${validator}\" validator is not implemented!`);\n continue;\n }\n const pvs = this.#processedValidationSettings(validationSettings);\n Validators[validator].instance(this, name, pvs).validate();\n }\n }\n if (this.constructor.validate != null) {\n for (const meth of this.constructor.validate) {\n if (typeof this[meth] === \"function\") this[meth]();\n }\n }\n return this.errors == null;\n }\n\n isInvalid() {\n return !this.isValid();\n }\n\n isEmpty() {\n const attrs = this.attributes();\n for (const name in attrs) {\n if (this[name] !== null) return false;\n }\n return true;\n }\n\n addErrorMessage(message, opts = {}) {\n if (this.errors == null) this.errors = {};\n const forKey = opts.for;\n if (this.errors[forKey] == null) this.errors[forKey] = [];\n this.errors[forKey].push(message);\n }\n\n save() {\n const httpMeth = this.id != null ? \"PUT\" : \"POST\";\n const req = sendReq(\n httpMeth,\n this.#getResourceUrl(),\n this.serialize(),\n this.constructor.__requestOpts(),\n );\n return new Promise((resolve, reject) => {\n req.onerror = (e) => reject(e);\n req.onload = (e) => {\n const data = JSON.parse(e.target.response);\n if (data.success) {\n resolve(data);\n return;\n }\n if (data.errors != null) this.#assignRemoteErrorMessages(data.errors);\n resolve(data);\n };\n });\n }\n\n updateAttribute(attr) {\n const req = sendReq(\n \"PUT\",\n this.#getResourceUrl(),\n this.serialize(attr),\n this.constructor.__requestOpts(),\n );\n return new Promise((resolve, reject) => {\n req.onerror = (e) => reject(e);\n req.onload = (e) => {\n if (e.target.status >= 200 && e.target.status < 400) {\n const data = JSON.parse(e.target.response);\n if (data.success) {\n resolve(data);\n return;\n }\n if (data.errors != null) this.#assignRemoteErrorMessages(data.errors);\n resolve(data);\n } else if (e.target.status >= 500) {\n reject(e);\n }\n };\n });\n }\n\n serialize(attr = null) {\n if (this.constructor.attributes == null) return {};\n const hash = {};\n const mainKey = this.constructor.getRemoteName().toLowerCase();\n hash[mainKey] = {};\n let attribs = {};\n if (attr != null) {\n attribs[attr] = null;\n } else {\n attribs = this.constructor.attributes;\n }\n for (const key in attribs) {\n const remoteName = this.getAttrRemoteName(key);\n hash[mainKey][remoteName] = this[key];\n }\n return hash;\n }\n\n reload() {\n const findParams = { id: this.id, resource: this.resource };\n const params = this.constructor.getResourcesUrlParams({\n resource: this.resource,\n });\n for (const param of params) {\n findParams[param] = this[param];\n }\n return this.constructor.find(findParams);\n }\n\n changes() {\n const result = {};\n const currentObj = IdentityMap.find(this.getIdentity(), this.id);\n const attrs = this.attributes();\n for (const name in attrs) {\n const val = attrs[name];\n if (val !== currentObj[name]) {\n if (\n val != null &&\n val.constructor === Date &&\n currentObj[name] - val === 0\n )\n continue;\n if (val !== currentObj[name])\n result[name] = { is: currentObj[name], was: val };\n }\n }\n return result;\n }\n\n applyChanges() {\n const diffs = this.changes();\n for (const name in diffs) {\n this[name] = diffs[name].is;\n }\n }\n\n toKey() {\n return `${this.getIdentity().toLowerCase()}_${this.id}`;\n }\n\n get(action, data = {}) {\n return this.#send(\"GET\", action, data);\n }\n\n post(action, data = {}) {\n return this.#send(\"POST\", action, data);\n }\n\n put(action, data = {}) {\n return this.#send(\"PUT\", action, data);\n }\n\n patch(action, data = {}) {\n return this.#send(\"PATCH\", action, data);\n }\n\n delete(action, data = {}) {\n return this.#send(\"DELETE\", action, data);\n }\n\n #send(method, action, data) {\n let url = this.#getResourceUrl();\n if (action != null) {\n url = `${url}/${action}`;\n }\n const req = sendReq(method, url, data, this.constructor.__requestOpts());\n return new Promise((resolve, reject) => {\n req.onerror = (e) => reject(e);\n req.onload = (e) => {\n if (e.target.status >= 200 && e.target.status < 400) {\n const respData = JSON.parse(e.target.response);\n resolve(respData);\n } else if (e.target.status >= 500) {\n reject(e);\n }\n };\n });\n }\n\n #assignAttributes(data) {\n for (const key in data) {\n const val = data[key];\n const attrName = this.getAttrName(key);\n this.assignAttr(attrName, val);\n }\n }\n\n #initAttributes() {\n for (const name in this.constructor.attributes) {\n this[name] = null;\n }\n }\n\n #assignRemoteErrorMessages(remoteErrors) {\n for (const remoteName in remoteErrors) {\n const errors = remoteErrors[remoteName];\n const attr = this.getAttrName(remoteName);\n for (const error of errors) {\n this.addErrorMessage(error, { for: attr });\n }\n }\n }\n\n #getResourceUrl() {\n const url = this.constructor.__getResourcesUrl({\n resource: this.resource,\n obj: this,\n });\n if (this.id == null) return url;\n return `${url}/${this.id}`;\n }\n\n #processedValidationSettings(validationSettings) {\n const res = {};\n for (const confName in validationSettings) {\n const confVal = validationSettings[confName];\n if (typeof confVal === \"function\") {\n res[confName] = confVal(this);\n } else {\n res[confName] = confVal;\n }\n }\n return res;\n }\n}\n\nexport default Base;\n","import Base from \"./base\";\n\nBase.prototype.clone = function () {\n return new this.constructor({ ...this.attributes() });\n};\n\nconst Models = { Base };\n\nexport default Models;\n","import Config from \"./config\";\nimport I18n from \"./i18n\";\nimport IdentityMap from \"./IdentityMap\";\nimport Models from \"./models\";\nimport Validators from \"./validators\";\n\nconst connector = {\n IdentityMap,\n Models,\n};\n\nexport { Config, I18n, Models, Validators, connector };\n","import \"@hotwired/turbo-rails\";\n\ndocument.addEventListener(\"turbo:before-render\", (event) => {\n const { namespace, controller, action } = event.detail.newBody.dataset;\n\n document.body.dataset.namespace = namespace;\n document.body.dataset.controller = controller;\n document.body.dataset.action = action;\n});\n","import { Config } from \"loco-js-model\";\n\nclass Base {\n setScope(name) {\n Config.scope = name;\n }\n}\n\nexport default Base;\n","/*\n * action types\n */\n\nexport const ADD_ARTICLES = \"ADD_ARTICLES\";\nexport const PREPEND_ARTICLES = \"PREPEND_ARTICLES\";\nexport const REMOVE_ARTICLE = \"REMOVE_ARTICLE\";\nexport const SET_ARTICLES = \"SET_ARTICLES\";\nexport const UPDATE_ARTICLE = \"UPDATE_ARTICLE\";\n\nexport const ADD_COMMENTS = \"ADD_COMMENTS\";\nexport const REMOVE_COMMENT = \"REMOVE_COMMENT\";\nexport const SET_COMMENTS = \"SET_COMMENTS\";\nexport const UPDATE_COMMENT = \"UPDATE_COMMENT\";\n\nexport const PREPEND_USERS = \"PREPEND_USERS\";\nexport const SET_USERS = \"SET_USERS\";\n\n/*\n * action creators\n */\n\nexport function addArticles(articles) {\n return { type: ADD_ARTICLES, articles };\n}\n\nexport function prependArticles(articles) {\n return { type: PREPEND_ARTICLES, articles };\n}\n\nexport function removeArticle(id) {\n return { type: REMOVE_ARTICLE, id };\n}\n\nexport function setArticles(articles) {\n return { type: SET_ARTICLES, articles };\n}\n\nexport function updateArticle(article, index) {\n return { type: UPDATE_ARTICLE, article, index };\n}\n\nexport function addComments(comments, articleId) {\n return { type: ADD_COMMENTS, articleId, comments };\n}\n\nexport function removeComment(id, articleId) {\n return { type: REMOVE_COMMENT, id, articleId };\n}\n\nexport function setComments(comments, articleId) {\n return { type: SET_COMMENTS, comments, articleId };\n}\n\nexport function updateComment(comment, articleId, index) {\n return { type: UPDATE_COMMENT, comment, articleId, index };\n}\n\nexport function prependUsers(users) {\n return { type: PREPEND_USERS, users };\n}\n\nexport function setUsers(users) {\n return { type: PREPEND_USERS, users };\n}\n","import { produce } from \"immer\";\n\nimport {\n ADD_ARTICLES,\n PREPEND_ARTICLES,\n REMOVE_ARTICLE,\n SET_ARTICLES,\n UPDATE_ARTICLE,\n} from \"actions\";\n\nexport default produce((draft = [], action) => {\n switch (action.type) {\n case ADD_ARTICLES: {\n const newArticles = action.articles.filter(\n (newArticle) =>\n !draft.some(\n (existingArticle) => existingArticle.id === newArticle.id,\n ),\n );\n draft.push(...newArticles);\n return;\n }\n case PREPEND_ARTICLES:\n return action.articles.concat(draft);\n case REMOVE_ARTICLE:\n return draft.filter((article) => article.id !== action.id);\n case SET_ARTICLES:\n return action.articles;\n case UPDATE_ARTICLE:\n draft[action.index] = action.article;\n break;\n default:\n return draft;\n }\n});\n","import { produce } from \"immer\";\n\nimport {\n ADD_COMMENTS,\n REMOVE_COMMENT,\n SET_COMMENTS,\n UPDATE_COMMENT,\n} from \"actions\";\n\nexport default produce((draft = {}, action) => {\n switch (action.type) {\n case ADD_COMMENTS:\n if (draft[action.articleId] === undefined) {\n draft[action.articleId] = [];\n }\n draft[action.articleId] = draft[action.articleId].concat(action.comments);\n break;\n case REMOVE_COMMENT:\n if (draft[action.articleId] == null) return draft;\n draft[action.articleId] = draft[action.articleId].filter(\n (comment) => comment.id !== action.id,\n );\n break;\n case SET_COMMENTS:\n draft[action.articleId] = action.comments;\n break;\n case UPDATE_COMMENT: {\n const articleId = action.articleId;\n let index = action.index;\n if (!index) {\n const comment = draft[articleId].find(\n (c) => c.id === action.comment.id,\n );\n index = draft[articleId].indexOf(comment);\n }\n draft[articleId][index] = action.comment;\n break;\n }\n default:\n return draft;\n }\n});\n","import { produce } from \"immer\";\n\nimport { PREPEND_USERS, SET_USERS } from \"actions\";\n\nexport default produce((draft = [], action) => {\n switch (action.type) {\n case SET_USERS:\n return action.users;\n case PREPEND_USERS:\n return action.users.concat(draft);\n default:\n return draft;\n }\n});\n","import { combineReducers } from \"redux\";\n\nimport articles from \"./articles\";\nimport comments from \"./comments\";\nimport users from \"./users\";\n\nexport default combineReducers({\n articles,\n comments,\n users,\n});\n","import { legacy_createStore as createStore } from \"redux\";\n\nimport reducer from \"reducers\";\n\nconst store = createStore(reducer);\n\nexport default store;\n","import { Models } from \"loco-js-model\";\n\nclass Article extends Models.Base {\n static identity = \"Article\";\n\n static resources = {\n url: \"/user/articles\",\n paginate: { per: 5 },\n main: {\n url: \"/articles\",\n paginate: { per: 3 },\n },\n admin: {\n url: \"/admin/articles\",\n paginate: { per: 4 },\n },\n };\n\n static attributes = {\n title: {\n validations: {\n presence: true,\n length: { within: [3, 255] },\n },\n },\n content: {\n validations: {\n presence: true,\n length: { minimum: 100 },\n },\n remoteName: \"text\",\n },\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n commentsCount: {\n type: \"Int\",\n remoteName: \"comments_count\",\n },\n publishedAt: {\n type: \"Date\",\n remoteName: \"published_at\",\n },\n published: {},\n adminReview: {\n remoteName: \"admin_review\",\n },\n adminRate: {\n type: \"Int\",\n remoteName: \"admin_rate\",\n },\n categoryId: {\n type: \"Int\",\n remoteName: \"category_id\",\n },\n adminReviewStartedAt: {\n remoteName: \"admin_review_started_at\",\n },\n };\n\n static validate = [\"vulgarityLevel\"];\n\n constructor(data) {\n super(data);\n this.published = this.publishedAt == null ? false : true;\n }\n\n vulgarityLevel() {\n if (\n (this.title != null && /fuck/i.exec(this.title)) ||\n (this.content != null && /fuck/i.exec(this.content))\n )\n this.addErrorMessage(\"Article contains strong language.\", {\n for: \"base\",\n });\n }\n\n setDefaultValuesForAdminReview() {\n this.adminRate = this.adminRate == null ? 3 : this.adminRate;\n this.categoryId = this.categoryId == null ? 6 : this.categoryId;\n this.adminReviewStartedAt = Date.now();\n }\n}\n\nexport default Article;\n","import { Models } from \"loco-js-model\";\n\nclass Comment extends Models.Base {\n static identity = \"Article.Comment\";\n\n static remoteName = \"Comment\";\n\n static resources = {\n url: \"/user/articles/:articleId/comments\",\n paginate: { per: 10 },\n main: {\n url: \"/articles/:articleId/comments\",\n paginate: { per: 5, param: \"page-num\" },\n },\n admin: {\n url: \"/admin/articles/:articleId/comments\",\n paginate: { per: 5 },\n },\n };\n\n static attributes = {\n author: {\n validations: {\n presence: true,\n },\n },\n text: {\n validations: {\n presence: true,\n vulgarity: true,\n },\n },\n articleId: {\n type: \"Int\",\n validations: {\n presence: true,\n },\n remoteName: \"article_id\",\n },\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n emotion: {\n type: \"Int\",\n },\n pinned: {\n type: \"Boolean\",\n },\n adminRate: {\n type: \"Int\",\n remoteName: \"admin_rate\",\n },\n approved: {\n type: \"Boolean\",\n },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Comment;\n","import { Config, I18n } from \"loco-js-model\";\n\nclass Date {\n constructor(date, locale = Config.locale) {\n this.date = date;\n this.skope = I18n[locale].date;\n }\n\n toString(format = \"default\") {\n const skope = this.skope.formats;\n switch (format) {\n case \"default\":\n return this.strftime(skope.default);\n case \"short\":\n return this.strftime(skope.short);\n case \"long\":\n return this.strftime(skope.long);\n default:\n console.log(\"Services.Date#toString: unknown format.\");\n }\n }\n\n strftime(str) {\n str = str.replace(\"%Y\", this.date.getFullYear());\n str = str.replace(\"%y\", this.date.getFullYear().toString().substr(-2, 2));\n let month = this.date.getMonth() + 1;\n month = month >= 10 ? month : `0${month}`;\n str = str.replace(\"%m\", month);\n str = str.replace(\"%b\", this.skope.abbr_month_names[this.date.getMonth()]);\n str = str.replace(\"%B\", this.skope.month_names[this.date.getMonth()]);\n str = str.replace(\n \"%d\",\n this.date.getDate() >= 10\n ? this.date.getDate()\n : `0${this.date.getDate()}`,\n );\n str = str.replace(\n \"%H\",\n this.date.getHours() >= 10\n ? this.date.getHours()\n : `0${this.date.getHours()}`,\n );\n str = str.replace(\n \"%M\",\n this.date.getMinutes() >= 10\n ? this.date.getMinutes()\n : `0${this.date.getMinutes()}`,\n );\n return str.replace(\n \"%S\",\n this.date.getSeconds() >= 10\n ? this.date.getSeconds()\n : `0${this.date.getSeconds()}`,\n );\n }\n}\n\nexport default Date;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment }) {\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n return (\n

    \n {comment.author} on {createdAt} (\n \n edit\n \n )\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n};\n\nexport default Comment;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport CommentModel from \"models/article/Comment\";\nimport Comment from \"components/admin/comment\";\n\nfunction CommentList({ comments }) {\n if (comments.length === 0) {\n return

    No comments

    ;\n }\n return (\n <>\n {comments.map((comment) => (\n \n ))}\n \n );\n}\n\nCommentList.propTypes = {\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { subscribe } from \"loco-js\";\n\nimport CommentList from \"components/admin/CommentList\";\n\nconst renderArticle = (article) => {\n document.getElementById(\"article_author\").textContent = article.author;\n document.getElementById(\"article_title\").textContent = article.title;\n document.getElementById(\"article_text\").textContent = article.content;\n};\n\nconst createReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updated\": {\n const reloadedArticle = await article.reload();\n renderArticle(reloadedArticle);\n }\n }\n };\n};\n\nexport default {\n render: (article) => {\n subscribe({ to: article, with: createReceivedMessage(article) });\n renderArticle(article);\n },\n\n renderComments: (comments) => {\n createRoot(document.getElementById(\"comments\")).render(\n ,\n );\n },\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport ArticleModel from \"models/Article\";\n\nfunction Article({ article }) {\n const date = new DateService(article.publishedAt).toString(\"short\");\n\n return (\n
    \n

    {article.title}

    \n

    \n \n {article.author} wrote this on {date} /{\" \"}\n \n {article.commentsCount} comment\n {article.commentsCount === 1 ? \"\" : \"s\"}\n \n \n

    \n

    {article.content}

    \n

    \n Review\n

    \n
    \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/admin/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles),\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n
    \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n};\n\nexport default ArticleList;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { helpers } from \"loco-js-core\";\n\nimport { setArticles } from \"actions\";\nimport store from \"store\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport EditView from \"views/admin/articles/Edit\";\nimport renderForm from \"views/admin/articles/Form\";\n\nimport ArticleList from \"containers/admin/ArticleList\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n EditView.render(article);\n renderForm(article);\n};\n\nconst renderComment = async () => {\n const resp = await Comment.all({ articleId: helpers.params.id });\n EditView.renderComments(resp.resources);\n};\n\nclass Articles {\n async published() {\n const resp = await Article.get(\"published\");\n store.dispatch(setArticles(resp.resources));\n createRoot(document.getElementById(\"articles\")).render(\n ,\n );\n }\n\n async edit() {\n renderArticle();\n renderComment();\n }\n}\n\nexport default Articles;\n","import { UI } from \"loco-js-ui\";\n\nexport default (article) => {\n article.setDefaultValuesForAdminReview();\n const form = new UI.Form({ id: \"edit_article_form\", for: article });\n form.render();\n};\n","import { UI } from \"loco-js-ui\";\n\nconst signedIn = () => (window.location.href = \"/admin\");\n\nexport default () => {\n const form = new UI.Form({\n id: \"sign_in_admin\",\n callbackSuccess: signedIn,\n });\n form.render();\n};\n","import { Models } from \"loco-js-model\";\n\nclass User extends Models.Base {\n static identity = \"User\";\n\n static resources = {\n url: \"/users\",\n admin: {\n url: \"/admin/users\",\n },\n };\n\n static paginate = { per: 10 };\n\n static attributes = {\n email: {\n validations: {\n presence: true,\n format: { with: /^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/i },\n },\n },\n username: {\n validations: {\n presence: true,\n format: { with: /^[a-z][a-z0-9_-]*$/i },\n },\n },\n password: {\n validations: {\n presence: { on: \"create\" },\n confirmation: true,\n },\n },\n passwordConfirmation: {\n remoteName: \"password_confirmation\",\n },\n confirmed: {},\n createdAt: {\n type: \"Date\",\n remoteName: \"created_at\",\n },\n updatedAt: {\n type: \"Date\",\n remoteName: \"updated_at\",\n },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default User;\n","export const createFinder = (resourceType) => {\n return function (state, id, opts = {}) {\n let resources = state[resourceType];\n if (opts.parentId) resources = resources[opts.parentId];\n if (resources === undefined) return [null, null];\n const resource = resources.find((a) => a.id === id);\n if (!resource) return [null, null];\n const index = resources.indexOf(resource);\n return [resource, index];\n };\n};\n","import { createFinder } from \"./index\";\n\nexport const findArticle = createFinder(\"articles\");\n\nexport const findComment = createFinder(\"comments\");\n","export const commentsForArticle = (state, articleId) => {\n return state.comments[articleId];\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment }) {\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n return (\n

    \n {comment.author} on {createdAt} wrote:\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n};\n\nexport default Comment;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport Comment from \"components/main/Comment\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentList(props) {\n const articleId = props.articleId;\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => {\n setComments(commentsForArticle(store.getState(), articleId));\n });\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = comments.map((comment) => (\n \n ));\n\n if (comments.length === 0) {\n return

    No comments.

    ;\n }\n\n return <>{list};\n}\n\nCommentList.propTypes = {\n articleId: PropTypes.number.isRequired,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentsNumber(props) {\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => {\n setComments(commentsForArticle(store.getState(), props.articleId));\n });\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return <>{`${comments.length} comment${comments.length === 1 ? \"\" : \"s\"}`};\n}\n\nCommentsNumber.propTypes = {\n articleId: PropTypes.number.isRequired,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentsNumber;\n","export const simpleFormat = (str) => {\n str = str.replace(/\\r\\n?/, \"\\n\");\n str = str.trim();\n if (str.length > 0) {\n str = str.replace(/\\n\\n+/g, \"

    \");\n str = str.replace(/\\n/g, \"
    \");\n str = \"

    \" + str + \"

    \";\n }\n return str;\n};\n","const resetNode = (node) => {\n node.classList.remove(\"notice\");\n node.classList.remove(\"alert\");\n node.classList.remove(\"warning\");\n};\n\nconst setMsg = (opts, msg, node) => {\n if (opts[msg] == null) return;\n node.classList.add(msg);\n document.querySelector(\".flash p\").textContent = opts[msg];\n};\n\nconst hideAfterTime = (time = 4000) => {\n setTimeout(() => {\n document.querySelector(\".flash\").classList.add(\"none\"); // slideUp initially\n }, time);\n};\n\nexport default (opts = {}) => {\n const { hide } = opts;\n const node = document.querySelector(\".flash\");\n resetNode(node);\n setMsg(opts, \"notice\", node);\n setMsg(opts, \"alert\", node);\n setMsg(opts, \"warning\", node);\n node.classList.remove(\"none\"); // slideDown initially\n if (hide) hideAfterTime();\n};\n","import { subscribe } from \"loco-js\";\nimport { simpleFormat } from \"helpers/text\";\nimport DateService from \"services/Date\";\nimport { UI } from \"loco-js-ui\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nconst createArticleReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updating\": {\n const txt =\n \"Author is currently editing article. Be aware of possible changes.\";\n renderFlash({ warning: txt });\n break;\n }\n case \"updated\": {\n const reloadedArticle = await article.reload();\n renderArticle(reloadedArticle, true);\n }\n }\n };\n};\n\nconst renderArticle = (article, update = false) => {\n if (update === false) {\n subscribe({ to: article, with: createArticleReceivedMessage(article) });\n }\n document.getElementById(\"title\").textContent = article.title;\n document.getElementById(\"author\").textContent = article.author;\n const dateService = new DateService(article.publishedAt);\n document.getElementById(\"pub_date\").textContent =\n dateService.toString(\"short\");\n const textEl = document.getElementById(\"text\");\n textEl.innerHTML = \"\";\n const text = simpleFormat(article.content);\n textEl.insertAdjacentHTML(\"beforeend\", text);\n};\n\nconst renderForm = (comment) => {\n const form = new UI.Form({\n for: comment,\n initObj: true,\n id: \"new_comment\",\n });\n form.render();\n};\n\nexport default {\n renderArticle,\n renderForm,\n};\n","import React, { useState } from \"react\";\n\nimport Article from \"models/Article\";\n\nimport { addArticles } from \"actions\";\nimport store from \"store\";\n\nexport default function LoadMoreLink() {\n const [page, setPage] = useState(1);\n const [noMorePosts, setNoMorePosts] = useState(false);\n\n async function handleClick(e) {\n e.preventDefault();\n const currentPage = page + 1;\n setPage(currentPage);\n let resp = null;\n try {\n resp = await Article.get(\"all\", { page: currentPage });\n } catch (e) {\n alert(`Invalid URL: ${e}`);\n return;\n }\n if (resp.resources.length > 0) {\n store.dispatch(addArticles(resp.resources));\n } else {\n setNoMorePosts(true);\n }\n }\n\n function output() {\n if (noMorePosts) return No more posts.;\n else\n return (\n \n Load more…\n \n );\n }\n\n return output();\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport ArticleModel from \"models/Article\";\n\nfunction Article({ article }) {\n const date = new DateService(article.publishedAt).toString(\"short\");\n\n return (\n
    \n

    {article.title}

    \n

    \n \n {article.author} wrote this on {date} /{\" \"}\n \n {article.commentsCount} comment\n {article.commentsCount === 1 ? \"\" : \"s\"}\n \n \n

    \n

    {article.content}

    \n

    \n Continued…\n

    \n
    \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/main/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles),\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n
    \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n};\n\nexport default ArticleList;\n","import { subscribe } from \"loco-js\";\nimport { UI } from \"loco-js-ui\";\n\nimport loco from \"initializers/loco\";\n\nimport User from \"models/User\";\nimport renderFlash from \"views/shared/Flash\";\n\nconst confirming = () => {\n document.getElementById(\"verification_info\").textContent =\n document.getElementById(\"verification_progress\").textContent;\n};\n\nconst confirmed = () => {\n window.location.href = \"/user/sessions/new?event=confirmed\";\n};\n\nconst receivedMessage = (type) => {\n switch (type) {\n case \"confirming\":\n confirming();\n break;\n case \"confirmed\":\n confirmed();\n }\n};\n\nconst created = (data) => {\n loco.getWire().token = data.access_token;\n subscribe({ to: new User({ id: data.id }), with: receivedMessage });\n document.querySelector(\"form\").style.display = \"none\";\n document.getElementById(\"sign_in_paragraph\").classList.remove(\"none\");\n document.getElementById(\"verification_info\").classList.remove(\"none\");\n renderFlash({ notice: data.notice });\n};\n\nexport default () => {\n const form = new UI.Form({\n for: new User(),\n callbackSuccess: created,\n });\n form.render();\n};\n","import Base from \"./Base\";\nimport Articles from \"./main/Articles\";\nimport Pages from \"./main/Pages\";\nimport Users from \"./main/Users\";\n\nclass Main extends Base {\n initialize() {\n this.setScope(\"main\");\n }\n}\n\nMain.Articles = Articles;\nMain.Pages = Pages;\nMain.Users = Users;\n\nexport default Main;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { helpers } from \"loco-js-core\";\n\nimport { setArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport CommentList from \"containers/main/articles/CommentList\";\nimport CommentsNumber from \"containers/main/articles/CommentsNumber\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport ShowView from \"views/main/articles/Show\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n store.dispatch(setArticles([article]));\n ShowView.renderArticle(article);\n};\n\nconst renderComments = async () => {\n const res = await Comment.get(\"count\", { articleId: helpers.params.id });\n const comments = await Comment.all({\n articleId: helpers.params.id,\n total: res.total,\n });\n store.dispatch(setComments(comments, helpers.params.id));\n createRoot(document.getElementById(\"comments\")).render(\n ,\n );\n createRoot(document.getElementById(\"comments_count\")).render(\n ,\n );\n};\n\nclass Articles {\n async show() {\n const newComment = new Comment({ articleId: helpers.params.id });\n ShowView.renderForm(newComment);\n renderArticle();\n renderComments();\n }\n}\n\nexport default Articles;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { setArticles } from \"actions\";\nimport store from \"store\";\n\nimport Article from \"models/Article\";\nimport LoadMoreLink from \"containers/main/pages/LoadMoreLink\";\nimport ArticleList from \"containers/main/pages/ArticleList\";\n\nclass Pages {\n async index() {\n createRoot(document.getElementById(\"load_more_wrapper\")).render(\n ,\n );\n const resp = await Article.get(\"all\", { page: 1 });\n store.dispatch(setArticles(resp.resources));\n createRoot(document.getElementById(\"articles\")).render(\n ,\n );\n }\n}\n\nexport default Pages;\n","import renderUserRegistrationForm from \"views/main/users/UserRegistrationForm\";\n\nclass Users {\n new() {\n renderUserRegistrationForm();\n }\n}\n\nexport default Users;\n","import { Models } from \"loco-js-model\";\n\nclass Member extends Models.Base {\n static identity = \"Room.Member\";\n\n static resources = {\n url: \"/user/rooms/:roomId/members\",\n paginate: { per: 100 },\n };\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Member;\n","import { Models } from \"loco-js-model\";\n\nclass Room extends Models.Base {\n static identity = \"Room\";\n\n constructor(data) {\n super(data);\n }\n}\n\nexport default Room;\n","import { subscribe } from \"loco-js\";\n\nimport Room from \"models/Room\";\nimport CurrentUser from \"services/CurrentUser\";\n\nlet rooms = [];\n\nconst roomTmpl = ({ id, name, members_count, joined }) => {\n return `\n \n ${name}\n ${members_count}\n \n \n ${joined ? \"Leave\" : \"Join\"}\n \n |\n \n Destroy\n \n \n \n `;\n};\n\nconst renderRooms = () => {\n rooms.forEach((r) => renderRoom(r));\n};\n\nconst renderRoom = (room) => {\n const tbody = document.querySelector(\"#rooms_list tbody\");\n tbody.insertAdjacentHTML(\"beforeend\", roomTmpl(room));\n};\n\nconst reRenderRoom = (roomId) => {\n const room = rooms.find((r) => r.id === roomId);\n const node = document.getElementById(`room_${roomId}`);\n node.innerHTML = roomTmpl(room);\n};\n\nconst membersChanged = (roomId, change, memberId) => {\n const room = rooms.find((r) => r.id === roomId);\n room.members_count += change;\n if (memberId === CurrentUser().id) {\n room.joined = change > 0;\n }\n reRenderRoom(roomId);\n};\n\nconst receivedMessage = (type, data) => {\n switch (type) {\n case \"Room member_joined\": {\n membersChanged(data.room_id, 1, data.member.id);\n break;\n }\n case \"Room member_left\": {\n membersChanged(data.room_id, -1, data.member.id);\n break;\n }\n case \"Room created\": {\n data.room.members_count = 0;\n rooms.push(data.room);\n renderRoom(data.room);\n break;\n }\n case \"Room destroyed\": {\n const roomNode = document.getElementById(`room_${data.room_id}`);\n roomNode.parentNode.removeChild(roomNode);\n }\n }\n};\n\nexport default function () {\n let dataEl = document.getElementById(\"rooms-data\");\n rooms = JSON.parse(dataEl.textContent);\n renderRooms();\n\n return subscribe({ to: Room, with: receivedMessage });\n}\n","const CurrentUser = () => {\n const el = document.getElementById(\"current-user-data\");\n const user = JSON.parse(el.textContent);\n return user;\n};\n\nexport default CurrentUser;\n","import { subscribe } from \"loco-js\";\n\nimport loco from \"initializers/loco\";\nimport Room from \"models/Room\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nconst memberJoined = (member) => {\n if (document.querySelector(`#members li#user_${member.id}`)) {\n return;\n }\n const li = `
  • ${member.username}
  • `;\n document.getElementById(\"members\").insertAdjacentHTML(\"beforeend\", li);\n};\n\nconst memberLeft = (member) => {\n const node = document.querySelector(`#members li#user_${member.id}`);\n node.parentNode.removeChild(node);\n};\n\nconst createReceivedMessage = (roomId) => {\n return function (type, data) {\n switch (type) {\n case \"Room member_joined\":\n if (data.room_id !== roomId) return;\n memberJoined(data.member);\n break;\n case \"Room member_left\":\n if (data.room_id !== roomId) return;\n memberLeft(data.member);\n }\n };\n};\n\nconst handleSendingMessage = (roomId) => {\n document\n .querySelector(\"[data-behavior~=room-speaker]\")\n .addEventListener(\"keypress\", (event) => {\n if (event.keyCode !== 13) return;\n event.preventDefault();\n loco.emit({\n type: \"NEW_MESSAGE\",\n txt: event.target.value,\n room_id: roomId,\n message_type: document.querySelector(\"[name='message_type']:checked\")\n .value,\n });\n event.target.value = \"\";\n });\n};\n\nconst heartbeat = (roomId) => {\n const intervalId = setInterval(() => {\n loco.emit({ type: \"HEARTBEAT\", room_id: roomId });\n console.log(\"heartbeat\", roomId); // TODO: remove\n }, 3000);\n return () => clearInterval(intervalId);\n};\n\nexport default {\n render: (roomId) => {\n handleSendingMessage(roomId);\n const unsubscribeHeartbeat = heartbeat(roomId);\n const unsubscribeMessages = subscribe({\n to: Room,\n with: createReceivedMessage(roomId),\n });\n return () => {\n unsubscribeHeartbeat();\n unsubscribeMessages();\n };\n },\n\n renderMembers: (members) => {\n for (const member of members) {\n memberJoined(member);\n }\n },\n\n receivedMessage: (message, author) => {\n const renderedMessage = `

    ${author}: ${message}

    `;\n document\n .getElementById(\"messages\")\n .insertAdjacentHTML(\"beforeend\", renderedMessage);\n },\n\n disconnected: () => {\n const msg =\n \"You have been disconnected from the server. You might have lost some ephemeral messages.\";\n renderFlash({ alert: msg, hide: false });\n },\n};\n","import { helpers } from \"loco-js-core\";\n\nimport Member from \"models/room/Member\";\n\nimport List from \"views/user/rooms/List\";\nimport Show from \"views/user/rooms/Show\";\n\nclass Rooms {\n constructor() {\n this.view = null;\n this.unsubscribe = null;\n }\n\n deinitialize() {\n if (this.unsubscribe !== null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n index() {\n this.unsubscribe = List();\n }\n\n async show() {\n this.view = Show;\n this.unsubscribe = Show.render(helpers.params.id);\n const resp = await Member.all({ roomId: helpers.params.id });\n Show.renderMembers(resp.resources);\n }\n}\n\nexport default Rooms;\n","import { subscribe } from \"loco-js\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nconst updateEditLink = (id) => {\n const href = document.getElementById(\"edit_link\").getAttribute(\"href\");\n document\n .getElementById(\"edit_link\")\n .setAttribute(\"href\", href.replace(\"/0/\", `/${id}/`));\n};\n\nconst handlePublishing = (article) => {\n document\n .getElementById(\"publish_article\")\n .addEventListener(\"click\", async (e) => {\n e.preventDefault();\n e.target.textContent = \"Publishing...\";\n try {\n await article.put(\"publish\");\n document.getElementById(\"publish_article\").outerHTML =\n \"Published!\";\n } catch {\n document.getElementById(\"publish_article\").textContent = \"Publish\";\n renderFlash({ alert: \"Connection error!\" });\n }\n });\n};\n\nconst renderArticle = (article) => {\n document.getElementById(\"article_title\").textContent = article.title;\n document.getElementById(\"article_text\").textContent = article.content;\n const node = document.getElementById(\"publish_article\");\n if (node && article.publishedAt != null) node.style.display = \"none\";\n else if (node) node.style.display = \"\";\n};\n\nconst createArticleReceivedMessage = (article) => {\n return async function (type) {\n switch (type) {\n case \"updated\":\n await article.reload();\n article.applyChanges();\n renderArticle(article);\n break;\n case \"destroyed\":\n window.location.href = \"/user/articles?message=deleted\";\n }\n };\n};\n\nexport default (article) => {\n if (article === null) return;\n subscribe({ to: article, with: createArticleReceivedMessage(article) });\n handlePublishing(article);\n updateEditLink(article.id);\n renderArticle(article);\n};\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport DateService from \"services/Date\";\n\nimport { updateComment } from \"actions\";\nimport store from \"store\";\n\nimport CommentModel from \"models/article/Comment\";\n\nfunction Comment({ comment, isAdmin = false }) {\n const [approving, setApproving] = useState(false);\n\n const createdAt = new DateService(comment.createdAt).strftime(\"%d %b %y\");\n\n const handleApproving = async (e) => {\n e.preventDefault();\n setApproving(true);\n comment.approved = true;\n const res = await comment.updateAttribute(\"approved\");\n if (!res.ok) return;\n store.dispatch(\n updateComment(\n new CommentModel({ ...comment, approved: true }),\n comment.articleId,\n ),\n );\n };\n\n const adminSection = () => {\n let approveLink;\n\n if (comment.approved) {\n approveLink = (\n <>\n approved |{\" \"}\n \n );\n } else if (approving) {\n approveLink = (\n <>\n approving... |{\" \"}\n \n );\n } else {\n approveLink = (\n <>\n \n approve\n {\" \"}\n |{\" \"}\n \n );\n }\n\n return (\n <>\n {\" \"}\n ({approveLink}\n \n edit\n {\" \"}\n |{\" \"}\n \n delete\n \n )\n \n );\n };\n\n return (\n

    \n {comment.author} on {createdAt}\n {isAdmin ? adminSection() : \"\"}\n
    \n {comment.text}\n

    \n );\n}\n\nComment.propTypes = {\n comment: PropTypes.instanceOf(CommentModel).isRequired,\n isAdmin: PropTypes.bool,\n};\n\nexport default Comment;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport { commentsForArticle } from \"selectors/comments\";\nimport Comment from \"containers/user/Comment\";\nimport CommentModel from \"models/article/Comment\";\n\nfunction CommentList(props) {\n const articleId = props.articleId;\n const isAdmin = props.isAdmin || false;\n const [comments, setComments] = useState(props.comments);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setComments(commentsForArticle(store.getState(), articleId)),\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n if (comments.length === 0) return

    No comments.

    ;\n\n const list = comments.map((comment) => (\n \n ));\n\n return <>{list};\n}\n\nCommentList.propTypes = {\n articleId: PropTypes.number.isRequired,\n isAdmin: PropTypes.bool,\n comments: PropTypes.arrayOf(PropTypes.instanceOf(CommentModel)).isRequired,\n};\n\nexport default CommentList;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { subscribe } from \"loco-js\";\nimport { UI } from \"loco-js-ui\";\n\nimport { addArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport Comment from \"models/article/Comment\";\n\nimport renderFlash from \"views/shared/Flash\";\n\nimport CommentList from \"containers/user/CommentList\";\n\nconst displayChanges = (article) => {\n for (const [attrib] of Object.entries(article.changes())) {\n const sel = document.querySelector(\n `a.apply_changes[data-for=${article.getAttrRemoteName(attrib)}]`,\n );\n if (!sel) continue;\n sel.classList.remove(\"none\");\n }\n};\n\nconst createReceivedMessage = (article) => {\n return async function (type, data) {\n switch (type) {\n case \"updating\":\n if (\n document.querySelector(\"h1\").getAttribute(\"data-mark\") !== data.mark\n ) {\n renderFlash({\n warning: \"Uuups someone else started editing this article.\",\n });\n }\n break;\n case \"updated\":\n await article.reload();\n displayChanges(article);\n break;\n case \"destroyed\":\n window.location.href = \"/user/articles?message=deleted\";\n }\n };\n};\n\nconst handleApplyingChanges = (form) => {\n for (const sel of Array.from(document.querySelectorAll(\"a.apply_changes\"))) {\n sel.addEventListener(\"click\", (e) => {\n e.preventDefault();\n const article = form.getObj();\n const attrName = article.getAttrName(e.target.getAttribute(\"data-for\"));\n article[attrName] = article.changes()[attrName].is;\n form.fill(attrName);\n e.target.classList.add(\"none\");\n });\n }\n};\n\nexport default {\n render: (article) => {\n store.dispatch(addArticles([article]));\n const unsubscribe = subscribe({\n to: article,\n with: createReceivedMessage(article),\n });\n const form = new UI.Form({ for: article });\n form.render();\n handleApplyingChanges(form);\n return unsubscribe;\n },\n\n renderComments: async (articleId) => {\n const resp = await Comment.all({ articleId: articleId });\n store.dispatch(setComments(resp.resources, articleId));\n createRoot(document.getElementById(\"comments\")).render(\n ,\n );\n },\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ArticleModel from \"models/Article\";\n\nimport { removeArticle } from \"actions\";\nimport store from \"store\";\n\nfunction Article({ article, onArticleDestroyed }) {\n const handleDeletingArticle = async (e) => {\n e.preventDefault();\n if (!confirm(\"Are you sure?\")) return;\n const data = await article.delete(null);\n if (data.success) {\n store.dispatch(removeArticle(data.id));\n }\n onArticleDestroyed(data);\n };\n\n return (\n \n {article.title}\n {article.content}\n {article.commentsCount}\n {article.publishedAt ? \"yes\" : \"no\"}\n \n Show |\n Edit |\n \n Delete\n \n \n \n );\n}\n\nArticle.propTypes = {\n article: PropTypes.instanceOf(ArticleModel).isRequired,\n onArticleDestroyed: PropTypes.func.isRequired,\n};\n\nexport default Article;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport Article from \"components/user/Article\";\nimport ArticleModel from \"models/Article\";\n\nfunction ArticleList(props) {\n const [articles, setArticles] = useState(props.articles);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() =>\n setArticles(store.getState().articles),\n );\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = articles.map((article) => (\n \n ));\n\n return <>{list};\n}\n\nArticleList.propTypes = {\n articles: PropTypes.arrayOf(PropTypes.instanceOf(ArticleModel)).isRequired,\n onArticleDestroyed: PropTypes.func.isRequired,\n};\n\nexport default ArticleList;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { helpers } from \"loco-js-core\";\n\nimport { setArticles, setComments } from \"actions\";\nimport store from \"store\";\n\nimport renderFlash from \"views/shared/Flash\";\nimport ShowView from \"views/user/articles/Show\";\nimport FormView from \"views/user/articles/Form\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\n\nimport ArticleList from \"containers/user/ArticleList\";\nimport CommentList from \"containers/user/CommentList\";\n\nconst renderArticle = async () => {\n const article = await Article.find(helpers.params.id);\n store.dispatch(setArticles([article]));\n ShowView(article);\n};\n\nconst renderComments = async () => {\n const resp = await Comment.all({ articleId: helpers.params.id });\n store.dispatch(setComments(resp.resources, helpers.params.id));\n createRoot(document.getElementById(\"comments\")).render(\n ,\n );\n};\n\nconst onArticleDestroyed = (res) => {\n if (res.success) renderFlash({ notice: res.notice });\n else renderFlash({ alert: res.alert });\n};\n\nclass Articles {\n initialize() {\n this.unsubscribe = null;\n }\n\n deinitialize() {\n if (this.unsubscribe !== null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n async index() {\n if (helpers.params.message === \"deleted\") {\n renderFlash({ alert: \"Article has been deleted.\" });\n }\n const resp = await Article.get(\"all\");\n store.dispatch(setArticles(resp.resources));\n createRoot(document.getElementById(\"article_list\")).render(\n ,\n );\n }\n\n show() {\n renderArticle();\n renderComments();\n }\n\n new() {\n this.unsubscribe = FormView.render(new Article());\n }\n\n async edit() {\n FormView.renderComments(helpers.params.id);\n const article = await Article.find(helpers.params.id);\n this.unsubscribe = FormView.render(article);\n }\n}\n\nexport default Articles;\n","import Base from \"./Base\";\nimport Articles from \"./user/Articles\";\nimport Rooms from \"./user/Rooms\";\n\nclass User extends Base {\n initialize() {\n this.setScope(null);\n }\n}\n\nUser.Articles = Articles;\nUser.Rooms = Rooms;\n\nexport default User;\n","import getEnv from \"initializers/loco-core\";\n\nimport {\n addArticles,\n prependArticles,\n updateArticle,\n addComments,\n prependUsers,\n removeComment,\n updateComment,\n} from \"actions\";\nimport store from \"store\";\nimport { findArticle, findComment } from \"selectors/articles\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport User from \"models/User\";\n\nimport AdminController from \"controllers/Admin\";\nimport MainController from \"controllers/Main\";\nimport RoomsController from \"controllers/user/Rooms\";\nimport UserController from \"controllers/User\";\n\nconst userNamespace = () => {\n return getEnv().namespaceController.constructor === UserController;\n};\n\nconst adminNamespace = () => {\n return getEnv().namespaceController.constructor === AdminController;\n};\n\nconst mainNamespace = () => {\n return getEnv().namespaceController.constructor === MainController;\n};\n\nconst inChatRoom = () => {\n return (\n userNamespace() &&\n getEnv().controller !== null &&\n getEnv().controller.constructor === RoomsController &&\n getEnv().action === \"show\"\n );\n};\n\nconst articleCreated = async ({ id }) => {\n if (!userNamespace()) return;\n const article = await Article.find({ id, abbr: true });\n store.dispatch(addArticles([article]));\n};\n\nconst articlePublished = async ({ id }) => {\n if (adminNamespace()) {\n const article = await Article.find({ id, abbr: true, resource: \"admin\" });\n store.dispatch(prependArticles([article]));\n } else {\n const article = await Article.find({ id, abbr: true });\n store.dispatch(addArticles([article]));\n }\n};\n\nconst articleUpdated = async ({ id }) => {\n const findParams = { id: id, abbr: true };\n if (adminNamespace()) {\n findParams[\"resource\"] = \"admin\";\n }\n let [article, index] = findArticle(store.getState(), id);\n if (!article) return;\n article = await Article.find(findParams);\n store.dispatch(updateArticle(article, index));\n};\n\nconst commentsChanged = ({ article_id: articleId }, diff) => {\n const [article, index] = findArticle(store.getState(), articleId);\n if (!article) return;\n const updatedArticle = new Article({\n ...article,\n commentsCount: article.commentsCount + diff,\n });\n store.dispatch(updateArticle(updatedArticle, index));\n};\n\nconst commentCreated = async ({ article_id: articleId, id }) => {\n const findParams = { articleId, id };\n if (mainNamespace()) {\n findParams[\"resource\"] = \"main\";\n }\n const [article] = findArticle(store.getState(), articleId);\n if (!article) return;\n const comment = await Comment.find(findParams);\n if (comment === null) return;\n store.dispatch(addComments([comment], articleId));\n commentsChanged({ article_id: articleId }, 1);\n};\n\nconst commentDestroyed = ({ article_id: articleId, id }) => {\n store.dispatch(removeComment(id, articleId));\n};\n\nconst commentUpdated = async ({ article_id: articleId, id }) => {\n const [comment, index] = findComment(store.getState(), id, {\n parentId: articleId,\n });\n if (!comment) return;\n const reloadedComment = await comment.reload();\n store.dispatch(updateComment(reloadedComment, articleId, index));\n};\n\nconst ping = () => {\n if (!userNamespace()) return;\n alert(\"Ping!\");\n};\n\nconst getCallbackForNewMessage = () => {\n if (!inChatRoom()) return () => {};\n return getEnv().controller.view.receivedMessage;\n};\n\nconst wsDisconnected = () => {\n if (inChatRoom()) {\n getEnv().controller.view.disconnected();\n }\n};\n\nexport default async (data) => {\n if (data.loco !== undefined) {\n switch (data.loco) {\n case \"disconnected\":\n wsDisconnected();\n break;\n }\n }\n switch (data.type) {\n case \"PING\":\n ping();\n break;\n case \"NEW_MESSAGE\":\n getCallbackForNewMessage()(data.message, data.author);\n break;\n case \"Article created\":\n articleCreated(data.payload);\n break;\n case \"Article published\":\n articlePublished(data.payload);\n break;\n case \"Article updated\":\n articleUpdated(data.payload);\n break;\n case \"Article.Comment created\":\n commentCreated(data.payload);\n break;\n case \"Article.Comment destroyed\":\n commentsChanged(data.payload, -1);\n commentDestroyed(data.payload);\n break;\n case \"Article.Comment updated\":\n commentUpdated(data.payload);\n break;\n case \"USER_CONFIRMED\":\n window.location.href = \"/user/sessions/new?event=confirmed\";\n break;\n case \"User created\": {\n const user = await User.find(data.payload.id);\n store.dispatch(prependUsers([user]));\n break;\n }\n }\n};\n","import { init, connectWithModel } from \"loco-js\";\nimport { connector } from \"loco-js-model\";\nimport { createConsumer } from \"@rails/actioncable\";\n\nimport NotificationCenter from \"services/NotificationCenter\";\n\nimport Article from \"models/Article\";\nimport Comment from \"models/article/Comment\";\nimport Member from \"models/room/Member\";\nimport Room from \"models/Room\";\nimport User from \"models/User\";\n\nconnectWithModel(connector);\n\nArticle.Comment = Comment;\nRoom.Member = Member;\n\nconst loco = init({\n cable: createConsumer(),\n models: {\n Article,\n Room,\n User,\n },\n notificationCenter: NotificationCenter,\n notifications: {\n log: true,\n size: 10,\n },\n postInit: () => {\n if (\n document.querySelector(\"body\").getAttribute(\"data-rails-env\") !== \"test\"\n )\n return;\n loco.getWire().setPollingTime(1000);\n },\n});\n\nexport default loco;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport loco from \"initializers/loco\";\nimport UserModel from \"models/User\";\n\nconst User = ({ user }) => {\n const ping = (e, userId) => {\n e.preventDefault();\n loco.emit({ type: \"PING\", user_id: userId });\n };\n\n return (\n \n {user.email}\n {user.username}\n {user.confirmed ? \"Yes\" : \"No\"}\n \n Show |{\" \"}\n Edit |{\" \"}\n \n Delete\n {\" \"}\n |{\" \"}\n ping(e, user.id)}>\n Ping\n \n \n \n );\n};\n\nUser.propTypes = {\n user: PropTypes.instanceOf(UserModel).isRequired,\n};\n\nexport default User;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport store from \"store\";\nimport User from \"components/admin/User\";\nimport UserModel from \"models/User\";\n\nfunction UserList(props) {\n const [users, setUsers] = useState(props.users);\n\n useEffect(() => {\n const unsubscribe = store.subscribe(() => setUsers(store.getState().users));\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n const list = users.map((user) => (\n \n ));\n\n return <>{list};\n}\n\nUserList.propTypes = {\n users: PropTypes.arrayOf(PropTypes.instanceOf(UserModel)).isRequired,\n};\n\nexport default UserList;\n","import Base from \"./Base\";\nimport Articles from \"./admin/Articles\";\nimport Comments from \"./admin/Comments\";\nimport Sessions from \"./admin/Sessions\";\nimport Users from \"./admin/Users\";\n\nclass Admin extends Base {\n initialize() {\n this.setScope(\"admin\");\n }\n}\n\nAdmin.Articles = Articles;\nAdmin.Comments = Comments;\nAdmin.Sessions = Sessions;\nAdmin.Users = Users;\n\nexport default Admin;\n","import { helpers } from \"loco-js-core\";\n\nimport renderForm from \"views/admin/comments/Form\";\n\nclass Comments {\n edit() {\n renderForm({ commentId: helpers.params.id });\n }\n}\n\nexport default Comments;\n","import { UI } from \"loco-js-ui\";\n\nimport CommentModel from \"models/article/Comment\";\n\nexport default (opts = {}) => {\n const form = new UI.Form({\n for: new CommentModel({ id: opts.commentId, resource: \"admin\" }),\n id: `edit_comment_${opts.commentId}`,\n initObj: true,\n });\n form.render();\n\n // only for testing purpose\n window.test = { commentFormObj: form.getObj() };\n};\n","import renderForm from \"views/admin/sessions/Form\";\n\nclass Sessions {\n new() {\n renderForm();\n }\n}\n\nexport default Sessions;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { helpers } from \"loco-js-core\";\n\nimport { setUsers } from \"actions\";\nimport store from \"store\";\n\nimport User from \"models/User\";\nimport UserList from \"containers/admin/UserList\";\nimport renderUser from \"views/admin/users/Show\";\nimport renderForm from \"views/admin/users/Form\";\n\nclass Users {\n async index() {\n const resp = await User.get(\"all\");\n store.dispatch(setUsers(resp.resources));\n createRoot(document.querySelector(\"table tbody\")).render(\n ,\n );\n }\n\n async show() {\n const user = await User.find(helpers.params.id);\n renderUser(user);\n }\n\n edit() {\n renderForm(new User({ id: helpers.params.id }));\n }\n}\n\nexport default Users;\n","const updateEditLink = (user) => {\n const editLink = document.getElementById(\"edit_link\");\n const href = editLink.getAttribute(\"href\");\n editLink.setAttribute(\"href\", href.replace(\"/0/\", `/${user.id}/`));\n};\n\nexport default (user) => {\n document.getElementById(\"user_email\").textContent = user.email;\n document.getElementById(\"user_username\").textContent = user.username;\n document.getElementById(\"user_confirmed\").textContent = user.confirmed\n ? \"Yes\"\n : \"No\";\n updateEditLink(user);\n};\n","import { UI } from \"loco-js-ui\";\n\nexport default (user) => {\n const form = new UI.Form({\n for: user,\n initObj: true,\n id: \"admin_user_form\",\n });\n form.render();\n};\n","import { init } from \"loco-js-core\";\n\nimport Admin from \"controllers/Admin\";\nimport Main from \"controllers/Main\";\nimport User from \"controllers/User\";\n\nconst Controllers = {\n Admin,\n Main,\n User,\n};\n\nlet env = null;\n\ndocument.addEventListener(\"turbo:load\", () => {\n env = init(Controllers);\n});\n\n[\"turbo:click\", \"turbo:submit-start\"].forEach((event) => {\n document.addEventListener(event, () => {\n if (env !== null && env.controller.cleanup != null) {\n env.controller.cleanup();\n env.controller.cleanup = null;\n }\n });\n});\n\nconst getEnv = () => env;\n\nexport default getEnv;\n","import { Config, I18n } from \"loco-js-model\";\nimport { connect } from \"loco-js-ui\";\nimport loco from \"./loco\";\n\nconnect({\n getLocale: () => Config.locale,\n loco,\n I18n,\n});\n","import { Config, I18n, Validators } from \"loco-js-model\";\n\nValidators.Vulgarity = class extends Validators.Base {\n static identity = \"Vulgarity\";\n\n constructor() {\n super();\n }\n\n validate() {\n if (this.val == null) return;\n switch (typeof this.val) {\n case \"string\": {\n const vulgarWord = this._getVulgarWord();\n const match = new RegExp(`${vulgarWord}`, [\"i\"]).exec(this.val);\n if (match) this._addErrorMessage();\n else return;\n break;\n }\n default:\n throw new TypeError(\n `Vulgarity validator is applicable only for strings and ${this.attr} isn't.`,\n );\n }\n }\n\n _addErrorMessage() {\n const message = I18n[Config.locale].errors.messages.vulgarity;\n this.obj.addErrorMessage(message, { for: this.attr });\n }\n\n _getVulgarWord() {\n switch (Config.locale) {\n case \"pl\":\n return \"kurwa\";\n case \"en\":\n return \"fuck\";\n }\n }\n};\n","import { I18n } from \"loco-js-model\";\n\nconst lastChar = (s) => s[s.length - 1];\n\nI18n.pl = {\n variants: {\n few(i) {\n const num = parseInt(lastChar(String(i)));\n [2, 3, 4].indexOf(num) !== -1 &&\n !(String(i).length === 2 && String(i)[0] === \"1\");\n },\n },\n models: {},\n attributes: {},\n ui: {\n form: {\n sending: \"Wysyłam...\",\n success: \"Sukces\",\n errors: {\n connection: \"Błąd z połączeniem\",\n invalid_data: \"Nieprawidłowe dane\",\n },\n },\n },\n date: {\n formats: {\n default: \"%d-%m-%Y\",\n short: \"%d %b\",\n long: \"%B %d, %Y\",\n },\n day_names: [\n \"niedziela\",\n \"poniedziałek\",\n \"wtorek\",\n \"środa\",\n \"czwartek\",\n \"piątek\",\n \"sobota\",\n ],\n abbr_day_names: [\"nie\", \"pon\", \"wto\", \"śro\", \"czw\", \"pią\", \"sob\"],\n month_names: [\n \"styczeń\",\n \"luty\",\n \"marzec\",\n \"kwiecień\",\n \"maj\",\n \"czerwiec\",\n \"lipiec\",\n \"sierpień\",\n \"wrzesień\",\n \"październik\",\n \"listopad\",\n \"grudzień\",\n ],\n abbr_month_names: [\n \"sty\",\n \"lut\",\n \"mar\",\n \"kwi\",\n \"maj\",\n \"cze\",\n \"lip\",\n \"sie\",\n \"wrz\",\n \"paź\",\n \"lis\",\n \"gru\",\n ],\n },\n errors: {\n messages: {\n accepted: \"musi zostać zaakceptowane\",\n blank: \"nie może być puste\",\n confirmation: \"nie zgadza się z polem %{attribute}\",\n empty: \"nie może być puste\",\n equal_to: \"musi być równe %{count}\",\n even: \"musi być parzyste\",\n exclusion: \"jest zarezerwowane\",\n greater_than: \"musi być większe od %{count}\",\n greater_than_or_equal_to: \"musi być większe lub równe %{count}\",\n inclusion: \"nie znajduje się na liście dopuszczalnych wartości\",\n invalid: \"jest nieprawidłowe\",\n less_than: \"musi być mniejsze od %{count}\",\n less_than_or_equal_to: \"musi być mniejsze lub równe %{count}\",\n not_a_number: \"nie jest liczbą\",\n not_an_integer: \"musi być liczbą całkowitą\",\n odd: \"musi być nieparzyste\",\n present: \"musi być puste\",\n too_long: {\n few: \"jest za długie (maksymalnie %{count} znaki)\",\n many: \"jest za długie (maksymalnie %{count} znaków)\",\n one: \"jest za długie (maksymalnie jeden znak)\",\n other: \"jest za długie (maksymalnie %{count} znaków)\",\n },\n too_short: {\n few: \"jest za krótkie (przynajmniej %{count} znaki)\",\n many: \"jest za krótkie (przynajmniej %{count} znaków)\",\n one: \"jest za krótkie (przynajmniej jeden znak)\",\n other: \"jest za krótkie (przynajmniej %{count} znaków)\",\n },\n wrong_length: {\n few: \"ma nieprawidłową długość (powinna wynosić %{count} znaki)\",\n many: \"ma nieprawidłową długość (powinna wynosić %{count} znaków)\",\n one: \"ma nieprawidłową długość (powinna wynosić jeden znak)\",\n other: \"ma nieprawidłową długość (powinna wynosić %{count} znaków)\",\n },\n other_than: \"musi być inna niż %{count}\",\n },\n },\n};\n","import { I18n } from \"loco-js-model\";\n\nI18n.pl.models.User = \"Użytkownik\";\nI18n.pl.attributes.User = {\n password: \"Hasło\",\n passwordConfirmation: \"Powtórz hasło\",\n};\n","import { I18n } from \"loco-js-model\";\n\nI18n.en.errors.messages.vulgarity = \"contains strong language.\";\n","import { I18n } from \"loco-js-model\";\n\nI18n.pl.errors.messages.vulgarity = \"zawiera mocny język.\";\n","import { I18n } from \"loco-js-model\";\n\nI18n.en.date = {\n formats: {\n default: \"%Y-%m-%d\",\n short: \"%b %d\",\n long: \"%B %d, %Y\",\n },\n day_names: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n month_names: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n abbr_month_names: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n};\n","import \"scaffold.css\";\nimport \"global.css\";\n\nimport \"initializers/turbo-rails\";\nimport \"initializers/loco-core\";\nimport loco from \"initializers/loco\";\nimport \"initializers/loco-ui\";\nimport \"validators/Vulgarity\";\nimport \"locales\";\n\n// for testing purposes only\nwindow.test = {\n getLine: () => loco.getLine(),\n getWire: () => loco.getWire(),\n};\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Loco\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Loco\"] = factory();\n\telse\n\t\troot[\"Loco\"] = factory();\n})(window, function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","class ObjectUtils {\n static toURIParams(obj) {\n let str = \"\";\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const val = obj[key];\n if (str !== \"\") {\n str += \"&\";\n }\n str += `${key}=${encodeURIComponent(val)}`;\n }\n }\n return str;\n }\n}\n\nexport default ObjectUtils;\n","let IdentityMap = null;\nlet Models = null;\n\nconst setIdentityMap = (IM) => {\n IdentityMap = IM;\n IdentityMap.clear();\n};\n\nconst setModels = (Ms) => (Models = Ms);\n\nexport { IdentityMap, Models, setIdentityMap, setModels };\n","const keys = [];\n\nexport default (key) => {\n if (keys.includes(key)) return true;\n keys.unshift(key);\n if (keys.length > 100) keys.pop();\n return false;\n};\n","import { IdentityMap } from \"../deps\";\nimport receivedAlready from \"../line/idempotencyKeys\";\nimport getModelForRemoteName from \"../getModelForRemoteName\";\n\nconst emitMessageToMembers = (\n id,\n name,\n payload,\n model,\n identity,\n obj = null,\n) => {\n if (obj === null) obj = new model({ id: id });\n for (const connObj of IdentityMap.findConnected(identity, id)) {\n connObj(name, payload);\n }\n};\n\nconst emitMessageToCollection = (name, payload, identity) => {\n for (const obj of IdentityMap.imap[identity][\"collection\"].filter(\n (element) => element !== null,\n )) {\n obj(`${identity} ${name}`, payload);\n }\n};\n\nconst sendToNotificationCenter = (\n notificationCenter,\n payload,\n emit,\n type = null,\n) => {\n if (notificationCenter == null) return;\n if (type == null) {\n notificationCenter(payload, emit);\n } else {\n notificationCenter({ type, payload }, emit);\n }\n};\n\nconst supportLocoJsModel = (\n model,\n id,\n name,\n payload,\n notificationCenter,\n emit,\n) => {\n const identity = model.getIdentity();\n sendToNotificationCenter(\n notificationCenter,\n payload,\n emit,\n `${identity} ${name}`,\n );\n if (IdentityMap.imap[identity] === undefined) return false;\n if (IdentityMap.imap[identity][id] !== undefined)\n emitMessageToMembers(id, name, payload, model, identity);\n if (IdentityMap.imap[identity][\"collection\"] === undefined) return false;\n if (IdentityMap.imap[identity][\"collection\"].length === 0) return false;\n emitMessageToCollection(name, payload, identity);\n};\n\nexport default (notification, opts = {}) => {\n if (opts.log) console.log(notification);\n const [className, id, name, payload] = notification;\n if (receivedAlready(payload.loco.idempotency_key)) return false;\n delete payload.loco;\n if (className == null && name == null) {\n sendToNotificationCenter(opts.notificationCenter, payload, opts.emit);\n return true;\n }\n const model = getModelForRemoteName(className);\n if (model === undefined) {\n sendToNotificationCenter(\n opts.notificationCenter,\n payload,\n opts.emit,\n `${className} ${name}`,\n );\n return false;\n }\n supportLocoJsModel(\n model,\n id,\n name,\n payload,\n opts.notificationCenter,\n opts.emit,\n );\n return true;\n};\n","import { Models } from \"./deps\";\n\nconst getModels = () => {\n if (!Models || typeof Models !== \"object\") return [];\n\n const models = [];\n const regExp = /^[A-Z]/;\n for (const func of Object.keys(Models)) {\n if (!regExp.test(func) || func === \"Base\") continue;\n models.push(func);\n\n const container = Models[func];\n for (const innerFunc of Object.keys(container)) {\n if (regExp.test(innerFunc)) models.push(`${func}.${innerFunc}`);\n }\n }\n return models;\n};\n\nconst getModelForRemoteName = (remoteName) => {\n for (const model of getModels()) {\n const parts = model.split(\".\");\n if (parts.length === 1) {\n const M = Models[parts[0]];\n if (M?.getRemoteName?.() === remoteName) return M;\n } else if (parts.length === 2) {\n const M = Models[parts[0]]?.[parts[1]];\n if (M?.getRemoteName?.() === remoteName) return M;\n }\n }\n return undefined;\n};\n\nexport default getModelForRemoteName;\n","import ObjectUtils from \"./utils/object\";\nimport openRequest from \"./wire/openRequest\";\nimport processNotification from \"./wire/processNotification\";\n\nclass Wire {\n constructor(opts, notificationCenter, reqOpts) {\n this.pollingTime = opts.pollingTime ?? 3000;\n this.log = !!opts.log;\n this.ssl = opts.ssl;\n this.location = opts.location ?? \"notification-center\";\n this.size = opts.size ?? 100;\n this.protocolWithHost = opts.protocolWithHost;\n this.notificationCenter = notificationCenter;\n this.reqOpts = reqOpts;\n this.syncTime = null;\n this.token = null;\n this.pollingInterval = null;\n this.uuid = null;\n this.line = null;\n }\n\n setLine(line) {\n this.line = line;\n }\n\n setPollingTime(val) {\n this.pollingTime = val;\n if (this.line?.isConnected) return;\n this.disconnect();\n this.connect();\n }\n\n connect() {\n this.check();\n this.pollingInterval = setInterval(() => {\n if (this.line?.isConnected) {\n this.disconnect();\n return;\n }\n this.check();\n }, this.pollingTime);\n }\n\n disconnect() {\n window.clearInterval(this.pollingInterval);\n }\n\n check() {\n const url = `${this._getURL()}?${ObjectUtils.toURIParams(this._requestParams())}`;\n const request = openRequest(\"GET\", url, this.reqOpts);\n request.onload = (e) => {\n if (e.target.status >= 200 && e.target.status < 400) {\n const data = JSON.parse(e.target.response);\n this.syncTime = data[1];\n const notifications = data[0];\n if (notifications.length === 0) return;\n\n for (const notification of notifications) {\n processNotification(notification, {\n log: this.log,\n notificationCenter: this.notificationCenter,\n emit: (payload) => this.line?.send(payload),\n });\n }\n\n if (notifications.length === this.size) this.check();\n }\n };\n request.send();\n }\n\n _requestParams() {\n const params = { synced_at: this.syncTime };\n if (this.token != null) params.token = this.token;\n if (this.uuid != null) params.uuid = this.uuid;\n return params;\n }\n\n _getURL() {\n let [protocol, , host] = window.location.href.split(\"/\");\n if (this.protocolWithHost != null) {\n [protocol, host] = this.protocolWithHost.split(\"//\");\n }\n if (this.ssl != null) {\n protocol = this.ssl ? \"https:\" : \"http:\";\n }\n return `${protocol}//${host}/${this.location}`;\n }\n}\n\nexport default Wire;\n","export default (httpMeth, url, opts) => {\n const meta = document.querySelector(\"meta[name='csrf-token']\");\n const req = new XMLHttpRequest();\n req.withCredentials = opts.cookiesByCORS === true ? true : false;\n req.open(httpMeth, url);\n req.setRequestHeader(\"Accept\", \"application/json\");\n if (meta) {\n req.setRequestHeader(\"X-CSRF-Token\", meta.content);\n }\n if (opts.authorizationHeader != null) {\n req.setRequestHeader(\"Authorization\", opts.authorizationHeader);\n }\n return req;\n};\n","import processSystemNotification from \"./line/processSystemNotification\";\n\nclass Line {\n constructor(client, notificationCenter, wire) {\n this.client = client;\n this.notificationCenter = notificationCenter;\n this.wire = wire;\n this.isConnected = false;\n this.disconnectWire = false;\n }\n\n connect() {\n this.client.connect(this);\n }\n\n disconnect({ all = false } = {}) {\n this.disconnectWire = all;\n return this.client.disconnect();\n }\n\n send(payload) {\n return this.isConnected ? this.client.send(payload) : false;\n }\n\n pong() {\n setTimeout(() => this.send({ loco: { pong: true } }), 3000);\n }\n\n connected() {\n console.log(\"WS connected\");\n this.isConnected = true;\n if (this.wire !== null) {\n this.wire.check();\n }\n this.notificationCenter({ loco: \"connected\" });\n this.pong();\n }\n\n disconnected() {\n console.log(\"WS disconnected\");\n this.isConnected = false;\n if (this.wire !== null) {\n this.wire.uuid = null;\n if (!this.disconnectWire) {\n this.wire.connect();\n }\n }\n this.disconnectWire = false;\n this.notificationCenter({ loco: \"disconnected\" });\n }\n\n rejected() {\n console.log(\"WS rejected\");\n this.notificationCenter({ loco: \"rejected\" });\n }\n\n received(data) {\n if (data.loco != null) {\n const res = processSystemNotification(data.loco, this);\n if (res !== true) return;\n delete data.loco;\n }\n if (Object.keys(data).length === 0) return;\n this.notificationCenter(data);\n }\n}\n\nexport default Line;\n","import receivedAlready from \"./idempotencyKeys\";\nimport processNotification from \"./../wire/processNotification\";\n\nexport default (data, line) => {\n if (data.ping === true) {\n line.pong();\n }\n if (line.wire == null) return;\n if (typeof data.sync_time === \"string\") {\n line.wire.syncTime = data.sync_time;\n }\n if (typeof data.uuid === \"string\") {\n console.log(`uuid: ${data.uuid}`);\n line.wire.uuid = data.uuid;\n }\n if (\n typeof data.notification === \"object\" &&\n data.notification.constructor.name === \"Array\"\n ) {\n processNotification(data.notification, {\n log: line.wire.log,\n notificationCenter: line.notificationCenter,\n emit: line.send,\n });\n }\n if (typeof data.idempotency_key === \"string\") {\n if (receivedAlready(data.idempotency_key)) return false;\n }\n return true;\n};\n","class Cable {\n constructor(consumer) {\n this.consumer = consumer;\n this.subscription = null;\n }\n\n connect(line) {\n this.subscription = this.consumer.subscriptions.create(\n {\n channel: \"Loco::NotificationCenterChannel\",\n },\n {\n connected: () => {\n line.connected();\n },\n disconnected: () => {\n line.disconnected();\n },\n rejected: () => {\n line.rejected();\n },\n received: (data) => {\n line.received(data);\n },\n },\n );\n }\n\n disconnect() {\n this.consumer.disconnect();\n }\n\n send(payload) {\n this.subscription.send(payload);\n }\n}\n\nexport default Cable;\n","import Wire from \"./wire\";\nimport Line from \"./line\";\nimport Cable from \"./line/cable\";\n\nclass Loco {\n constructor(models) {\n this.models = models;\n this.wire = null;\n this.line = null;\n }\n\n getModels() {\n return this.models;\n }\n\n getLine() {\n return this.line;\n }\n\n getWire() {\n return this.wire;\n }\n\n setAuthorizationHeader(val) {\n for (const key in this.models) {\n if (Object.prototype.hasOwnProperty.call(this.models, key)) {\n this.models[key].authorizationHeader = val;\n }\n }\n }\n\n init(opts) {\n const notificationsParams = opts.notifications ?? {};\n notificationsParams.protocolWithHost = opts.protocolWithHost;\n\n if (notificationsParams.enable !== false) {\n const wireOpts = {\n cookiesByCORS: opts.cookiesByCORS,\n authorizationHeader: opts.authorizationHeader,\n };\n this.wire = new Wire(\n notificationsParams,\n opts.notificationCenter,\n wireOpts,\n );\n this.wire.connect();\n }\n\n const wsClient = this.#initWsClient(opts);\n if (wsClient != null) {\n this.line = new Line(wsClient, opts.notificationCenter, this.wire);\n this.line.connect();\n if (this.wire) this.wire.setLine(this.line);\n }\n\n this.#ready(() => {\n opts.postInit?.();\n });\n }\n\n emit(payload) {\n return this.line.send(payload);\n }\n\n #initWsClient(opts) {\n if (opts.wsClient != null) return opts.wsClient;\n if (opts.cable != null) return new Cable(opts.cable);\n return null;\n }\n\n #ready(fn) {\n const cond = document.attachEvent\n ? document.readyState === \"complete\"\n : document.readyState !== \"loading\";\n if (cond) {\n fn();\n } else {\n document.addEventListener(\"DOMContentLoaded\", fn);\n }\n }\n}\n\nexport default Loco;\n","import Loco from \"./loco\";\nimport { setIdentityMap, setModels, Models } from \"./deps\";\n\nconst processModels = (opts) => {\n const models = opts.models || {};\n if (Models === null) return models;\n for (const i of Object.keys(models)) {\n Models[i] = models[i];\n }\n return models;\n};\n\nconst init = (opts) => {\n const models = processModels(opts);\n const loco = new Loco(models);\n loco.init(opts);\n return loco;\n};\n\nlet subscribe = () => {};\n\nconst connectWithModel = (connector) => {\n setIdentityMap(connector.IdentityMap);\n setModels(connector.Models);\n subscribe = connector.IdentityMap.subscribe;\n};\n\nexport { init, subscribe, connectWithModel };\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"LocoCore\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"LocoCore\"] = factory();\n\telse\n\t\troot[\"LocoCore\"] = factory();\n})(window, function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","let namespaceController = null;\nlet controller = null;\n\nconst callFunc = (resource, name) => {\n if (typeof resource.constructor[name] === \"function\") {\n resource.constructor[name]();\n }\n if (typeof resource[name] === \"function\") {\n resource[name]();\n }\n};\n\nconst getController = (Controllers, name, subName) => {\n const resource =\n subName === undefined ? Controllers[name] : Controllers[name][subName];\n if (typeof resource === \"function\") {\n return new resource();\n } else if (typeof resource === \"object\") {\n return resource;\n }\n return null;\n};\n\nconst init = (Controllers) => {\n const body = document.getElementsByTagName(\"body\")[0];\n const namespaceName = body.getAttribute(\"data-namespace\");\n const controllerName = body.getAttribute(\"data-controller\");\n const actionName = body.getAttribute(\"data-action\");\n\n if (controller !== null) {\n callFunc(controller, \"deinitialize\");\n controller = null;\n }\n if (namespaceController !== null) {\n callFunc(namespaceController, \"deinitialize\");\n namespaceController = null;\n }\n\n namespaceController = getController(Controllers, namespaceName);\n controller = getController(Controllers, controllerName);\n\n if (namespaceController !== null) {\n controller = getController(Controllers, namespaceName, controllerName);\n namespaceController.controller = controller;\n callFunc(namespaceController, \"initialize\");\n }\n if (controller !== null) {\n controller.namespaceController = namespaceController;\n callFunc(controller, \"initialize\");\n callFunc(controller, actionName);\n }\n\n return { namespaceController, controller, action: actionName };\n};\n\nexport default init;\n","const fetchParams = (url = window.location.href) => {\n const params = {};\n const match = /https?:\\/\\/.+\\/\\w+\\/(\\d+)/.exec(url);\n const id = match !== null ? match[1] : null;\n if (id !== null) {\n params[\"id\"] = parseInt(id);\n }\n const splitUrl = url.split(\"?\");\n if (splitUrl.length === 1) return params;\n const paramsString = splitUrl[splitUrl.length - 1];\n const paramsArray = paramsString.split(\"&\").map((s) => s.split(\"=\"));\n for (const arr of paramsArray) {\n let key = decodeURIComponent(arr[0]);\n let val = decodeURIComponent(arr[1]);\n if (typeof val === \"string\") {\n val = val.replace(/\\+/g, \" \");\n }\n params[key] = val;\n }\n return params;\n};\n\nexport default {\n get params() {\n return fetchParams();\n },\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = function() { return Promise.resolve(); };","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t543: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], function() { return __webpack_require__(728); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","window","module","exports","t","d","e","s","r","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","constructor","this","localeVar","protocolWithHostVar","scopeVar","locale","protocolWithHost","length","slice","scope","en","variants","models","attributes","errors","messages","accepted","blank","confirmation","empty","equal_to","even","exclusion","greater_than","greater_than_or_equal_to","inclusion","invalid","less_than","less_than_or_equal_to","not_a_number","not_an_integer","odd","present","too_long","one","other","too_short","wrong_length","other_than","n","indexOf","find","i","a","getIdentity","id","l","imap","clear","subscribe","to","with","collection","unsubscribe","add","findConnected","u","instance","identity","sharedInstances","q","assignAttribs","obj","attr","val","opts","c","h","super","validate","message","addErrorMessage","for","g","charAt","toUpperCase","replace","p","m","in","within","f","_","exec","b","v","E","y","minimum","is","maximum","M","N","isNaN","only_integer","Number","parseInt","O","j","w","P","T","Absence","Base","Confirmation","Exclusion","Format","Inclusion","Length","Numericality","Presence","Size","R","keys","forEach","encodeURIComponent","document","querySelector","XMLHttpRequest","withCredentials","cookiesByCORS","open","setRequestHeader","content","authorizationHeader","send","JSON","stringify","A","Error","getRemoteName","remoteName","all","__send","post","put","patch","delete","__getResourcesUrl","__requestOpts","Promise","onerror","onload","target","status","parse","response","__initFromJSON","resource","getAttribRemoteName","getResourcesUrlParams","push","resources","toLowerCase","url","__page","params","pageParam","method","Array","isArray","count","__paginate","pageNum","then","total","resolve","perPage","__getPaginationParam","paginate","param","__getPaginationPer","per","page","setResource","getAttrRemoteName","getAttrName","getAttrType","type","assignAttr","Date","parseFloat","Boolean","String","isValid","validations","on","if","console","warn","isInvalid","isEmpty","save","serialize","success","updateAttribute","reload","changes","was","applyChanges","toKey","clone","S","I","IdentityMap","Models","addEventListener","event","namespace","controller","action","detail","newBody","dataset","body","setScope","name","Config","ADD_ARTICLES","PREPEND_ARTICLES","REMOVE_ARTICLE","SET_ARTICLES","UPDATE_ARTICLE","ADD_COMMENTS","REMOVE_COMMENT","SET_COMMENTS","UPDATE_COMMENT","PREPEND_USERS","addArticles","articles","setArticles","updateArticle","article","index","setComments","comments","articleId","updateComment","comment","produce","draft","newArticles","filter","newArticle","some","existingArticle","concat","undefined","users","combineReducers","createStore","reducer","Article","static","main","admin","title","presence","createdAt","updatedAt","commentsCount","publishedAt","published","adminReview","adminRate","categoryId","adminReviewStartedAt","data","vulgarityLevel","setDefaultValuesForAdminReview","now","Comment","author","text","vulgarity","emotion","pinned","approved","date","skope","I18n","toString","format","formats","strftime","default","short","long","log","str","getFullYear","substr","month","getMonth","abbr_month_names","month_names","getDate","getHours","getMinutes","getSeconds","DateService","React","href","propTypes","PropTypes","CommentModel","isRequired","CommentList","map","key","renderArticle","getElementById","textContent","createReceivedMessage","async","reloadedArticle","className","ArticleModel","ArticleList","props","useState","useEffect","store","getState","list","helpers","EditView","UI","Form","render","renderForm","signedIn","location","User","email","username","password","passwordConfirmation","confirmed","createFinder","resourceType","state","parentId","findArticle","findComment","commentsForArticle","CommentsNumber","setMsg","msg","node","classList","hide","remove","resetNode","hideAfterTime","time","setTimeout","createArticleReceivedMessage","renderFlash","warning","update","dateService","textEl","innerHTML","trim","insertAdjacentHTML","initObj","LoadMoreLink","setPage","noMorePosts","setNoMorePosts","onClick","preventDefault","currentPage","resp","alert","dispatch","receivedMessage","created","loco","getWire","token","access_token","style","display","notice","Main","initialize","Articles","show","newComment","ShowView","res","createRoot","renderComments","Pages","Users","new","callbackSuccess","Member","Room","rooms","roomTmpl","members_count","joined","renderRoom","room","membersChanged","roomId","change","memberId","CurrentUser","el","reRenderRoom","room_id","member","roomNode","parentNode","removeChild","memberJoined","li","memberLeft","keyCode","emit","txt","message_type","handleSendingMessage","unsubscribeHeartbeat","intervalId","setInterval","clearInterval","heartbeat","unsubscribeMessages","renderMembers","members","renderedMessage","disconnected","view","deinitialize","dataEl","List","Show","isAdmin","approving","setApproving","handleApproving","ok","adminSection","approveLink","getAttribute","mark","attrib","entries","sel","displayChanges","form","from","querySelectorAll","getObj","attrName","fill","handleApplyingChanges","onArticleDestroyed","confirm","outerHTML","handlePublishing","setAttribute","updateEditLink","FormView","edit","Rooms","userNamespace","getEnv","namespaceController","UserController","adminNamespace","AdminController","inChatRoom","RoomsController","commentsChanged","article_id","diff","updatedArticle","connectWithModel","connector","init","cable","createConsumer","notificationCenter","abbr","articleCreated","payload","prependArticles","articlePublished","findParams","articleUpdated","MainController","addComments","commentCreated","commentDestroyed","removeComment","reloadedComment","commentUpdated","user","prependUsers","notifications","size","postInit","setPollingTime","ping","userId","user_id","UserModel","UserList","setUsers","Admin","renderComment","Comments","commentId","test","commentFormObj","Sessions","editLink","renderUser","Controllers","env","cleanup","connect","getLocale","Validators","Vulgarity","vulgarWord","_getVulgarWord","RegExp","_addErrorMessage","TypeError","pl","few","num","ui","sending","connection","invalid_data","day_names","abbr_day_names","many","getLine","toURIParams","includes","unshift","pop","idempotency_key","split","pollingTime","ssl","reqOpts","syncTime","pollingInterval","uuid","line","setLine","isConnected","disconnect","check","_getURL","_requestParams","synced_at","client","wire","disconnectWire","pong","connected","rejected","received","sync_time","notification","consumer","subscription","subscriptions","create","channel","getModels","setAuthorizationHeader","enable","wsClient","attachEvent","readyState","getElementsByTagName","decodeURIComponent","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","getter","__esModule","definition","prop","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/test/dummy/app/assets/bundles/vendor.js b/test/dummy/app/assets/bundles/vendor.js index 9dea18d2..dad1fc02 100644 --- a/test/dummy/app/assets/bundles/vendor.js +++ b/test/dummy/app/assets/bundles/vendor.js @@ -1,3 +1,25 @@ /*! For license information please see vendor.js.LICENSE.txt */ -(self.webpackChunk=self.webpackChunk||[]).push([[968],{6640:function(t,e,n){"use strict";n.d(e,{gF:function(){return m}});var r={logger:"undefined"!=typeof console?console:void 0,WebSocket:"undefined"!=typeof WebSocket?WebSocket:void 0},o={log(...t){this.enabled&&(t.push(Date.now()),r.logger.log("[ActionCable]",...t))}};const i=()=>(new Date).getTime(),a=t=>(i()-t)/1e3;class u{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=i(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),o.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=i(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),o.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=i()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,o.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=i(),o.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){const{staleThreshold:t,reconnectionBackoffRate:e}=this.constructor;return 1e3*t*Math.pow(1+e,Math.min(this.reconnectAttempts,10))*(1+(0===this.reconnectAttempts?1:e)*Math.random())}reconnectIfStale(){this.connectionIsStale()&&(o.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${a(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?o.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${a(this.disconnectedAt)} s`):(o.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return a(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&a(this.disconnectedAt){!this.connectionIsStale()&&this.connection.isOpen()||(o.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}}u.staleThreshold=6,u.reconnectionBackoffRate=.15;var s={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]};const{message_types:c,protocols:l}=s,f=l.slice(0,l.length-1),d=[].indexOf;class p{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new u(this),this.disconnected=!0}send(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)}open(){if(this.isActive())return o.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{const t=[...l,...this.consumer.subprotocols||[]];return o.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new r.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(o.log(`Reopening WebSocket, current state is ${this.getState()}`),!this.isActive())return this.open();try{return this.close()}catch(t){o.log("Failed to reopen WebSocket",t)}finally{o.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return d.call(f,this.getProtocol())>=0}isState(...t){return d.call(t,this.getState())>=0}getState(){if(this.webSocket)for(let t in r.WebSocket)if(r.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase();return null}installEventHandlers(){for(let t in this.events){const e=this.events[t].bind(this);this.webSocket[`on${t}`]=e}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}}p.reopenDelay=500,p.prototype.events={message(t){if(!this.isProtocolSupported())return;const{identifier:e,message:n,reason:r,reconnect:i,type:a}=JSON.parse(t.data);switch(a){case c.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case c.disconnect:return o.log(`Disconnecting. Reason: ${r}`),this.close({allowReconnect:i});case c.ping:return this.monitor.recordPing();case c.confirmation:return this.subscriptions.confirmSubscription(e),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(e,"connected",{reconnected:!0})):this.subscriptions.notify(e,"connected",{reconnected:!1});case c.rejection:return this.subscriptions.reject(e);default:return this.subscriptions.notify(e,"received",n)}},open(){if(o.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return o.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(t){if(o.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){o.log("WebSocket onerror event")}};class h{constructor(t,e={},n){this.consumer=t,this.identifier=JSON.stringify(e),function(t,e){if(null!=e)for(let n in e){const r=e[n];t[n]=r}}(this,n)}perform(t,e={}){return e.action=t,this.send(e)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}class v{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){-1==this.pendingSubscriptions.indexOf(t)?(o.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):o.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){o.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((e=>e!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&"function"==typeof this.subscriptions.subscribe&&this.pendingSubscriptions.map((t=>{o.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}}class g{constructor(t){this.consumer=t,this.guarantor=new v(this),this.subscriptions=[]}create(t,e){const n="object"==typeof t?t:{channel:t},r=new h(this.consumer,n,e);return this.add(r)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((t=>(this.forget(t),this.notify(t,"rejected"),t)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((e=>e!==t)),t}findAll(t){return this.subscriptions.filter((e=>e.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...e){return this.subscriptions.map((n=>this.notify(n,t,...e)))}notify(t,e,...n){let r;return r="string"==typeof t?this.findAll(t):[t],r.map((t=>"function"==typeof t[e]?t[e](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){o.log(`Subscription confirmed ${t}`),this.findAll(t).map((t=>this.guarantor.forget(t)))}sendCommand(t,e){const{identifier:n}=t;return this.consumer.send({command:e,identifier:n})}}class y{constructor(t){this._url=t,this.subscriptions=new g(this),this.connection=new p(this),this.subprotocols=[]}get url(){return function(t){if("function"==typeof t&&(t=t()),t&&!/^wss?:/i.test(t)){const e=document.createElement("a");return e.href=t,e.href=e.href,e.protocol=e.protocol.replace("http","ws"),e.href}return t}(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}}function m(t=function(t){const e=document.head.querySelector("meta[name='action-cable-url']");if(e)return e.getAttribute("content")}()||s.default_mount_path){return new y(t)}},56844:function(t,e,n){"use strict";n.d(e,{c:function(){return J}});const r="a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",o={selector:"button[data-remote]:not([form]), button[data-confirm]:not([form])",exclude:"form button"},i="select[data-remote], input[data-remote], textarea[data-remote]",a="form:not([data-turbo=true])",u="form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",s="input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",c="input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",l="a[data-disable-with], a[data-disable]",f="button[data-remote][data-disable-with], button[data-remote][data-disable]";let d=null;const p=()=>{const t=document.querySelector("meta[name=csp-nonce]");return d=t&&t.content},h=()=>d||p(),v=Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector,g=function(t,e){return e.exclude?v.call(t,e.selector)&&!v.call(t,e.exclude):v.call(t,e)},y="_ujsData",m=(t,e)=>t[y]?t[y][e]:void 0,b=function(t,e,n){return t[y]||(t[y]={}),t[y][e]=n},w=t=>Array.prototype.slice.call(document.querySelectorAll(t)),S=function(t){var e=!1;do{if(t.isContentEditable){e=!0;break}t=t.parentElement}while(t);return e},x=()=>{const t=document.querySelector("meta[name=csrf-token]");return t&&t.content},E=()=>{const t=document.querySelector("meta[name=csrf-param]");return t&&t.content},k=t=>{const e=x();if(e)return t.setRequestHeader("X-CSRF-Token",e)},_=()=>{const t=x(),e=E();if(t&&e)return w('form input[name="'+e+'"]').forEach((e=>e.value=t))},O={"*":"*/*",text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript",script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},A=t=>{t=P(t);var e=T(t,(function(){const n=C(null!=e.response?e.response:e.responseText,e.getResponseHeader("Content-Type"));return 2===Math.floor(e.status/100)?"function"==typeof t.success&&t.success(n,e.statusText,e):"function"==typeof t.error&&t.error(n,e.statusText,e),"function"==typeof t.complete?t.complete(e,e.statusText):void 0}));return!(t.beforeSend&&!t.beforeSend(e,t))&&(e.readyState===XMLHttpRequest.OPENED?e.send(t.data):void 0)};var P=function(t){return t.url=t.url||location.href,t.type=t.type.toUpperCase(),"GET"===t.type&&t.data&&(t.url.indexOf("?")<0?t.url+="?"+t.data:t.url+="&"+t.data),t.dataType in O||(t.dataType="*"),t.accept=O[t.dataType],"*"!==t.dataType&&(t.accept+=", */*; q=0.01"),t},T=function(t,e){const n=new XMLHttpRequest;return n.open(t.type,t.url,!0),n.setRequestHeader("Accept",t.accept),"string"==typeof t.data&&n.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),t.crossDomain||(n.setRequestHeader("X-Requested-With","XMLHttpRequest"),k(n)),n.withCredentials=!!t.withCredentials,n.onreadystatechange=function(){if(n.readyState===XMLHttpRequest.DONE)return e(n)},n},C=function(t,e){if("string"==typeof t&&"string"==typeof e)if(e.match(/\bjson\b/))try{t=JSON.parse(t)}catch(t){}else if(e.match(/\b(?:java|ecma)script\b/)){const e=document.createElement("script");e.setAttribute("nonce",h()),e.text=t,document.head.appendChild(e).parentNode.removeChild(e)}else if(e.match(/\b(xml|html|svg)\b/)){const n=new DOMParser;e=e.replace(/;.+/,"");try{t=n.parseFromString(t,e)}catch(t){}}return t};const R=function(t){const e=document.createElement("a");e.href=location.href;const n=document.createElement("a");try{return n.href=t,!((!n.protocol||":"===n.protocol)&&!n.host||e.protocol+"//"+e.host==n.protocol+"//"+n.host)}catch(t){return!0}};let M,{CustomEvent:j}=window;"function"!=typeof j&&(j=function(t,e){const n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n},j.prototype=window.Event.prototype,({preventDefault:M}=j.prototype),j.prototype.preventDefault=function(){const t=M.call(this);return this.cancelable&&!this.defaultPrevented&&Object.defineProperty(this,"defaultPrevented",{get(){return!0}}),t});const I=(t,e,n)=>{const r=new j(e,{bubbles:!0,cancelable:!0,detail:n});return t.dispatchEvent(r),!r.defaultPrevented},N=t=>{I(t.target,"ujs:everythingStopped"),t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()},L=(t,e,n,r)=>t.addEventListener(n,(function(t){let{target:n}=t;for(;n instanceof Element&&!g(n,e);)n=n.parentNode;n instanceof Element&&!1===r.call(n,t)&&(t.preventDefault(),t.stopPropagation())})),D=t=>Array.prototype.slice.call(t),z=(t,e)=>{let n=[t];g(t,"form")&&(n=D(t.elements));const r=[];return n.forEach((function(t){t.name&&!t.disabled&&(g(t,"fieldset[disabled] *")||(g(t,"select")?D(t.options).forEach((function(e){e.selected&&r.push({name:t.name,value:e.value})})):(t.checked||-1===["radio","checkbox","submit"].indexOf(t.type))&&r.push({name:t.name,value:t.value})))})),e&&r.push(e),r.map((function(t){return t.name?`${encodeURIComponent(t.name)}=${encodeURIComponent(t.value)}`:t})).join("&")},F=(t,e)=>g(t,"form")?D(t.elements).filter((t=>g(t,e))):D(t.querySelectorAll(e));const U=function(t){this.disabled&&N(t)},B=t=>{let e;if(t instanceof Event){if(Y(t))return;e=t.target}else e=t;if(!S(e))return g(e,l)?q(e):g(e,f)||g(e,c)?G(e):g(e,a)?Q(e):void 0},H=t=>{const e=t instanceof Event?t.target:t;if(!S(e))return g(e,l)?W(e):g(e,f)||g(e,s)?$(e):g(e,a)?V(e):void 0};var W=function(t){if(m(t,"ujs:disabled"))return;const e=t.getAttribute("data-disable-with");return null!=e&&(b(t,"ujs:enable-with",t.innerHTML),t.innerHTML=e),t.addEventListener("click",N),b(t,"ujs:disabled",!0)},q=function(t){const e=m(t,"ujs:enable-with");return null!=e&&(t.innerHTML=e,b(t,"ujs:enable-with",null)),t.removeEventListener("click",N),b(t,"ujs:disabled",null)},V=t=>F(t,s).forEach($),$=function(t){if(m(t,"ujs:disabled"))return;const e=t.getAttribute("data-disable-with");return null!=e&&(g(t,"button")?(b(t,"ujs:enable-with",t.innerHTML),t.innerHTML=e):(b(t,"ujs:enable-with",t.value),t.value=e)),t.disabled=!0,b(t,"ujs:disabled",!0)},Q=t=>F(t,c).forEach((t=>G(t))),G=function(t){const e=m(t,"ujs:enable-with");return null!=e&&(g(t,"button")?t.innerHTML=e:t.value=e,b(t,"ujs:enable-with",null)),t.disabled=!1,b(t,"ujs:disabled",null)},Y=function(t){const e=t.detail?t.detail[0]:void 0;return e&&e.getResponseHeader("X-Xhr-Redirect")};const K=function(t){const e=this,{form:n}=e;if(n)return e.name&&b(n,"ujs:submit-button",{name:e.name,value:e.value}),b(n,"ujs:formnovalidate-button",e.formNoValidate),b(n,"ujs:submit-button-formaction",e.getAttribute("formaction")),b(n,"ujs:submit-button-formmethod",e.getAttribute("formmethod"))},X=function(t){const e=(this.getAttribute("data-method")||"GET").toUpperCase(),n=this.getAttribute("data-params"),r=(t.metaKey||t.ctrlKey)&&"GET"===e&&!n;(null!=t.button&&0!==t.button||r)&&t.stopImmediatePropagation()},J={$:w,ajax:A,buttonClickSelector:o,buttonDisableSelector:f,confirm:(t,e)=>window.confirm(t),cspNonce:h,csrfToken:x,csrfParam:E,CSRFProtection:k,delegate:L,disableElement:H,enableElement:B,fileInputSelector:"input[name][type=file]:not([disabled])",fire:I,formElements:F,formEnableSelector:c,formDisableSelector:s,formInputClickSelector:u,formSubmitButtonClick:K,formSubmitSelector:a,getData:m,handleDisabledElement:U,href:t=>t.href,inputChangeSelector:i,isCrossDomain:R,linkClickSelector:r,linkDisableSelector:l,loadCSPNonce:p,matches:g,preventInsignificantClick:X,refreshCSRFTokens:_,serializeElement:z,setData:b,stopEverything:N},Z=(tt=J,function(t){(function(t,e){let n;const r=t.getAttribute("data-confirm");if(!r)return!0;let o=!1;if(I(t,"confirm")){try{o=e.confirm(r,t)}catch(t){}n=I(t,"confirm:complete",[o])}return o&&n})(this,tt)||N(t)});var tt;J.handleConfirm=Z;const et=(t=>function(e){const n=this,r=n.getAttribute("data-method");if(!r)return;if(S(this))return;const o=t.href(n),i=x(),a=E(),u=document.createElement("form");let s=``;a&&i&&!R(o)&&(s+=``),s+='',u.method="post",u.action=o,u.target=n.target,u.innerHTML=s,u.style.display="none",document.body.appendChild(u),u.querySelector('[type="submit"]').click(),N(e)})(J);J.handleMethod=et;const nt=(t=>function(e){let n,r,u;const s=this;if(!function(t){const e=t.getAttribute("data-remote");return null!=e&&"false"!==e}(s))return!0;if(!I(s,"ajax:before"))return I(s,"ajax:stopped"),!1;if(S(s))return I(s,"ajax:stopped"),!1;const c=s.getAttribute("data-with-credentials"),l=s.getAttribute("data-type")||"script";if(g(s,a)){const t=m(s,"ujs:submit-button");r=m(s,"ujs:submit-button-formmethod")||s.getAttribute("method")||"get",u=m(s,"ujs:submit-button-formaction")||s.getAttribute("action")||location.href,"GET"===r.toUpperCase()&&(u=u.replace(/\?.*$/,"")),"multipart/form-data"===s.enctype?(n=new FormData(s),null!=t&&n.append(t.name,t.value)):n=z(s,t),b(s,"ujs:submit-button",null),b(s,"ujs:submit-button-formmethod",null),b(s,"ujs:submit-button-formaction",null)}else g(s,o)||g(s,i)?(r=s.getAttribute("data-method"),u=s.getAttribute("data-url"),n=z(s,s.getAttribute("data-params"))):(r=s.getAttribute("data-method"),u=t.href(s),n=s.getAttribute("data-params"));A({type:r||"GET",url:u,data:n,dataType:l,beforeSend(t,e){return I(s,"ajax:beforeSend",[t,e])?I(s,"ajax:send",[t]):(I(s,"ajax:stopped"),!1)},success(...t){return I(s,"ajax:success",t)},error(...t){return I(s,"ajax:error",t)},complete(...t){return I(s,"ajax:complete",t)},crossDomain:R(u),withCredentials:null!=c&&"false"!==c}),N(e)})(J);if(J.handleRemote=nt,J.start=function(){if(window._rails_loaded)throw new Error("rails-ujs has already been loaded!");return window.addEventListener("pageshow",(function(){w(c).forEach((function(t){m(t,"ujs:disabled")&&B(t)})),w(l).forEach((function(t){m(t,"ujs:disabled")&&B(t)}))})),L(document,l,"ajax:complete",B),L(document,l,"ajax:stopped",B),L(document,f,"ajax:complete",B),L(document,f,"ajax:stopped",B),L(document,r,"click",X),L(document,r,"click",U),L(document,r,"click",Z),L(document,r,"click",H),L(document,r,"click",nt),L(document,r,"click",et),L(document,o,"click",X),L(document,o,"click",U),L(document,o,"click",Z),L(document,o,"click",H),L(document,o,"click",nt),L(document,i,"change",U),L(document,i,"change",Z),L(document,i,"change",nt),L(document,a,"submit",U),L(document,a,"submit",Z),L(document,a,"submit",nt),L(document,a,"submit",(t=>setTimeout((()=>H(t)),13))),L(document,a,"ajax:send",H),L(document,a,"ajax:complete",B),L(document,u,"click",X),L(document,u,"click",U),L(document,u,"click",Z),L(document,u,"click",K),document.addEventListener("DOMContentLoaded",_),document.addEventListener("DOMContentLoaded",p),window._rails_loaded=!0},"undefined"!=typeof jQuery&&jQuery&&jQuery.ajax){if(jQuery.rails)throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");jQuery.rails=J,jQuery.ajaxPrefilter((function(t,e,n){if(!t.crossDomain)return k(n)}))}},27152:function(t){var e;self,e=()=>(()=>{"use strict";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t,e){for(var r=0;ro,I18n:()=>i,IdentityMap:()=>f,Models:()=>z,Validators:()=>R});const o=new(function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.localeVar="en",this.protocolWithHostVar=null,this.scopeVar=null}var e,n;return e=t,(n=[{key:"locale",get:function(){return this.localeVar},set:function(t){this.localeVar=t}},{key:"protocolWithHost",get:function(){return this.protocolWithHostVar},set:function(t){t?"/"===t[t.length-1]?this.protocolWithHostVar=t.slice(0,t.length-1):this.protocolWithHostVar=t:this.protocolWithHostVar=null}},{key:"scope",get:function(){return this.scopeVar},set:function(t){this.scopeVar=t}}])&&r(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}()),i={en:{variants:{},models:{},attributes:{},errors:{messages:{accepted:"must be accepted",blank:"can't be blank",confirmation:"doesn't match %{attribute}",empty:"can't be empty",equal_to:"must be equal to %{count}",even:"must be even",exclusion:"is reserved",greater_than:"must be greater than %{count}",greater_than_or_equal_to:"must be greater than or equal to %{count}",inclusion:"is not included in the list",invalid:"is invalid",less_than:"must be less than %{count}",less_than_or_equal_to:"must be less than or equal to %{count}",not_a_number:"is not a number",not_an_integer:"must be an integer",odd:"must be odd",present:"must be blank",too_long:{one:"is too long (maximum is 1 character)",other:"is too long (maximum is %{count} characters)"},too_short:{one:"is too short (minimum is 1 character)",other:"is too short (minimum is %{count} characters)"},wrong_length:{one:"is the wrong length (should be 1 character)",other:"is the wrong length (should be %{count} characters)"},other_than:"must be other than %{count}"}}}};function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}var u={},s=function(t,e){if(-1!==t.indexOf(e))return null;var n=function(t){var e=t.length;return t.find((function(t,n){if(null===t)return e=n,!0})),e}(t);return t[n]=e,n},c=function(t,e,n){return u[t][e][n]=null},l=function(t){var e=t.getIdentity();void 0===u[e]&&(u[e]={}),void 0===u[e][t.id]&&(u[e][t.id]=[]),u[e][t.id][0]=t};const f={get imap(){return u},clear:function(){return u={}},subscribe:function(t){var e=function(){};if("object"===a(t.to)){var n=function(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).with;l(e);var n=u[e.getIdentity()][e.id];return s(n,t)}(t.with,{with:t.to});return null===n?e:function(){c(t.to.getIdentity(),t.to.id,n)}}if("function"==typeof t.to){var r=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};void 0===u[t]&&(u[t]={}),void 0===u[t].collection&&(u[t].collection=[]);var n=u[t].collection;return s(n,e.to)}(t.to.getIdentity(),{to:t.with});return null===r?e:function(){c(t.to.getIdentity(),"collection",r)}}},unsubscribe:c,add:l,find:function(t,e){return void 0!==u[t]&&null!=u[t][e]?u[t][e][0]:null},findConnected:function(t,e){return void 0!==u[t]&&void 0!==u[t][e]&&u[t][e].length>1?u[t][e].slice(1):[]}},d=function(){function t(){this.obj=null,this.attr=null,this.val=null,this.opts=null}return t.sharedInstances={},t.instance=function(t,e,n){var r,o;return o=this.identity,null==this.sharedInstances[o]&&(this.sharedInstances[o]=new R[o]),(r=this.sharedInstances[o]).assignAttribs(t,e,n),r},t.prototype.assignAttribs=function(t,e,n){return this.obj=t,this.attr=e,this.val=this.obj[this.attr],this.opts=n},t}();var p={}.hasOwnProperty;const h=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)p.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Absence",e.prototype.validate=function(){if("string"==typeof this.val){if(null!=this.val&&0===this.val.length)return}else if(null==this.val)return;return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.present,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var v={}.hasOwnProperty;const g=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)v.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Confirmation",e.prototype.validate=function(){var t;if(t=this.obj[this._properAttr()],null==this.val||null==t||this.val!==t)return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t,e,n,r;return n=this.attr.charAt(0).toUpperCase()+this.attr.slice(1),t=(e=i[o.locale].attributes[this.obj.getIdentity()])&&e[this.attr]||n,r=(r=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.confirmation).replace("%{attribute}",t),this.obj.addErrorMessage(r,{for:this._properAttr()})},e.prototype._properAttr=function(){return this.attr+"Confirmation"},e}(d);var y={}.hasOwnProperty;const m=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)y.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Exclusion",e.prototype.validate=function(){if(-1!==(this.opts.in||this.opts.within||[]).indexOf(this.val))return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.exclusion,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var b={}.hasOwnProperty;const w=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)b.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Format",e.prototype.validate=function(){if(null==this.opts.with.exec(this.val))return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.invalid,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var S={}.hasOwnProperty;const x=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)S.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Inclusion",e.prototype.validate=function(){if(-1===(this.opts.in||this.opts.within||[]).indexOf(this.val))return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.inclusion,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var E={}.hasOwnProperty;const k=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)E.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Length",e.prototype.validate=function(){var t;if(null!=this.val&&null!==(t=null!=this._range()[0]&&null!=this._range()[1]&&this._range()[0]===this._range()[1]&&this.val.length!==this._range()[0]?this._selectErrorMessage("wrong_length",this._range()[0]):null!=this._range()[0]&&this.val.lengththis._range()[1]?this._selectErrorMessage("too_long",this._range()[1]):null))return this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._range=function(){return[this.opts.minimum||this.opts.is||null!=this.opts.within&&this.opts.within[0]||null,this.opts.maximum||this.opts.is||null!=this.opts.within&&this.opts.within[1]||null]},e.prototype._selectErrorMessage=function(t,e){var n,r,a,u,s;if(1===e)return i[o.locale].errors.messages[t].one;for(a=null,n=0,r=(u=["few","many"]).length;n=this.opts.less_than?this._addLessThanErrorMessage():null!=this.opts.less_than_or_equal_to&&Number(this.val)>this.opts.less_than_or_equal_to?this._addLessThanOrEqualToErrorMessage():null!=this.opts.other_than&&Number(this.val)===this.opts.other_than?this._addOtherThanErrorMessage():null!=this.opts.odd&&Number(this.val)%2!=1?this._addOddErrorMessage():null!=this.opts.even&&Number(this.val)%2!=0?this._addEvenErrorMessage():void 0},e.prototype._addNaNErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.not_a_number,this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addIntErrorMessage=function(){var t;return t=i[o.locale].errors.messages.not_an_integer,this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addGreatherThanErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.greater_than).replace("%{count}",this.opts.greater_than),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addGreatherThanOrEqualToErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.greater_than_or_equal_to).replace("%{count}",this.opts.greater_than_or_equal_to),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addEqualToErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.equal_to).replace("%{count}",this.opts.equal_to),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addLessThanErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.less_than).replace("%{count}",this.opts.less_than),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addLessThanOrEqualToErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.less_than_or_equal_to).replace("%{count}",this.opts.less_than_or_equal_to),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addOtherThanErrorMessage=function(){var t;return t=(t=i[o.locale].errors.messages.other_than).replace("%{count}",this.opts.other_than),this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addOddErrorMessage=function(){var t;return t=i[o.locale].errors.messages.odd,this.obj.addErrorMessage(t,{for:this.attr})},e.prototype._addEvenErrorMessage=function(){var t;return t=i[o.locale].errors.messages.even,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var A={}.hasOwnProperty;const P=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)A.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Presence",e.prototype.validate=function(){if("string"==typeof this.val){if(null!=this.val&&this.val.length>0)return}else if(null!=this.val)return;return this._addErrorMessage()},e.prototype._addErrorMessage=function(){var t;return t=null!=this.opts.message?this.opts.message:i[o.locale].errors.messages.blank,this.obj.addErrorMessage(t,{for:this.attr})},e}(d);var T,C={}.hasOwnProperty;T=function(t){function e(){e.__super__.constructor.call(this)}return function(t,e){for(var n in e)C.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype}(e,t),e.identity="Size",e.prototype.validate=function(){return k.instance(this.obj,this.attr,this.opts).validate()},e}(d);const R={Absence:h,Base:d,Confirmation:g,Exclusion:m,Format:w,Inclusion:x,Length:k,Numericality:O,Presence:P,Size:T};var M,j=function(t,e,n){var r,o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=function(t){var e={};if(!t)return e;var n=["resource","total","count"];return Object.keys(t).forEach((function(r){-1===n.indexOf(r)&&(e[r]=t[r])})),e}(n),u="GET"===t?"".concat(e,"?").concat((r=a,o="",Object.keys(r).forEach((function(t){""!==o&&(o="".concat(o,"&")),o="".concat(o).concat(t,"=").concat(encodeURIComponent(r[t]))})),o)):e,s=document.querySelector("meta[name='csrf-token']"),c=new XMLHttpRequest;return c.withCredentials=!0===i.cookiesByCORS,c.open(t,u),c.setRequestHeader("Accept","application/json"),c.setRequestHeader("Content-Type","application/json"),s&&c.setRequestHeader("X-CSRF-Token",s.content),null!=i.authorizationHeader&&c.setRequestHeader("Authorization",i.authorizationHeader),c.send(JSON.stringify(a)),c};M=function(){function t(t){null==t&&(t={}),this.id=null,this.errors=null,this.resource=t.resource,null!=this.constructor.attributes&&this.__initAttributes(),null!=t&&this.__assignAttributes(t)}return t.getIdentity=function(){if(null!=this.identity)return this.identity;throw"Specify Model's identity!"},t.getRemoteName=function(){return null!=this.remoteName?this.remoteName:this.getIdentity()},t.all=function(t){return null==t&&(t={}),this.get("all",t)},t.get=function(t,e){return null==e&&(e={}),this.__send("GET",t,e)},t.post=function(t,e){return null==e&&(e={}),this.__send("POST",t,e)},t.put=function(t,e){return null==e&&(e={}),this.__send("PUT",t,e)},t.patch=function(t,e){return null==e&&(e={}),this.__send("PATCH",t,e)},t.delete=function(t,e){return null==e&&(e={}),this.__send("DELETE",t,e)},t.find=function(t){var e,n,r,o,i;return o={},"object"==typeof t?(o=t,e=t.id,delete o.id):e=t,r=this.__getResourcesUrl(o)+"/"+e,n=j("GET",r,o,this.__requestOpts()),new Promise((i=this,function(e,r){return n.onerror=function(t){return r(t)},n.onload=function(n){var r;if(404!==n.target.status)return r=JSON.parse(n.target.response),e(i.__initFromJSON(r,t.resource));e(null)}}))},t.getAttribRemoteName=function(t){return null==this.attributes||null==this.attributes[t]?null:null==this.attributes[t].remoteName?t:this.attributes[t].remoteName},t.getResourcesUrlParams=function(t){var e,n,r,o;for(o=this.__getResourcesUrl({resource:t.resource}),r=/:(\w+)\/?/,n=[];e=r.exec(o);)n.push(e[1]),o=o.replace(e[0],e[1]);return n},t.__getResourcesUrl=function(t){var e,n;return n=null==this.resources?"/"+this.getRemoteName().toLowerCase()+"s":t.resource?this.resources[t.resource].url:null!=o.scope&&null!=this.resources[o.scope]?this.resources[o.scope].url:this.resources.url,null!=this.protocolWithHost?n=""+this.protocolWithHost+n:null!=o.protocolWithHost&&(n=""+o.protocolWithHost+n),null==(e=/:([a-zA-Z]+)\/?/.exec(n))||(null!=t[e[1]]?(n=n.replace(":"+e[1],t[e[1]]),delete t[e[1]]):null!=t.obj&&null!=t.obj[e[1]]&&(n=n.replace(":"+e[1],t.obj[e[1]]))),n},t.__requestOpts=function(){return{authorizationHeader:o.authorizationHeader||this.authorizationHeader,cookiesByCORS:null!=this.cookiesByCORS?this.cookiesByCORS:o.cookiesByCORS}},t.__page=function(t,e,n){var r,o,i;return o=e.url,e.params[e.pageParam]=t,r=j(e.method,o,e.params,this.__requestOpts()),new Promise((i=this,function(t,o){return r.onerror=function(t){return o(t)},r.onload=function(r){var o,a,u,s,c,l,f,d,p,h;if((o=JSON.parse(r.target.response)).constructor===Array)for(a=0,c=o.length;a=c;i=2<=c?++a:--a)o=function(t){return s=s.then((function(o){return n.__page(t,e,r)}))},o(i);return s}))},t.__getPaginationParam=function(t){var e,n,r,i,a,u;return e="page",null!=t&&null!=this.resources&&this.resources[t]?(null!=(n=this.resources[t].paginate)?n.param:void 0)||e:null!=o.scope&&null!=this.resources&&null!=this.resources[o.scope]?(null!=(r=this.resources[o.scope])&&null!=(i=r.paginate)?i.param:void 0)||e:null!=(null!=(a=this.resources)&&null!=(u=a.paginate)?u.param:void 0)?this.resources.paginate.param:e},t.__getPaginationPer=function(t){var e,n,r,i,a;return null!=t&&null!=this.resources&&this.resources[t]?null!=(e=this.resources[t].paginate)?e.per:void 0:null!=o.scope&&null!=this.resources&&null!=this.resources[o.scope]?null!=(n=this.resources[o.scope])&&null!=(r=n.paginate)?r.per:void 0:null!=(null!=(i=this.resources)&&null!=(a=i.paginate)?a.per:void 0)?this.resources.paginate.per:null},t.__send=function(t,e,n){var r,o;return o=this.__getResourcesUrl(n),"all"!==e&&(o=o+"/"+e),r={method:t,url:o,params:n,resource:n.resource,perPage:this.__getPaginationPer(n.resource),pageNum:n.page,pageParam:this.__getPaginationParam(n.resource),total:n.total||n.count},this.__paginate(r)},t.__initFromJSON=function(t,e){var n;return(n=new this(t)).resource=e,f.add(n),n},t.prototype.setResource=function(t){return this.resource=t},t.prototype.getIdentity=function(){return this.constructor.getIdentity()},t.prototype.getAttrRemoteName=function(t){return null==this.constructor.attributes||null==this.constructor.attributes[t]?null:this.constructor.attributes[t].remoteName||t},t.prototype.getAttrName=function(t){var e,n;if(null==this.constructor.attributes)return t;if(null!=this.constructor.attributes[t])return t;for(e in n=this.constructor.attributes)if(n[e].remoteName===t)return e;return t},t.prototype.getAttrType=function(t){return null==this.constructor.attributes||null==this.constructor.attributes[t]?null:this.constructor.attributes[t].type},t.prototype.assignAttr=function(t,e){var n;if(n=this.getAttrType(t),null!=e){switch(n){case"Date":e=new Date(Date.parse(e));break;case"Integer":case"Int":e=parseInt(e);break;case"Float":e=parseFloat(e);break;case"Boolean":case"Bool":e="boolean"==typeof e?e:Boolean(parseInt(e));break;case"Number":e=Number(e);break;case"String":e=String(e)}return this[t]=e}this[t]=null},t.prototype.attributes=function(){var t,e,n;if(t={id:this.id},null==this.constructor.attributes)return t;for(e in n=this.constructor.attributes)n[e],t[e]=this[e];return t},t.prototype.isValid=function(){var t,e,n,r,o,i,a,u,s,c,l;if(null==this.constructor.attributes)return!0;for(r in this.errors=null,i=this.constructor.attributes)if(null!=(t=i[r]).validations)for(s in a=t.validations)c=a[s],null!=this.id&&"create"===c.on||null==this.id&&"update"===c.on||(null==c.if||c.if(this))&&(l=s.charAt(0).toUpperCase()+s.slice(1),null!=R[l]?(o=this.__processedValidationSettings(c),R[l].instance(this,r,o).validate()):console.warn('"'+l+'" validator is not implemented!'));if(null!=this.constructor.validate)for(e=0,n=(u=this.constructor.validate).length;e=200&&e.target.status<400?(o=JSON.parse(e.target.response)).success?void t(o):(null!=o.errors&&n.__assignRemoteErrorMessages(o.errors),t(o)):e.target.status>=500?r(e):void 0}}))},t.prototype.serialize=function(t){var e,n,r,o;if(null==t&&(t=null),null==this.constructor.attributes)return{};for(t in(n={})[r=this.constructor.getRemoteName().toLowerCase()]={},e={},null!=t?e[t]=null:e=this.constructor.attributes,e)e[t],o=this.getAttrRemoteName(t),n[r][o]=this[t];return n},t.prototype.reload=function(){var t,e,n,r,o;for(t={id:this.id,resource:this.resource},e=0,n=(o=this.constructor.getResourcesUrlParams({resource:this.resource})).length;e=200&&r.target.status<400?(n=JSON.parse(r.target.response),t(n)):r.target.status>=500?e(r):void 0}}))},t.prototype.__assignAttributes=function(t){var e,n,r,o;for(n in r=[],t)o=t[n],e=this.getAttrName(n),r.push(this.assignAttr(e,o));return r},t.prototype.__initAttributes=function(){var t,e,n;for(t in n=[],e=this.constructor.attributes)e[t],n.push(this[t]=null);return n},t.prototype.__assignRemoteErrorMessages=function(t){var e,n,r,o,i;for(o in i=[],t)r=t[o],e=this.getAttrName(o),i.push(function(){var t,o,i;for(i=[],t=0,o=r.length;t(()=>{"use strict";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{UI:()=>u,connect:()=>p});const n={getLocale:null,wire:null,I18n:null};var r=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},o=function(t,e){null!=t.classList?t.classList.add(e):t.className+=" "+e},i=function(t,e){null!=t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},a=function(t){return Array.from(t).map((function(t){return t.getAttribute("type")})).filter((function(t,e,n){return n.indexOf(t)===e}))};const u={Form:function(){function t(t){null==t&&(t={}),this.formId=t.id,this.obj=t.for,this.initObj=!(null==t.initObj||!t.initObj),this.callbackSuccess=t.callbackSuccess,this.callbackFailure=t.callbackFailure,this.callbackActive=t.callbackActive,this.form=this._findForm(),this.submit=null,this.submitVal=null,null!=this.form&&(this.submit=this.form.querySelector('[type="submit"]')),null!=this.submit&&(this.submitVal=this.submit.value),this.locale=n.getLocale()}return t.prototype.getObj=function(){return this.obj},t.prototype.render=function(){return this.initObj?(this._assignAttribs(),this._handle()):null!=this.form?(this.fill(),this._handle()):void 0},t.prototype.fill=function(t){var e,n,r,o,i,u,s,c;if(null==t&&(t=null),null==this.obj)return null;if(null==this.obj.constructor.attributes)return null;for(r in e={},null!=t?e[t]=null:e=this.obj.constructor.attributes,s=[],e)e[r],u=this.obj.getAttrRemoteName(r),null!==(o=this.form.querySelector("[data-attr="+u+"]"))&&0!==(n=o.querySelectorAll("input,textarea,select")).length&&(1!==n.length?1!==(c=a(n)).length||"radio"!==c[0]||null==(i=Array.from(n).find(function(t){return function(e){return e.value===String(t.obj[r])}}(this)))?"hidden"!==n[0].getAttribute("type")&&"checkbox"!==n[n.length-1].getAttribute("type")||s.push(n[n.length-1].checked=Boolean(this.obj[r])):i.checked=!0:n[0].value=this.obj[r]);return s},t.prototype._findForm=function(){var t;return null!=this.formId?document.getElementById(""+this.formId):null!=this.obj?(t=this.obj.getIdentity().toLowerCase(),null!=this.obj.id?document.getElementById("edit_"+t+"_"+this.obj.id):document.getElementById("new_"+t)):void 0},t.prototype._handle=function(){return this.form.addEventListener("submit",(t=this,function(e){var n;if(e.preventDefault(),t._canBeSubmitted()){if(null!=t.obj)return t._assignAttribs(),t._hideErrors(),t.obj.isInvalid()?(t._renderErrors(),void(null!=t.callbackFailure&&t.callbackFailure())):(t._submittingForm(!1),n=null==t.obj.id,t.obj.save().then((function(e){return t._alwaysAfterRequest(),e.success?t._handleSuccess(e,n):(null!=t.callbackFailure&&t.callbackFailure(),t._renderErrors())})).catch((function(e){return t._connectionError()})));t._submitForm()}}));var t},t.prototype._canBeSubmitted=function(){return null==this.submit||!r(this.submit,"active")&&!r(this.submit,"success")&&!r(this.submit,"failure")},t.prototype._submitForm=function(){var t,e,n,r,o;return this._submittingForm(),r=this.form.getAttribute("action")+".json",t=new FormData(this.form),(n=new XMLHttpRequest).open("POST",r),n.setRequestHeader("X-CSRF-Token",null!=(e=document.querySelector("meta[name='csrf-token']"))?e.content:void 0),n.onload=(o=this,function(e){return o._alwaysAfterRequest(),null!=o.submit&&o.submit.blur(),e.target.status>=200&&e.target.status<400?(t=JSON.parse(e.target.response)).success?o._handleSuccess(t,"POST"===o.form.getAttribute("method")):o._renderErrors(t.errors):e.target.status>=500?o._connectionError():void 0}),n.onerror=function(t){return function(){return t._alwaysAfterRequest(),null!=t.submit&&t.submit.blur(),t._connectionError()}}(this),n.send(t)},t.prototype._handleSuccess=function(t,e){var r,a,u,s;if(null==e&&(e=!0),u=null!=(r=null!=(a=t.flash)?a.success:void 0)?r:n.I18n[this.locale].ui.form.success,null!=this.submit&&(o(this.submit,"success"),this.submit.value=u),null!=t.access_token&&(n.wire.token=t.access_token),null==this.callbackSuccess)return setTimeout((s=this,function(){var t,n,r,o,a,u;if(null!=s.submit&&(s.submit.disabled=!1,i(s.submit,"success"),s.submit.value=s.submitVal),u=":not([data-loco-not-clear=true])",e){for(a=[],t=0,n=(o=s.form.querySelectorAll("input:not([type='submit'])"+u+", textarea"+u)).length;t0&&(1===(l=document.querySelectorAll(".errors[data-for='base']")).length?l[0].textContent=a[0]:null!=this.submit&&(this.submit.value=a[0]));else{if(null===(f=this.form.querySelector("[data-attr="+d+"]")))continue;if(0===(l=f.querySelectorAll(".errors[data-for="+d+"]")).length)continue;for(u=0,s=l.length;u0?(t.textContent="",o.push(t.style.display="none")):o.push(void 0);return o},t.prototype._showErrors=function(){var t,e,n,r,o;for(o=[],e=0,n=(r=this.form.querySelectorAll(".errors")).length;e0?o.push(t.style.display="block"):o.push(void 0);return o},t.prototype._submittingForm=function(t){if(null==t&&(t=!0),null!=this.submit&&(i(this.submit,"success"),i(this.submit,"failure"),o(this.submit,"active"),this.submit.value=n.I18n[this.locale].ui.form.sending),null!=this.callbackActive&&this.callbackActive(),t)return this._hideErrors()},t.prototype._connectionError=function(){var t;if(null!=this.submit)return i(this.submit,"active"),o(this.submit,"failure"),this.submit.value=n.I18n[this.locale].ui.form.errors.connection,setTimeout((t=this,function(){return t.submit.disabled=!1,i(t.submit,"failure"),t.submit.value=t.submitVal}),3e3)},t.prototype._alwaysAfterRequest=function(){if(null!=this.submit)return i(this.submit,"active")},t}()},s={ui:{form:{sending:"Sending...",success:"Success",errors:{connection:"Connection Error",invalid_data:"Invalid data"}}}};function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function f(t){for(var e=1;e(()=>{var e={816:t=>{self,t.exports=(()=>{"use strict";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}t.r(e),t.d(e,{helpers:()=>u,init:()=>i});var r=function(t){"function"==typeof t.constructor.initialize&&t.constructor.initialize(),"function"==typeof t.initialize&&t.initialize()},o=function(t,e,r){var o=void 0===r?t[e]:t[e][r];return"function"==typeof o?new o:"object"===n(o)?o:null};const i=function(t){var e=document.getElementsByTagName("body")[0],n=e.getAttribute("data-namespace"),i=e.getAttribute("data-controller"),a=e.getAttribute("data-action"),u=o(t,n),s=o(t,i);return null!==u&&(s=o(t,n,i),u.controller=s,r(u)),null!==s&&(s.namespaceController=u,function(t,e){r(t),"function"==typeof t.constructor[e]&&t.constructor[e](),"function"==typeof t[e]&&t[e]()}(s,a)),{namespaceController:u,controller:s,action:a}};function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:window.location.href,e={},n=/https?:\/\/.+\/\w+\/(\d+)/.exec(t),r=null!==n?n[1]:null;null!==r&&(e.id=parseInt(r));var o=t.split("?");if(1===o.length)return e;var i,u=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}(t))){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return u=t.done,t},e:function(t){s=!0,i=t},f:function(){try{u||null==n.return||n.return()}finally{if(s)throw i}}}}(o[o.length-1].split("&").map((function(t){return t.split("=")})));try{for(u.s();!(i=u.n()).done;){var s=i.value,c=decodeURIComponent(s[0]),l=decodeURIComponent(s[1]);"string"==typeof l&&(l=l.replace(/\+/g," ")),e[c]=l}}catch(t){u.e(t)}finally{u.f()}return e}()}};return e})()},904:e=>{"use strict";e.exports=t}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var i=n[t]={exports:{}};return e[t](i,i.exports,r),i.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};return(()=>{"use strict";r.r(o),r.d(o,{Controllers:()=>a,I18n:()=>e.I18n,Models:()=>e.Models,Validators:()=>e.Validators,createConnector:()=>P,getLocale:()=>_,helpers:()=>t.helpers,init:()=>A,setLocale:()=>O,subscribe:()=>T});var t=r(816),e=r(904);function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:String(e)}var a={Base:function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var n,r;return n=t,(r=[{key:"setScope",value:function(t){e.Config.scope=t}},{key:"setResource",value:function(t){this.setScope(t)}}])&&function(t,e){for(var n=0;n100&&c.pop(),!1)};var f;function d(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=p(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw i}}}}function p(t,e){if(t){if("string"==typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(t,e):void 0}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{};n.log&&console.log(t);var r,o=function(t){if(Array.isArray(t))return t}(r=t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,u=[],s=!0,c=!1;try{for(i=(n=n.call(t)).next;!(s=(r=i.call(n)).done)&&(u.push(r.value),4!==u.length);s=!0);}catch(t){c=!0,o=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(r)||p(r,4)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),i=o[0],a=o[1],u=o[2],s=o[3];if(l(s.loco.idempotency_key))return!1;delete s.loco;var c=function(t){var n,r,o,i;for(n=0,r=(i=f()).length;n5&&void 0!==arguments[5]?arguments[5]:null;null===a&&(a=new o({id:t}));var u,s=d(e.IdentityMap.findConnected(i,t));try{for(s.s();!(u=s.n()).done;)(0,u.value)(n,r)}catch(t){s.e(t)}finally{s.f()}}(a,u,s,c,h),void 0!==e.IdentityMap.imap[h].collection&&0!==e.IdentityMap.imap[h].collection.length&&(function(t,n,r){var o,i=d(e.IdentityMap.imap[r].collection);try{for(i.s();!(o=i.n()).done;)(0,o.value)("".concat(r," ").concat(t),n)}catch(t){i.e(t)}finally{i.f()}}(u,s,h),!0))};var y;y=function(){function t(t,e,n){var r,o,i,a;this.pollingTime=null!=(r=t.pollingTime)?r:3e3,this.log=!(null==t.log||!t.log),this.ssl=t.ssl,this.location=null!=(o=t.location)?o:"notification-center",this.size=null!=(i=t.size)?i:100,this.protocolWithHost=t.protocolWithHost,this.allowedDisconnectionTime=null!=(a=t.allowedDisconnectionTime)?a:10,this.disconnectedForTooLong=t.disconnectedForTooLong,this.notificationCenter=e,this.reqOpts=n,this.syncTime=null,this.token=null,this.pollingInterval=null,this.disconnectedSinceTime=null,this.uuid=null,this.line=null}return t.prototype.setDisconnectedForTooLong=function(t){return this.disconnectedForTooLong=t},t.prototype.setLine=function(t){return this.line=t},t.prototype.setPollingTime=function(t){var e;if(this.pollingTime=t,!(null!=(e=this.line)?e.connected:void 0))return this.disconnect(),this.connect()},t.prototype.connect=function(){return this.check(),this.pollingInterval=setInterval((t=this,function(){var e;if(!(null!=(e=t.line)?e.connected:void 0))return t.check();t.disconnect()}),this.pollingTime);var t},t.prototype.disconnect=function(){return window.clearInterval(this.pollingInterval)},t.prototype.check=function(){var t,e;return(t=s("GET",this._getURL()+"?"+u.toURIParams(this._requestParams()),this.reqOpts)).onload=(e=this,function(t){var n,r,o,i,a;if(t.target.status>=200&&t.target.status<400){if(n=JSON.parse(t.target.response),e.disconnectedSinceTime=null,e.syncTime=n[1],0===(a=n[0]).length)return;for(r=0,o=a.length;r=500)return e._handleDisconnection()}),t.onerror=function(t){return function(){return t._handleDisconnection()}}(this),t.send()},t.prototype.fetchSyncTime=function(t){var e,n;return null==t&&(t={}),(e=s("GET",this._getURL()+"/sync-time",this.reqOpts)).onerror=(n=this,function(){if(null!=t.after)return n[t.after]()}),e.onload=function(e){return function(n){var r;if(n.target.status>=200&&n.target.status<400){if(r=JSON.parse(n.target.response),e.syncTime=r.sync_time,null!=t.after)return e[t.after]()}else if(n.target.status>=500&&null!=t.after)return e[t.after]()}}(this),e.send()},t.prototype._requestParams=function(){var t;return t={synced_at:this.syncTime},null!=this.token&&(t.token=this.token),null!=this.uuid&&(t.uuid=this.uuid),t},t.prototype._getURL=function(){var t,e,n,r;return e=(n=window.location.href.split("/"))[0],n[1],t=n[2],null!=this.protocolWithHost&&(e=(r=this.protocolWithHost.split("//"))[0],t=r[1]),null!=this.ssl&&(e=this.ssl?"https:":"http:"),e+"//"+t+"/"+this.location},t.prototype._handleDisconnection=function(){if(null==this.disconnectedSinceTime&&(this.disconnectedSinceTime=new Date),(new Date-this.disconnectedSinceTime)/1e3>this.allowedDisconnectionTime&&null!=this.disconnectedForTooLong)return this.disconnectedForTooLong(this.disconnectedSinceTime)},t}();const m=y;function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function w(t){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},w(t)}function S(t){var e=function(t,e){if("object"!=w(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=w(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==w(e)?e:String(e)}var x=function(){function t(e,n,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.cable=e,this.notificationCenter=n,this.wire=r,this.connected=!1,this.subscription=null}var e,n;return e=t,n=[{key:"connect",value:function(){var t=this;this.subscription=this.cable.subscriptions.create({channel:"Loco::NotificationCenterChannel"},{connected:function(){console.log("WS connected"),t.connected=!0,t.notificationCenter({loco:"connected"}),t.pong()},disconnected:function(){console.log("WS disconnected"),t.connected=!1,null!==t.wire&&(t.wire.uuid=null,t.wire.fetchSyncTime({after:"connect"})),t.notificationCenter({loco:"disconnected"})},rejected:function(){console.log("WS rejected"),t.notificationCenter({loco:"rejected"})},received:function(e){if(null!=e.loco){var n=function(t,e){var n=e.line,r=e.wire,o=e.processNotification,i=e.notificationCenter;if(!0===t.ping&&n.pong(),null!=r)return"string"==typeof t.sync_time&&(r.syncTime=t.sync_time),"string"==typeof t.uuid&&(console.log("uuid: ".concat(t.uuid)),r.uuid=t.uuid),"object"===b(t.notification)&&"Array"===t.notification.constructor.name&&o(t.notification,{log:r.log,notificationCenter:i}),"string"!=typeof t.idempotency_key||!l(t.idempotency_key)}(e.loco,{line:t,wire:t.wire,processNotification:g,notificationCenter:t.notificationCenter});if(!0!==n)return;delete e.loco}0!==Object.keys(e).length&&t.notificationCenter(e)}})}},{key:"send",value:function(t){this.subscription.send(t)}},{key:"pong",value:function(){var t=this;setTimeout((function(){return t.send({loco:{pong:!0}})}),3e3)}}],n&&function(t,e){for(var n=0;n