]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/3301'
authorTom Hughes <tom@compton.nu>
Tue, 22 Nov 2022 18:47:24 +0000 (18:47 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 22 Nov 2022 18:47:24 +0000 (18:47 +0000)
1  2 
Gemfile
Gemfile.lock
config/locales/en.yml
config/routes.rb
package.json
yarn.lock

diff --combined Gemfile
index 81ba4a9a36ea9216e0bcf755590586c0cfd6868a,7bad308b49bef847fa3c65b2e8a6bc17e1b2de1e..f7a3e502ed499d92ab8369d11912bf61f726572a
+++ b/Gemfile
@@@ -1,7 -1,7 +1,7 @@@
  source "https://rubygems.org"
  
  # Require rails
 -gem "rails", "7.0.4"
 +gem "rails", "~> 7.0.0"
  
  # Require json for multi_json
  gem "json"
@@@ -49,6 -49,7 +49,7 @@@ gem "cancancan
  gem "composite_primary_keys", "~> 14.0.0"
  gem "config"
  gem "delayed_job_active_record"
+ gem "frozen_record"
  gem "http_accept_language", "~> 2.1.1"
  gem "i18n-js", "~> 3.9.2"
  gem "oauth-plugin", ">= 0.5.1"
@@@ -76,7 -77,7 +77,7 @@@ gem "omniauth-rails_csrf_protection", "
  gem "omniauth-windowslive"
  
  # Doorkeeper for OAuth2
 -gem "doorkeeper", "~> 5.5.4"
 +gem "doorkeeper"
  gem "doorkeeper-i18n"
  
  # Markdown formatting support
diff --combined Gemfile.lock
index 4180c7d90977bc7c6c12dc608a88f98c3d04afc3,6e2c335eb2abdbef7025ebc392651cf63ffc95fe..1f2c1624839cf81a2680321464f1b09a5b4612d6
@@@ -1,7 -1,7 +1,7 @@@
  GEM
    remote: https://rubygems.org/
    specs:
 -    aasm (5.3.0)
 +    aasm (5.4.0)
        concurrent-ruby (~> 1.0)
      actioncable (7.0.4)
        actionpack (= 7.0.4)
@@@ -60,7 -60,7 +60,7 @@@
      activerecord (7.0.4)
        activemodel (= 7.0.4)
        activesupport (= 7.0.4)
 -    activerecord-import (1.4.0)
 +    activerecord-import (1.4.1)
        activerecord (>= 4.2)
      activestorage (7.0.4)
        actionpack (= 7.0.4)
      annotate (3.2.0)
        activerecord (>= 3.2, < 8.0)
        rake (>= 10.4, < 14.0)
 -    argon2 (2.1.1)
 +    argon2 (2.1.2)
        ffi (~> 1.14)
        ffi-compiler (~> 1.0)
      ast (2.4.2)
      autoprefixer-rails (10.4.7.0)
        execjs (~> 2)
      aws-eventstream (1.2.0)
 -    aws-partitions (1.628.0)
 -    aws-sdk-core (3.144.0)
 +    aws-partitions (1.664.0)
 +    aws-sdk-core (3.168.1)
        aws-eventstream (~> 1, >= 1.0.2)
 -      aws-partitions (~> 1, >= 1.525.0)
 -      aws-sigv4 (~> 1.1)
 +      aws-partitions (~> 1, >= 1.651.0)
 +      aws-sigv4 (~> 1.5)
        jmespath (~> 1, >= 1.6.1)
 -    aws-sdk-kms (1.58.0)
 -      aws-sdk-core (~> 3, >= 3.127.0)
 +    aws-sdk-kms (1.59.0)
 +      aws-sdk-core (~> 3, >= 3.165.0)
        aws-sigv4 (~> 1.1)
 -    aws-sdk-s3 (1.114.0)
 -      aws-sdk-core (~> 3, >= 3.127.0)
 +    aws-sdk-s3 (1.117.1)
 +      aws-sdk-core (~> 3, >= 3.165.0)
        aws-sdk-kms (~> 1)
        aws-sigv4 (~> 1.4)
 -    aws-sigv4 (1.5.1)
 +    aws-sigv4 (1.5.2)
        aws-eventstream (~> 1, >= 1.0.2)
      better_errors (2.9.1)
        coderay (>= 1.0.0)
        smart_properties
      binding_of_caller (1.0.0)
        debug_inspector (>= 0.0.1)
 -    bootsnap (1.13.0)
 +    bootsnap (1.14.0)
        msgpack (~> 1.2)
      bootstrap (5.1.3)
        autoprefixer-rails (>= 9.1.0)
      bootstrap_form (5.1.0)
        actionpack (>= 5.2)
        activemodel (>= 5.2)
 -    brakeman (5.3.1)
 +    brakeman (5.4.0)
      brotli (0.4.0)
      browser (5.3.1)
      builder (3.2.4)
      cancancan (3.4.0)
      canonical-rails (0.2.14)
        rails (>= 4.1, <= 7.1)
 -    capybara (3.37.1)
 +    capybara (3.38.0)
        addressable
        matrix
        mini_mime (>= 0.1.3)
      composite_primary_keys (14.0.4)
        activerecord (~> 7.0.2)
      concurrent-ruby (1.1.10)
 -    config (4.0.0)
 +    config (4.1.0)
        deep_merge (~> 1.2, >= 1.2.1)
        dry-validation (~> 1.0, >= 1.0.0)
 -    connection_pool (2.2.5)
 +    connection_pool (2.3.0)
      crack (0.4.5)
        rexml
      crass (1.0.6)
 -    dalli (3.2.2)
 +    dalli (3.2.3)
      debug_inspector (1.1.0)
      deep_merge (1.2.2)
 -    delayed_job (4.1.10)
 +    delayed_job (4.1.11)
        activesupport (>= 3.0, < 8.0)
      delayed_job_active_record (4.1.7)
        activerecord (>= 3.0, < 8.0)
        delayed_job (>= 3.0, < 5)
 -    digest (3.1.0)
      docile (1.4.0)
 -    doorkeeper (5.5.4)
 +    doorkeeper (5.6.0)
        railties (>= 5)
 -    doorkeeper-i18n (5.2.4)
 +    doorkeeper-i18n (5.2.5)
        doorkeeper (>= 5.2)
 -    dry-configurable (0.15.0)
 -      concurrent-ruby (~> 1.0)
 -      dry-core (~> 0.6)
 -    dry-container (0.10.1)
 -      concurrent-ruby (~> 1.0)
 -    dry-core (0.8.1)
 +    dry-configurable (1.0.1)
 +      dry-core (~> 1.0, < 2)
 +      zeitwerk (~> 2.6)
 +    dry-core (1.0.0)
        concurrent-ruby (~> 1.0)
 -    dry-inflector (0.3.0)
 +      zeitwerk (~> 2.6)
 +    dry-inflector (1.0.0)
      dry-initializer (3.1.1)
 -    dry-logic (1.2.0)
 +    dry-logic (1.4.0)
        concurrent-ruby (~> 1.0)
 -      dry-core (~> 0.5, >= 0.5)
 -    dry-schema (1.10.2)
 +      dry-core (~> 1.0, < 2)
 +      zeitwerk (~> 2.6)
 +    dry-schema (1.12.0)
        concurrent-ruby (~> 1.0)
 -      dry-configurable (~> 0.13, >= 0.13.0)
 -      dry-core (~> 0.5, >= 0.5)
 +      dry-configurable (~> 1.0, < 2)
 +      dry-core (~> 1.0, < 2)
        dry-initializer (~> 3.0)
 -      dry-logic (~> 1.0)
 -      dry-types (~> 1.5)
 -    dry-types (1.5.1)
 +      dry-logic (>= 1.4, < 2)
 +      dry-types (>= 1.7, < 2)
 +      zeitwerk (~> 2.6)
 +    dry-types (1.7.0)
        concurrent-ruby (~> 1.0)
 -      dry-container (~> 0.3)
 -      dry-core (~> 0.5, >= 0.5)
 -      dry-inflector (~> 0.1, >= 0.1.2)
 -      dry-logic (~> 1.0, >= 1.0.2)
 -    dry-validation (1.8.1)
 +      dry-core (~> 1.0, < 2)
 +      dry-inflector (~> 1.0, < 2)
 +      dry-logic (>= 1.4, < 2)
 +      zeitwerk (~> 2.6)
 +    dry-validation (1.10.0)
        concurrent-ruby (~> 1.0)
 -      dry-container (~> 0.7, >= 0.7.1)
 -      dry-core (~> 0.5, >= 0.5)
 +      dry-core (~> 1.0, < 2)
        dry-initializer (~> 3.0)
 -      dry-schema (~> 1.8, >= 1.8.0)
 -    erb_lint (0.2.0)
 +      dry-schema (>= 1.12, < 2)
 +      zeitwerk (~> 2.6)
 +    erb_lint (0.3.1)
        activesupport
        better_html (>= 2.0.1)
        parser (>= 2.7.1.4)
        smart_properties
      erubi (1.11.0)
      execjs (2.8.1)
 -    exifr (1.3.9)
 +    exifr (1.3.10)
      factory_bot (6.2.1)
        activesupport (>= 5.0.0)
      factory_bot_rails (6.2.0)
        factory_bot (~> 6.2.0)
        railties (>= 5.0.0)
 -    faraday (2.5.2)
 +    faraday (2.7.1)
        faraday-net_http (>= 2.0, < 3.1)
        ruby2_keywords (>= 0.0.4)
 -    faraday-net_http (3.0.0)
 +    faraday-net_http (3.0.2)
      ffi (1.15.5)
      ffi-compiler (1.0.1)
        ffi (>= 1.0.0)
        rake
      ffi-libarchive (1.1.3)
        ffi (~> 1.0)
+     frozen_record (0.26.0)
+       activemodel
      fspath (3.1.2)
      gd2-ffij (0.4.0)
        ffi (>= 1.0.0)
      image_processing (1.12.2)
        mini_magick (>= 4.9.5, < 5)
        ruby-vips (>= 2.0.17, < 3)
 -    image_size (3.0.2)
 +    image_size (3.2.0)
      in_threads (1.6.0)
      jbuilder (2.11.5)
        actionview (>= 5.0.0)
        activesupport (>= 5.0.0)
      jmespath (1.6.1)
 -    jquery-rails (4.5.0)
 +    jquery-rails (4.5.1)
        rails-dom-testing (>= 1, < 3)
        railties (>= 4.2.0)
        thor (>= 0.14, < 2.0)
      kgio (2.11.4)
      kramdown (2.4.0)
        rexml
 -    libxml-ruby (3.2.3)
 +    libxml-ruby (3.2.4)
      listen (3.7.1)
        rb-fsevent (~> 0.10, >= 0.10.3)
        rb-inotify (~> 0.9, >= 0.9.10)
      logstasher (2.1.5)
        activesupport (>= 5.2)
        request_store
 -    loofah (2.18.0)
 +    loofah (2.19.0)
        crass (~> 1.0.2)
        nokogiri (>= 1.5.9)
      mail (2.7.1)
      mini_mime (1.1.2)
      mini_portile2 (2.8.0)
      minitest (5.16.3)
 -    msgpack (1.5.6)
 +    msgpack (1.6.0)
      multi_json (1.15.0)
      multi_xml (0.6.0)
 -    net-imap (0.2.3)
 -      digest
 +    net-imap (0.3.1)
        net-protocol
 -      strscan
 -    net-pop (0.1.1)
 -      digest
 +    net-pop (0.1.2)
        net-protocol
 -      timeout
      net-protocol (0.1.3)
        timeout
 -    net-smtp (0.3.1)
 -      digest
 +    net-smtp (0.3.3)
        net-protocol
 -      timeout
      nio4r (2.5.8)
 -    nokogiri (1.13.8)
 +    nokogiri (1.13.9)
        mini_portile2 (~> 2.8.0)
        racc (~> 1.4)
      oauth (0.4.7)
        oauth (~> 0.4.4)
        oauth2 (>= 0.5.0)
        rack
 -    oauth2 (1.4.10)
 +    oauth2 (2.0.9)
        faraday (>= 0.17.3, < 3.0)
        jwt (>= 1.0, < 3.0)
 -      multi_json (~> 1.3)
        multi_xml (~> 0.5)
 -      rack (>= 1.2, < 3)
 +      rack (>= 1.2, < 4)
 +      snaky_hash (~> 2.0)
 +      version_gem (~> 1.1)
      omniauth (2.0.4)
        hashie (>= 3.4.6)
        rack (>= 1.6.2, < 3)
        rack-protection
      omniauth-facebook (9.0.0)
        omniauth-oauth2 (~> 1.2)
 -    omniauth-github (2.0.0)
 +    omniauth-github (2.0.1)
        omniauth (~> 2.0)
 -      omniauth-oauth2 (~> 1.7.1)
 -    omniauth-google-oauth2 (1.0.1)
 +      omniauth-oauth2 (~> 1.8)
 +    omniauth-google-oauth2 (1.1.1)
        jwt (>= 2.0)
 -      oauth2 (~> 1.1)
 +      oauth2 (~> 2.0.6)
        omniauth (~> 2.0)
 -      omniauth-oauth2 (~> 1.7.1)
 +      omniauth-oauth2 (~> 1.8.0)
      omniauth-mediawiki (0.0.4)
        jwt (~> 2.0)
        omniauth-oauth (~> 1.0)
      omniauth-oauth (1.2.0)
        oauth
        omniauth (>= 1.0, < 3)
 -    omniauth-oauth2 (1.7.3)
 +    omniauth-oauth2 (1.8.0)
        oauth2 (>= 1.4, < 3)
 -      omniauth (>= 1.9, < 3)
 +      omniauth (~> 2.0)
      omniauth-openid (2.0.1)
        omniauth (>= 1.0, < 3.0)
        rack-openid (~> 1.4.0)
      parallel (1.22.1)
      parser (3.1.2.1)
        ast (~> 2.4.1)
 -    pg (1.4.3)
 -    popper_js (2.11.5)
 +    pg (1.4.5)
 +    popper_js (2.11.6)
      progress (3.6.0)
      public_suffix (5.0.0)
      puma (5.6.5)
      rack-openid (1.4.2)
        rack (>= 1.1.0)
        ruby-openid (>= 2.1.8)
 -    rack-protection (2.2.2)
 +    rack-protection (3.0.3)
        rack
      rack-test (2.0.2)
        rack (>= 1.3)
        nokogiri (>= 1.6)
      rails-html-sanitizer (1.4.3)
        loofah (~> 2.3)
 -    rails-i18n (7.0.5)
 +    rails-i18n (7.0.6)
        i18n (>= 0.7, < 2)
        railties (>= 6.0.0, < 8)
      railties (7.0.4)
      rb-fsevent (0.11.2)
      rb-inotify (0.10.1)
        ffi (~> 1.0)
 -    regexp_parser (2.5.0)
 +    regexp_parser (2.6.1)
      request_store (1.5.1)
        rack (>= 1.4)
      rexml (3.2.5)
      rinku (2.0.6)
 -    rotp (6.2.0)
 -    rubocop (1.36.0)
 +    rotp (6.2.1)
 +    rubocop (1.39.0)
        json (~> 2.3)
        parallel (~> 1.10)
        parser (>= 3.1.2.1)
        rainbow (>= 2.2.2, < 4.0)
        regexp_parser (>= 1.8, < 3.0)
        rexml (>= 3.2.5, < 4.0)
 -      rubocop-ast (>= 1.20.1, < 2.0)
 +      rubocop-ast (>= 1.23.0, < 2.0)
        ruby-progressbar (~> 1.7)
        unicode-display_width (>= 1.4.0, < 3.0)
 -    rubocop-ast (1.21.0)
 +    rubocop-ast (1.23.0)
        parser (>= 3.1.1.0)
 -    rubocop-minitest (0.22.0)
 +    rubocop-minitest (0.23.2)
        rubocop (>= 0.90, < 2.0)
 -    rubocop-performance (1.14.3)
 +    rubocop-performance (1.15.1)
        rubocop (>= 1.7.0, < 2.0)
        rubocop-ast (>= 0.4.0)
 -    rubocop-rails (2.16.0)
 +    rubocop-rails (2.17.3)
        activesupport (>= 4.2.0)
        rack (>= 1.1)
        rubocop (>= 1.33.0, < 2.0)
        sprockets (> 3.0)
        sprockets-rails
        tilt
 -    secure_headers (6.4.0)
 -    selenium-webdriver (4.4.0)
 +    secure_headers (6.5.0)
 +    selenium-webdriver (4.6.1)
        childprocess (>= 0.5, < 5.0)
        rexml (~> 3.2, >= 3.2.5)
        rubyzip (>= 1.2.2, < 3.0)
      simplecov-lcov (0.8.0)
      simplecov_json_formatter (0.1.4)
      smart_properties (1.17.0)
 +    snaky_hash (2.0.1)
 +      hashie
 +      version_gem (~> 1.1, >= 1.1.1)
      sprockets (4.1.1)
        concurrent-ruby (~> 1.0)
        rack (> 1, < 3)
        actionpack (>= 5.2)
        activesupport (>= 5.2)
        sprockets (>= 3.0.0)
 -    strong_migrations (1.3.0)
 +    strong_migrations (1.4.0)
        activerecord (>= 5.2)
 -    strscan (3.0.4)
      terser (1.1.12)
        execjs (>= 0.3.0, < 3)
      thor (1.2.1)
      timeout (0.3.0)
      tzinfo (2.0.5)
        concurrent-ruby (~> 1.0)
 -    unicode-display_width (2.2.0)
 +    unicode-display_width (2.3.0)
      validates_email_format_of (1.7.2)
        i18n
      vendorer (0.2.0)
 +    version_gem (1.1.1)
      webmock (3.18.1)
        addressable (>= 2.8.0)
        crack (>= 0.3.2)
      websocket-extensions (0.1.5)
      xpath (3.2.0)
        nokogiri (~> 1.8)
 -    zeitwerk (2.6.0)
 +    zeitwerk (2.6.6)
  
  PLATFORMS
    ruby
@@@ -534,12 -538,13 +536,13 @@@ DEPENDENCIE
    dalli
    debug_inspector
    delayed_job_active_record
 -  doorkeeper (~> 5.5.4)
 +  doorkeeper
    doorkeeper-i18n
    erb_lint
    factory_bot_rails
    faraday
    ffi-libarchive
+   frozen_record
    gd2-ffij (>= 0.4.0)
    htmlentities
    http_accept_language (~> 2.1.1)
    r2 (~> 0.2.7)
    rack-cors
    rack-uri_sanitizer
 -  rails (= 7.0.4)
 +  rails (~> 7.0.0)
    rails-controller-testing
    rails-i18n (~> 7.0.0)
    rinku (>= 2.0.6)
diff --combined config/locales/en.yml
index 8a0651609751adf805bd55098d47a9b18b87063d,794330e6c4f3001ab2888831bfbad7095dac0060..6a32e29a2ac0de6be7cddf8e6ff6b3ea7201756b
@@@ -405,7 -405,6 +405,7 @@@ en
        wikimedia_commons_link: "The %{page} item on Wikimedia Commons"
        telephone_link: "Call %{phone_number}"
        colour_preview: "Colour %{colour_value} preview"
 +      email_link: "Email %{email}"
      note:
        title: "Note: %{id}"
        new_note: "New Note"
      index:
        title: "Changesets"
        title_user: "Changesets by %{user}"
 +      title_user_link_html: "Changesets by %{user_link}"
        title_friend: "Changesets by my friends"
        title_nearby: "Changesets by nearby users"
        empty: "No changesets found."
      help: Help
      about: About
      copyright: Copyright
+     communities: Communities
      community: Community
      community_blogs: "Community Blogs"
      community_blogs_title: "Blogs from members of the OpenStreetMap community"
        create account minute: Create an account. It only takes a minute.
        no account: Don't have an account?
        account not active: "Sorry, your account is not active yet.<br />Please use the link in the account confirmation email to activate your account, or <a href=\"%{reconfirm}\">request a new confirmation email</a>."
 -      account is suspended: Sorry, your account has been suspended due to suspicious activity.<br />Please contact <a href="%{webmaster}">support</a> if you wish to discuss this.
        auth failure: "Sorry, could not log in with those details."
        openid_logo_alt: "Log in with an OpenID"
        auth_providers:
        title: "Logout"
        heading: "Logout from OpenStreetMap"
        logout_button: "Logout"
 +    suspended_flash:
 +      suspended: Sorry, your account has been suspended due to suspicious activity.
 +      contact_support_html: Please contact %{support_link} if you wish to discuss this.
 +      support: support
    shared:
      markdown_help:
        title_html: Parsed with <a href="https://kramdown.gettalong.org/quickref.html">kramdown</a>
              <li>Make clear that the data is available under the Open Database License.</li>
            </ul>
          credit_3_1_html: |
 -         For the copyright notice, we have different requirements on how this should be 
 -         displayed, depending on how you are using our data. For example, different 
 -         rules apply on how to show the copyright notice depending on whether you have 
 -         created a browsable map, a printed map or a static image. Full details on the 
 -         requirements can be found in the 
 -         <a href="https://wiki.osmfoundation.org/wiki/Licence/Attribution_Guidelines">Attribution 
 -         Guidelines</a>. 
 +         For the copyright notice, we have different requirements on how this should be
 +         displayed, depending on how you are using our data. For example, different
 +         rules apply on how to show the copyright notice depending on whether you have
 +         created a browsable map, a printed map or a static image. Full details on the
 +         requirements can be found in the
 +         <a href="https://wiki.osmfoundation.org/wiki/Licence/Attribution_Guidelines">Attribution
 +         Guidelines</a>.
          credit_4_html: |
            To make clear that the data is available under the Open
            Database License, you may link to
            Just go to <a href='%{map_url}'>the map</a> and click the note icon:
            <span class='icon note'></span>. This will add a marker to the map, which you can move
            by dragging. Add your message, then click save, and other mappers will investigate.
+     communities:
+       title: Communities
+       lede_text: |
+         People from all over the world contribute to or use OpenStreetMap.
+         While many participate as individuals, others have formed communities.
+         These groups come in a range of sizes and represent geographies from small towns to large multi-country regions.
+         They can also be formal or informal.
+       local_chapters:
+         title: Local Chapters
+         about_text: |
+           Local Chapters are country-level or region-level groups that have taken the formal step of
+           establishing not-for-profit legal entities. They represent the area's map and mappers when
+           dealing with local government, business, and media. They have also formed an affiliation
+           with the OpenStreetMap Foundation (OSMF), giving them a link to the legal and copyright
+           governing body.
+         list_text: |
+           The following communities are formally established as Local Chapters:
+       other_groups:
+         title: Other Groups
+         about_html: |
+           There is no need to formally establish a group to the same extent as the Local Chapters.
+           Indeed many groups exist very sucessfully as an informal gathering of people or as a
+           community group. Anyone can set up or join these. Read more on the
+           <a href="https://wiki.openstreetmap.org/wiki/User_group">Communities wiki page</a>.
    traces:
      visibility:
        private: "Private (only shared as anonymous, unordered points)"
diff --combined config/routes.rb
index 727580cb99ebcfca0a74cf70b6f58578dccf4af6,2de4ab2acad7c2e31c2d99c20f7118fa05940304..be27698a562820113cc82ca68948642afa2e5988
@@@ -84,7 -84,7 +84,7 @@@ OpenStreetMap::Application.routes.draw 
      get "gpx/:id/data" => "api/traces#data", :as => :api_trace_data
  
      # Map notes API
 -    resources :notes, :except => [:new, :edit, :update], :constraints => { :id => /\d+/ }, :defaults => { :format => "xml" }, :controller => "api/notes" do
 +    resources :notes, :except => [:new, :edit, :update], :constraints => { :id => /\d+/ }, :controller => "api/notes" do
        collection do
          get "search"
          get "feed", :defaults => { :format => "rss" }
    get "/help" => "site#help"
    get "/about/:about_locale" => "site#about"
    get "/about" => "site#about"
+   get "/communities" => "site#communities"
    get "/history" => "changesets#index"
    get "/history/feed" => "changesets#feed", :defaults => { :format => :atom }
    get "/history/comments/feed" => "changeset_comments#index", :as => :changesets_comments_feed, :defaults => { :format => "rss" }
diff --combined package.json
index 7f78ab6ccaae0ddd67a604032d4411aa040c2e3e,07df29859ca847cf86546a83def21e9f8f0050ff..4de2e943e5451e4df0763e15c2e6c21fe306f8e3
@@@ -6,7 -6,8 +6,8 @@@
      "jquery-simulate": "^1.0.2",
      "js-cookie": "^3.0.0",
      "leaflet": "^1.8.0",
 -    "leaflet.locatecontrol": "^0.76.0",
 +    "leaflet.locatecontrol": "^0.78.0",
+     "osm-community-index": "^5.2.0",
      "qs": "^6.9.4"
    },
    "devDependencies": {
diff --combined yarn.lock
index 4d848697e794e4629ec7c328672544eb02cae1af,3ed0c35dd201bd703010dfa60631974aed0c32e3..65d2c5afbf11bc33d9b902b65aa33420531ad790
+++ b/yarn.lock
@@@ -2,10 -2,10 +2,10 @@@
  # yarn lockfile v1
  
  
 -"@eslint/eslintrc@^1.3.1":
 -  version "1.3.1"
 -  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d"
 -  integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==
 +"@eslint/eslintrc@^1.3.3":
 +  version "1.3.3"
 +  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95"
 +  integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==
    dependencies:
      ajv "^6.12.4"
      debug "^4.3.2"
      minimatch "^3.1.2"
      strip-json-comments "^3.1.1"
  
 -"@humanwhocodes/config-array@^0.10.4":
 -  version "0.10.4"
 -  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
 -  integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
 +"@humanwhocodes/config-array@^0.11.6":
 +  version "0.11.6"
 +  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b"
 +  integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==
    dependencies:
      "@humanwhocodes/object-schema" "^1.2.1"
      debug "^4.1.1"
      minimatch "^3.0.4"
  
 -"@humanwhocodes/gitignore-to-minimatch@^1.0.2":
 -  version "1.0.2"
 -  resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
 -  integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
 -
  "@humanwhocodes/module-importer@^1.0.1":
    version "1.0.1"
    resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
      "@nodelib/fs.stat" "2.0.5"
      run-parallel "^1.1.9"
  
 -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
 +"@nodelib/fs.stat@2.0.5":
    version "2.0.5"
    resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
    integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
  
 -"@nodelib/fs.walk@^1.2.3":
 +"@nodelib/fs.walk@^1.2.8":
    version "1.2.8"
    resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
    integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@@ -100,6 -105,11 +100,6 @@@ argparse@^2.0.1
    resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
    integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
  
 -array-union@^2.1.0:
 -  version "2.1.0"
 -  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
 -  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
 -
  balanced-match@^1.0.0:
    version "1.0.0"
    resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@@ -113,6 -123,13 +113,6 @@@ brace-expansion@^1.1.7
      balanced-match "^1.0.0"
      concat-map "0.0.1"
  
 -braces@^3.0.2:
 -  version "3.0.2"
 -  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
 -  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
 -  dependencies:
 -    fill-range "^7.0.1"
 -
  bs-custom-file-input@^1.3.4:
    version "1.3.4"
    resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8"
@@@ -177,6 -194,18 +177,18 @@@ deep-is@^0.1.3
    resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
    integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
  
+ diacritics@^1.3.0:
+   version "1.3.0"
+   resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1"
+   integrity sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==
+ dir-glob@^3.0.1:
+   version "3.0.1"
+   resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+   integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+   dependencies:
+     path-type "^4.0.0"
  doctrine@^3.0.0:
    version "3.0.0"
    resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
@@@ -205,9 -234,9 +217,9 @@@ eslint-utils@^3.0.0
      eslint-visitor-keys "^2.0.0"
  
  eslint-visitor-keys@^2.0.0:
-   version "2.0.0"
-   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
-   integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
+   version "2.1.0"
+   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+   integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
  
  eslint-visitor-keys@^3.3.0:
    version "3.3.0"
    integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
  
  eslint@^8.0.0:
 -  version "8.23.0"
 -  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040"
 -  integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==
 +  version "8.28.0"
 +  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e"
 +  integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==
    dependencies:
 -    "@eslint/eslintrc" "^1.3.1"
 -    "@humanwhocodes/config-array" "^0.10.4"
 -    "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
 +    "@eslint/eslintrc" "^1.3.3"
 +    "@humanwhocodes/config-array" "^0.11.6"
      "@humanwhocodes/module-importer" "^1.0.1"
 +    "@nodelib/fs.walk" "^1.2.8"
      ajv "^6.10.0"
      chalk "^4.0.0"
      cross-spawn "^7.0.2"
      fast-deep-equal "^3.1.3"
      file-entry-cache "^6.0.1"
      find-up "^5.0.0"
 -    functional-red-black-tree "^1.0.1"
 -    glob-parent "^6.0.1"
 +    glob-parent "^6.0.2"
      globals "^13.15.0"
 -    globby "^11.1.0"
      grapheme-splitter "^1.0.4"
      ignore "^5.2.0"
      import-fresh "^3.0.0"
      imurmurhash "^0.1.4"
      is-glob "^4.0.0"
 +    is-path-inside "^3.0.3"
 +    js-sdsl "^4.1.4"
      js-yaml "^4.1.0"
      json-stable-stringify-without-jsonify "^1.0.1"
      levn "^0.4.1"
@@@ -282,15 -311,10 +294,10 @@@ esrecurse@^4.3.0
    dependencies:
      estraverse "^5.2.0"
  
- estraverse@^5.1.0:
-   version "5.1.0"
-   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
-   integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
- estraverse@^5.2.0:
-   version "5.2.0"
-   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
-   integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+ estraverse@^5.1.0, estraverse@^5.2.0:
+   version "5.3.0"
+   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+   integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
  
  esutils@^2.0.2:
    version "2.0.3"
@@@ -302,6 -326,17 +309,17 @@@ fast-deep-equal@^3.1.1, fast-deep-equal
    resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
    integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
  
+ fast-glob@^3.2.9:
+   version "3.2.12"
+   resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
+   integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
+   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"
  fast-json-stable-stringify@^2.0.0:
    version "2.1.0"
    resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
  fast-levenshtein@^2.0.6:
    version "2.0.6"
    resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+   integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
  
  fastq@^1.6.0:
    version "1.13.0"
@@@ -326,6 -361,13 +344,6 @@@ file-entry-cache@^6.0.1
    dependencies:
      flat-cache "^3.0.4"
  
 -fill-range@^7.0.1:
 -  version "7.0.1"
 -  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
 -  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
 -  dependencies:
 -    to-regex-range "^5.0.1"
 -
  find-up@^5.0.0:
    version "5.0.0"
    resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
@@@ -343,30 -385,42 +361,35 @@@ flat-cache@^3.0.4
      rimraf "^3.0.2"
  
  flatted@^3.1.0:
-   version "3.1.0"
-   resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
-   integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
+   version "3.2.7"
+   resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
+   integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
  
  fs.realpath@^1.0.0:
    version "1.0.0"
    resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+   integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
  
  function-bind@^1.1.1:
    version "1.1.1"
    resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
    integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
  
+ functional-red-black-tree@^1.0.1:
+   version "1.0.1"
+   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+   integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
  get-intrinsic@^1.0.2:
-   version "1.1.1"
-   resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
-   integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+   version "1.1.2"
+   resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598"
+   integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==
    dependencies:
      function-bind "^1.1.1"
      has "^1.0.3"
-     has-symbols "^1.0.1"
+     has-symbols "^1.0.3"
  
 -glob-parent@^5.1.2:
 -  version "5.1.2"
 -  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
 -  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
 -  dependencies:
 -    is-glob "^4.0.1"
 -
 -glob-parent@^6.0.1:
 +glob-parent@^6.0.2:
    version "6.0.2"
    resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
    integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
      is-glob "^4.0.3"
  
  glob@^7.1.3:
-   version "7.1.6"
-   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
-   integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+   version "7.2.3"
+   resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
    dependencies:
      fs.realpath "^1.0.0"
      inflight "^1.0.4"
      inherits "2"
-     minimatch "^3.0.4"
+     minimatch "^3.1.1"
      once "^1.3.0"
      path-is-absolute "^1.0.0"
  
  globals@^13.15.0:
-   version "13.15.0"
-   resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac"
-   integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==
+   version "13.17.0"
+   resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"
+   integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==
    dependencies:
      type-fest "^0.20.2"
  
 -globby@^11.1.0:
 -  version "11.1.0"
 -  resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
 -  integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
 -  dependencies:
 -    array-union "^2.1.0"
 -    dir-glob "^3.0.1"
 -    fast-glob "^3.2.9"
 -    ignore "^5.2.0"
 -    merge2 "^1.4.1"
 -    slash "^3.0.0"
 -
  grapheme-splitter@^1.0.4:
    version "1.0.4"
    resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
@@@ -402,10 -468,10 +425,10 @@@ has-flag@^4.0.0
    resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
    integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
  
- has-symbols@^1.0.1:
-   version "1.0.2"
-   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
-   integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+ has-symbols@^1.0.3:
+   version "1.0.3"
+   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+   integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
  
  has@^1.0.3:
    version "1.0.3"
@@@ -420,9 -486,9 +443,9 @@@ ignore@^5.2.0
    integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
  
  import-fresh@^3.0.0, import-fresh@^3.2.1:
-   version "3.2.1"
-   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
-   integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
+   version "3.3.0"
+   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
    dependencies:
      parent-module "^1.0.0"
      resolve-from "^4.0.0"
  imurmurhash@^0.1.4:
    version "0.1.4"
    resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-   integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+   integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
  
  inflight@^1.0.4:
    version "1.0.6"
    resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-   integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+   integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
    dependencies:
      once "^1.3.0"
      wrappy "1"
@@@ -448,24 -514,24 +471,24 @@@ inherits@2
  is-extglob@^2.1.1:
    version "2.1.1"
    resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-   integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+   integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
  
 -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
 +is-glob@^4.0.0, is-glob@^4.0.3:
    version "4.0.3"
    resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
    integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
    dependencies:
      is-extglob "^2.1.1"
  
 -is-number@^7.0.0:
 -  version "7.0.0"
 -  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
 -  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 +is-path-inside@^3.0.3:
 +  version "3.0.3"
 +  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
 +  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
  
  isexe@^2.0.0:
    version "2.0.0"
    resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+   integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
  
  jquery-simulate@^1.0.2:
    version "1.0.2"
@@@ -477,11 -543,6 +500,11 @@@ js-cookie@^3.0.0
    resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
    integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
  
 +js-sdsl@^4.1.4:
 +  version "4.1.4"
 +  resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6"
 +  integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==
 +
  js-yaml@^4.1.0:
    version "4.1.0"
    resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@@@ -497,17 -558,17 +520,17 @@@ json-schema-traverse@^0.4.1
  json-stable-stringify-without-jsonify@^1.0.1:
    version "1.0.1"
    resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+   integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
  
 -leaflet.locatecontrol@^0.76.0:
 -  version "0.76.1"
 -  resolved "https://registry.yarnpkg.com/leaflet.locatecontrol/-/leaflet.locatecontrol-0.76.1.tgz#03eb8e98e0c54fee457f930a63624479a6177de0"
 -  integrity sha512-qA92Mxs2N1jgVx+EdmxtDrdzFD+f2llPJbqaKvmW1epZMSIvD6KNsBjpQYUIxz4XtJkOleqRSwWQcrm5P5NnYw==
 +leaflet.locatecontrol@^0.78.0:
 +  version "0.78.0"
 +  resolved "https://registry.yarnpkg.com/leaflet.locatecontrol/-/leaflet.locatecontrol-0.78.0.tgz#fa87ac57fa79d2797f8f3e673d9eb3f104688310"
 +  integrity sha512-3cElL7dBPOMkzHTOWUA/SLogrWrmfqYkbIXAikbRD0QcEef4jJRYYVhkcUUTprS2cOQzg2UiR475v8jemJiXRg==
  
  leaflet@^1.8.0:
 -  version "1.8.0"
 -  resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.8.0.tgz#4615db4a22a304e8e692cae9270b983b38a2055e"
 -  integrity sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA==
 +  version "1.9.3"
 +  resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.3.tgz#52ec436954964e2d3d39e0d433da4b2500d74414"
 +  integrity sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ==
  
  levn@^0.4.1:
    version "0.4.1"
@@@ -529,7 -590,20 +552,20 @@@ lodash.merge@^4.6.2
    resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
    integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
  
- minimatch@^3.0.4, minimatch@^3.1.2:
+ merge2@^1.3.0, merge2@^1.4.1:
+   version "1.4.1"
+   resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+   integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+ micromatch@^4.0.4:
+   version "4.0.5"
+   resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+   integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+   dependencies:
+     braces "^3.0.2"
+     picomatch "^2.3.1"
+ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
    version "3.1.2"
    resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
    integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@@ -544,17 -618,17 +580,17 @@@ ms@2.1.2
  natural-compare@^1.4.0:
    version "1.4.0"
    resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+   integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
  
  object-inspect@^1.9.0:
-   version "1.9.0"
-   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
-   integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
+   version "1.12.2"
+   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
+   integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
  
  once@^1.3.0:
    version "1.4.0"
    resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-   integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+   integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
    dependencies:
      wrappy "1"
  
@@@ -570,6 -644,13 +606,13 @@@ optionator@^0.9.1
      type-check "^0.4.0"
      word-wrap "^1.2.3"
  
+ osm-community-index@^5.2.0:
+   version "5.2.0"
+   resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.2.0.tgz#4e7eaa66aeb0c521b17a15820abb1a761b94e5c0"
+   integrity sha512-mBg9gZhEY7poK6qckmD7ND9W581V+ZVDSdSchx3vSofOCKjVi37+FhDnJIL0sm8GmDIFSItCb4hJtm2hg8G71A==
+   dependencies:
+     diacritics "^1.3.0"
  p-limit@^3.0.2:
    version "3.1.0"
    resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
@@@ -599,13 -680,23 +642,13 @@@ path-exists@^4.0.0
  path-is-absolute@^1.0.0:
    version "1.0.1"
    resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+   integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
  
  path-key@^3.1.0:
    version "3.1.1"
    resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
    integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
  
 -path-type@^4.0.0:
 -  version "4.0.0"
 -  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
 -  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
 -
 -picomatch@^2.3.1:
 -  version "2.3.1"
 -  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
 -  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 -
  prelude-ls@^1.2.1:
    version "1.2.1"
    resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@@ -678,6 -769,11 +721,6 @@@ side-channel@^1.0.4
      get-intrinsic "^1.0.2"
      object-inspect "^1.9.0"
  
 -slash@^3.0.0:
 -  version "3.0.0"
 -  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
 -  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 -
  strip-ansi@^6.0.1:
    version "6.0.1"
    resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@@ -691,17 -787,24 +734,17 @@@ strip-json-comments@^3.1.0, strip-json-
    integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
  
  supports-color@^7.1.0:
-   version "7.1.0"
-   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
-   integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+   version "7.2.0"
+   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+   integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
    dependencies:
      has-flag "^4.0.0"
  
  text-table@^0.2.0:
    version "0.2.0"
    resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+   integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
  
 -to-regex-range@^5.0.1:
 -  version "5.0.1"
 -  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
 -  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
 -  dependencies:
 -    is-number "^7.0.0"
 -
  type-check@^0.4.0, type-check@~0.4.0:
    version "0.4.0"
    resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@@ -715,9 -818,9 +758,9 @@@ type-fest@^0.20.2
    integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
  
  uri-js@^4.2.2:
-   version "4.2.2"
-   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
-   integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+   version "4.4.1"
+   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+   integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
    dependencies:
      punycode "^2.1.0"
  
@@@ -736,7 -839,7 +779,7 @@@ word-wrap@^1.2.3
  wrappy@1:
    version "1.0.2"
    resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+   integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
  
  yocto-queue@^0.1.0:
    version "0.1.0"