VYPR
Low severityNVD Advisory· Published Aug 13, 2025· Updated Apr 15, 2026

CVE-2025-55193

CVE-2025-55193

Description

Active Record connects classes to relational database tables. Prior to versions 7.1.5.2, 7.2.2.2, and 8.0.2.1, the ID passed to find or similar methods may be logged without escaping. If this is directly to the terminal it may include unescaped ANSI sequences. This issue has been patched in versions 7.1.5.2, 7.2.2.2, and 8.0.2.1.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
activerecordRubyGems
>= 8.0, < 8.0.2.18.0.2.1
activerecordRubyGems
>= 7.2, < 7.2.2.27.2.2.2
activerecordRubyGems
< 7.1.5.27.1.5.2

Patches

6
b0c813bc7b61

Preparing for 8.0.2.1 release

https://github.com/rails/railsJohn HawthornAug 13, 2025via osv
31 files changed · +1105 413
  • actioncable/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actioncable/lib/action_cable/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actioncable/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actioncable",
    -  "version": "8.0.200",
    +  "version": "8.0.201",
       "description": "WebSocket framework for Ruby on Rails.",
       "module": "app/assets/javascripts/actioncable.esm.js",
       "main": "app/assets/javascripts/actioncable.js",
    
  • actionmailbox/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actionmailbox/lib/action_mailbox/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionmailer/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actionmailer/lib/action_mailer/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionpack/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actionpack/lib/action_pack/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actiontext/lib/action_text/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actiontext",
    -  "version": "8.0.200",
    +  "version": "8.0.201",
       "description": "Edit and display rich text in Rails applications",
       "module": "app/assets/javascripts/actiontext.esm.js",
       "main": "app/assets/javascripts/actiontext.js",
    
  • actionview/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • actionview/lib/action_view/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activejob/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • activejob/lib/active_job/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activemodel/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • activemodel/lib/active_model/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activerecord/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
     *   Call inspect on ids in RecordNotFound error
     
         [CVE-2025-55193]
    
  • activerecord/lib/active_record/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
         Remove dangerous transformations
     
         [CVE-2025-24293]
    
  • activestorage/lib/active_storage/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/activestorage",
    -  "version": "8.0.200",
    +  "version": "8.0.201",
       "description": "Attach cloud and local files in Rails applications",
       "module": "app/assets/javascripts/activestorage.esm.js",
       "main": "app/assets/javascripts/activestorage.js",
    
  • activesupport/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • activesupport/lib/active_support/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • Gemfile.lock+53 53 modified
    @@ -1,65 +1,65 @@
     PATH
       remote: .
       specs:
    -    actioncable (8.0.2)
    -      actionpack (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    actioncable (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           nio4r (~> 2.0)
           websocket-driver (>= 0.6.1)
           zeitwerk (~> 2.6)
    -    actionmailbox (8.0.2)
    -      actionpack (= 8.0.2)
    -      activejob (= 8.0.2)
    -      activerecord (= 8.0.2)
    -      activestorage (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    actionmailbox (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      activejob (= 8.0.2.1)
    +      activerecord (= 8.0.2.1)
    +      activestorage (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           mail (>= 2.8.0)
    -    actionmailer (8.0.2)
    -      actionpack (= 8.0.2)
    -      actionview (= 8.0.2)
    -      activejob (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    actionmailer (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      actionview (= 8.0.2.1)
    +      activejob (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           mail (>= 2.8.0)
           rails-dom-testing (~> 2.2)
    -    actionpack (8.0.2)
    -      actionview (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    actionpack (8.0.2.1)
    +      actionview (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           nokogiri (>= 1.8.5)
           rack (>= 2.2.4)
           rack-session (>= 1.0.1)
           rack-test (>= 0.6.3)
           rails-dom-testing (~> 2.2)
           rails-html-sanitizer (~> 1.6)
           useragent (~> 0.16)
    -    actiontext (8.0.2)
    -      actionpack (= 8.0.2)
    -      activerecord (= 8.0.2)
    -      activestorage (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    actiontext (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      activerecord (= 8.0.2.1)
    +      activestorage (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           globalid (>= 0.6.0)
           nokogiri (>= 1.8.5)
    -    actionview (8.0.2)
    -      activesupport (= 8.0.2)
    +    actionview (8.0.2.1)
    +      activesupport (= 8.0.2.1)
           builder (~> 3.1)
           erubi (~> 1.11)
           rails-dom-testing (~> 2.2)
           rails-html-sanitizer (~> 1.6)
    -    activejob (8.0.2)
    -      activesupport (= 8.0.2)
    +    activejob (8.0.2.1)
    +      activesupport (= 8.0.2.1)
           globalid (>= 0.3.6)
    -    activemodel (8.0.2)
    -      activesupport (= 8.0.2)
    -    activerecord (8.0.2)
    -      activemodel (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    activemodel (8.0.2.1)
    +      activesupport (= 8.0.2.1)
    +    activerecord (8.0.2.1)
    +      activemodel (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           timeout (>= 0.4.0)
    -    activestorage (8.0.2)
    -      actionpack (= 8.0.2)
    -      activejob (= 8.0.2)
    -      activerecord (= 8.0.2)
    -      activesupport (= 8.0.2)
    +    activestorage (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      activejob (= 8.0.2.1)
    +      activerecord (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           marcel (~> 1.0)
    -    activesupport (8.0.2)
    +    activesupport (8.0.2.1)
           base64
           benchmark (>= 0.3)
           bigdecimal
    @@ -72,23 +72,23 @@ PATH
           securerandom (>= 0.3)
           tzinfo (~> 2.0, >= 2.0.5)
           uri (>= 0.13.1)
    -    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)
    +    rails (8.0.2.1)
    +      actioncable (= 8.0.2.1)
    +      actionmailbox (= 8.0.2.1)
    +      actionmailer (= 8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      actiontext (= 8.0.2.1)
    +      actionview (= 8.0.2.1)
    +      activejob (= 8.0.2.1)
    +      activemodel (= 8.0.2.1)
    +      activerecord (= 8.0.2.1)
    +      activestorage (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           bundler (>= 1.15.0)
    -      railties (= 8.0.2)
    -    railties (8.0.2)
    -      actionpack (= 8.0.2)
    -      activesupport (= 8.0.2)
    +      railties (= 8.0.2.1)
    +    railties (8.0.2.1)
    +      actionpack (= 8.0.2.1)
    +      activesupport (= 8.0.2.1)
           irb (~> 1.13)
           rackup (>= 1.0.0)
           rake (>= 12.2)
    
  • guides/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • RAILS_VERSION+1 1 modified
    @@ -1 +1 @@
    -8.0.2
    +8.0.2.1
    
  • railties/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 8.0.2.1 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 8.0.2 (March 12, 2025) ##
     
     *   No changes.
    
  • railties/lib/rails/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 8
         MINOR = 0
         TINY  = 2
    -    PRE   = nil
    +    PRE   = "1"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • yarn.lock+977 344 modified
    @@ -3,42 +3,44 @@
     
     
     "@babel/code-frame@^7.10.4":
    -  version "7.22.5"
    -  resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz"
    -  integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
    +  version "7.25.9"
    +  resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz"
    +  integrity sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==
       dependencies:
    -    "@babel/highlight" "^7.22.5"
    +    "@babel/highlight" "^7.25.9"
    +    picocolors "^1.0.0"
     
    -"@babel/helper-validator-identifier@^7.22.5":
    -  version "7.22.5"
    -  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz"
    -  integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
    +"@babel/helper-validator-identifier@^7.25.9":
    +  version "7.25.9"
    +  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz"
    +  integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
     
    -"@babel/highlight@^7.22.5":
    -  version "7.22.5"
    -  resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz"
    -  integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
    +"@babel/highlight@^7.25.9":
    +  version "7.25.9"
    +  resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz"
    +  integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==
       dependencies:
    -    "@babel/helper-validator-identifier" "^7.22.5"
    -    chalk "^2.0.0"
    +    "@babel/helper-validator-identifier" "^7.25.9"
    +    chalk "^2.4.2"
         js-tokens "^4.0.0"
    +    picocolors "^1.0.0"
     
     "@colors/colors@1.5.0":
       version "1.5.0"
       resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz"
       integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
     
     "@eslint-community/eslint-utils@^4.2.0":
    -  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==
       dependencies:
    -    eslint-visitor-keys "^3.3.0"
    +    eslint-visitor-keys "^3.4.3"
     
     "@eslint-community/regexpp@^4.6.1":
    -  version "4.11.1"
    -  resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz"
    -  integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==
    +  version "4.12.1"
    +  resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz"
    +  integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
     
     "@eslint/eslintrc@^2.1.4":
       version "2.1.4"
    @@ -79,10 +81,45 @@
       resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz"
       integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
     
    +"@jridgewell/gen-mapping@^0.3.5":
    +  version "0.3.5"
    +  resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
    +  integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
    +  dependencies:
    +    "@jridgewell/set-array" "^1.2.1"
    +    "@jridgewell/sourcemap-codec" "^1.4.10"
    +    "@jridgewell/trace-mapping" "^0.3.24"
    +
    +"@jridgewell/resolve-uri@^3.1.0":
    +  version "3.1.2"
    +  resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
    +  integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
    +
    +"@jridgewell/set-array@^1.2.1":
    +  version "1.2.1"
    +  resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
    +  integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
    +
     "@jridgewell/source-map@^0.3.3":
    -  version "0.3.4"
    -  resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.4.tgz"
    -  integrity sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw==
    +  version "0.3.6"
    +  resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz"
    +  integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
    +  dependencies:
    +    "@jridgewell/gen-mapping" "^0.3.5"
    +    "@jridgewell/trace-mapping" "^0.3.25"
    +
    +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
    +  version "1.5.0"
    +  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
    +  integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
    +
    +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
    +  version "0.3.25"
    +  resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
    +  integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
    +  dependencies:
    +    "@jridgewell/resolve-uri" "^3.1.0"
    +    "@jridgewell/sourcemap-codec" "^1.4.14"
     
     "@nodelib/fs.scandir@2.1.5":
       version "2.1.5"
    @@ -105,18 +142,18 @@
         "@nodelib/fs.scandir" "2.1.5"
         fastq "^1.6.0"
     
    -"@rails/actioncable@file:/workspaces/rails/actioncable":
    -  version "8.0.200"
    +"@rails/actioncable@file:/Users/jhawthorn/src/rails/actioncable":
    +  version "8.0.201"
       resolved "file:actioncable"
     
    -"@rails/actiontext@file:/workspaces/rails/actiontext":
    -  version "8.0.200"
    +"@rails/actiontext@file:/Users/jhawthorn/src/rails/actiontext":
    +  version "8.0.201"
       resolved "file:actiontext"
       dependencies:
         "@rails/activestorage" ">= 8.0.0-alpha"
     
    -"@rails/activestorage@>= 8.0.0-alpha", "@rails/activestorage@file:/workspaces/rails/activestorage":
    -  version "8.0.200"
    +"@rails/activestorage@>= 8.0.0-alpha", "@rails/activestorage@file:/Users/jhawthorn/src/rails/activestorage":
    +  version "8.0.201"
       resolved "file:activestorage"
       dependencies:
         spark-md5 "^3.0.1"
    @@ -160,15 +197,10 @@
       resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz"
       integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
     
    -"@types/cookie@^0.4.1":
    -  version "0.4.1"
    -  resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz"
    -  integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
    -
     "@types/cors@^2.8.12":
    -  version "2.8.17"
    -  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz"
    -  integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==
    +  version "2.8.19"
    +  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz"
    +  integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
       dependencies:
         "@types/node" "*"
     
    @@ -183,9 +215,11 @@
       integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
     
     "@types/node@*", "@types/node@>=10.0.0":
    -  version "20.3.2"
    -  resolved "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz"
    -  integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==
    +  version "20.14.2"
    +  resolved "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz"
    +  integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==
    +  dependencies:
    +    undici-types "~5.26.4"
     
     "@types/resolve@1.17.1":
       version "1.17.1"
    @@ -194,10 +228,15 @@
       dependencies:
         "@types/node" "*"
     
    +"@types/trusted-types@^2.0.7":
    +  version "2.0.7"
    +  resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
    +  integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
    +
     "@ungap/structured-clone@^1.2.0":
    -  version "1.2.0"
    -  resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
    -  integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
    +  version "1.3.0"
    +  resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
    +  integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
     
     accepts@~1.3.4:
       version "1.3.8"
    @@ -207,15 +246,37 @@ accepts@~1.3.4:
         mime-types "~2.1.34"
         negotiator "0.6.3"
     
    +acorn-jsx@^3.0.0:
    +  version "3.0.1"
    +  resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz"
    +  integrity sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==
    +  dependencies:
    +    acorn "^3.0.4"
    +
     acorn-jsx@^5.3.2:
       version "5.3.2"
       resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
       integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
     
    -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.8.2, acorn@^8.9.0:
    -  version "8.12.1"
    -  resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz"
    -  integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
    +acorn@^3.0.4:
    +  version "3.3.0"
    +  resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
    +  integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==
    +
    +acorn@^5.5.0:
    +  version "5.7.4"
    +  resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz"
    +  integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
    +
    +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0:
    +  version "8.15.0"
    +  resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
    +  integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
    +
    +acorn@^8.8.2:
    +  version "8.13.0"
    +  resolved "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz"
    +  integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==
     
     adm-zip@~0.4.3:
       version "0.4.16"
    @@ -236,6 +297,31 @@ agent-base@6:
       dependencies:
         debug "4"
     
    +ajv-keywords@^2.1.0:
    +  version "2.1.1"
    +  resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz"
    +  integrity sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==
    +
    +ajv@^5.0.0, ajv@^5.2.3:
    +  version "5.5.2"
    +  resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
    +  integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    +  dependencies:
    +    co "^4.6.0"
    +    fast-deep-equal "^1.0.0"
    +    fast-json-stable-stringify "^2.0.0"
    +    json-schema-traverse "^0.3.0"
    +
    +ajv@^5.3.0:
    +  version "5.5.2"
    +  resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
    +  integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    +  dependencies:
    +    co "^4.6.0"
    +    fast-deep-equal "^1.0.0"
    +    fast-json-stable-stringify "^2.0.0"
    +    json-schema-traverse "^0.3.0"
    +
     ajv@^6.12.3, ajv@^6.12.4:
       version "6.12.6"
       resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
    @@ -246,19 +332,46 @@ ajv@^6.12.3, ajv@^6.12.4:
         json-schema-traverse "^0.4.1"
         uri-js "^4.2.2"
     
    +ansi-escapes@^3.0.0:
    +  version "3.2.0"
    +  resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz"
    +  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
    +
    +ansi-regex@^2.0.0:
    +  version "2.1.1"
    +  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
    +  integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
    +
    +ansi-regex@^3.0.0:
    +  version "3.0.1"
    +  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz"
    +  integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
    +
     ansi-regex@^5.0.1:
       version "5.0.1"
       resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
       integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
     
    +ansi-styles@^2.2.1:
    +  version "2.2.1"
    +  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
    +  integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
    +
     ansi-styles@^3.2.1:
       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==
       dependencies:
         color-convert "^1.9.0"
     
    -ansi-styles@^4.0.0, ansi-styles@^4.1.0:
    +ansi-styles@^4.0.0:
    +  version "4.3.0"
    +  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
    +  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
    +  dependencies:
    +    color-convert "^2.0.1"
    +
    +ansi-styles@^4.1.0:
       version "4.3.0"
       resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
       integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
    @@ -302,6 +415,13 @@ archiver@^3.0.0:
         tar-stream "^2.1.0"
         zip-stream "^2.1.2"
     
    +argparse@^1.0.7:
    +  version "1.0.10"
    +  resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
    +  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
    +  dependencies:
    +    sprintf-js "~1.0.2"
    +
     argparse@^2.0.1:
       version "2.0.1"
       resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
    @@ -316,26 +436,28 @@ array-buffer-byte-length@^1.0.1:
         is-array-buffer "^3.0.4"
     
     array-includes@^3.1.7:
    -  version "3.1.7"
    -  resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz"
    -  integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==
    +  version "3.1.8"
    +  resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz"
    +  integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
       dependencies:
    -    call-bind "^1.0.2"
    -    define-properties "^1.2.0"
    -    es-abstract "^1.22.1"
    -    get-intrinsic "^1.2.1"
    +    call-bind "^1.0.7"
    +    define-properties "^1.2.1"
    +    es-abstract "^1.23.2"
    +    es-object-atoms "^1.0.0"
    +    get-intrinsic "^1.2.4"
         is-string "^1.0.7"
     
     array.prototype.findlastindex@^1.2.3:
    -  version "1.2.3"
    -  resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz"
    -  integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==
    +  version "1.2.5"
    +  resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz"
    +  integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
       dependencies:
    -    call-bind "^1.0.2"
    -    define-properties "^1.2.0"
    -    es-abstract "^1.22.1"
    -    es-shim-unscopables "^1.0.0"
    -    get-intrinsic "^1.2.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"
     
     array.prototype.flat@^1.3.2:
       version "1.3.2"
    @@ -408,9 +530,18 @@ aws-sign2@~0.7.0:
       integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
     
     aws4@^1.8.0:
    -  version "1.12.0"
    -  resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"
    -  integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
    +  version "1.13.0"
    +  resolved "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz"
    +  integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==
    +
    +babel-code-frame@^6.22.0:
    +  version "6.26.0"
    +  resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"
    +  integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==
    +  dependencies:
    +    chalk "^1.1.3"
    +    esutils "^2.0.2"
    +    js-tokens "^3.0.2"
     
     balanced-match@^1.0.0:
       version "1.0.2"
    @@ -435,9 +566,9 @@ bcrypt-pbkdf@^1.0.0:
         tweetnacl "^0.14.3"
     
     binary-extensions@^2.0.0:
    -  version "2.2.0"
    -  resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
    -  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
    +  version "2.3.0"
    +  resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
    +  integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
     
     bl@^4.0.3:
       version "4.1.0"
    @@ -474,12 +605,19 @@ brace-expansion@^1.1.7:
         balanced-match "^1.0.0"
         concat-map "0.0.1"
     
    -braces@^3.0.2, braces@~3.0.2:
    -  version "3.0.2"
    -  resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
    -  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
    +braces@^3.0.2:
    +  version "3.0.3"
    +  resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
    +  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
    +  dependencies:
    +    fill-range "^7.1.1"
    +
    +braces@~3.0.2:
    +  version "3.0.3"
    +  resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
    +  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
       dependencies:
    -    fill-range "^7.0.1"
    +    fill-range "^7.1.1"
     
     buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
       version "0.2.13"
    @@ -491,7 +629,15 @@ buffer-from@^1.0.0:
       resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
       integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
     
    -buffer@^5.1.0, buffer@^5.5.0:
    +buffer@^5.1.0:
    +  version "5.7.1"
    +  resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
    +  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
    +  dependencies:
    +    base64-js "^1.3.1"
    +    ieee754 "^1.1.13"
    +
    +buffer@^5.5.0:
       version "5.7.1"
       resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
       integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
    @@ -509,15 +655,7 @@ bytes@3.1.2:
       resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
       integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
     
    -call-bind@^1.0.2:
    -  version "1.0.2"
    -  resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
    -  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
    -  dependencies:
    -    function-bind "^1.1.1"
    -    get-intrinsic "^1.0.2"
    -
    -call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
    +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
       version "1.0.7"
       resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz"
       integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
    @@ -528,6 +666,18 @@ call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
         get-intrinsic "^1.2.4"
         set-function-length "^1.2.1"
     
    +caller-path@^0.1.0:
    +  version "0.1.0"
    +  resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz"
    +  integrity sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==
    +  dependencies:
    +    callsites "^0.2.0"
    +
    +callsites@^0.2.0:
    +  version "0.2.0"
    +  resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz"
    +  integrity sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==
    +
     callsites@^3.0.0:
       version "3.1.0"
       resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
    @@ -538,7 +688,18 @@ caseless@~0.12.0:
       resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
       integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
     
    -chalk@^2.0.0:
    +chalk@^1.1.3:
    +  version "1.1.3"
    +  resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
    +  integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
    +  dependencies:
    +    ansi-styles "^2.2.1"
    +    escape-string-regexp "^1.0.2"
    +    has-ansi "^2.0.0"
    +    strip-ansi "^3.0.0"
    +    supports-color "^2.0.0"
    +
    +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
       version "2.4.2"
       resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
       integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
    @@ -555,6 +716,11 @@ chalk@^4.0.0:
         ansi-styles "^4.1.0"
         supports-color "^7.1.0"
     
    +chardet@^0.4.0:
    +  version "0.4.2"
    +  resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz"
    +  integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==
    +
     chokidar@^3.5.1:
       version "3.6.0"
       resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
    @@ -570,6 +736,23 @@ chokidar@^3.5.1:
       optionalDependencies:
         fsevents "~2.3.2"
     
    +circular-json@^0.3.1:
    +  version "0.3.3"
    +  resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz"
    +  integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
    +
    +cli-cursor@^2.1.0:
    +  version "2.1.0"
    +  resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"
    +  integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==
    +  dependencies:
    +    restore-cursor "^2.0.0"
    +
    +cli-width@^2.0.0:
    +  version "2.2.1"
    +  resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz"
    +  integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
    +
     cliui@^7.0.2:
       version "7.0.4"
       resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
    @@ -579,6 +762,11 @@ cliui@^7.0.2:
         strip-ansi "^6.0.0"
         wrap-ansi "^7.0.0"
     
    +co@^4.6.0:
    +  version "4.6.0"
    +  resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
    +  integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
    +
     color-convert@^1.9.0:
       version "1.9.3"
       resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
    @@ -640,6 +828,16 @@ concat-map@0.0.1:
       resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
       integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
     
    +concat-stream@^1.6.0:
    +  version "1.6.2"
    +  resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
    +  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
    +  dependencies:
    +    buffer-from "^1.0.0"
    +    inherits "^2.0.3"
    +    readable-stream "^2.2.2"
    +    typedarray "^0.0.6"
    +
     connect@^3.7.0:
       version "3.7.0"
       resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"
    @@ -655,10 +853,10 @@ content-type@~1.0.5:
       resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
       integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
     
    -cookie@~0.4.1:
    -  version "0.4.2"
    -  resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
    -  integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
    +cookie@~0.7.2:
    +  version "0.7.2"
    +  resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz"
    +  integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
     
     core-util-is@~1.0.0:
       version "1.0.3"
    @@ -693,10 +891,19 @@ crc32-stream@^3.0.1:
         crc "^3.4.4"
         readable-stream "^3.4.0"
     
    +cross-spawn@^5.1.0:
    +  version "5.1.0"
    +  resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz"
    +  integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==
    +  dependencies:
    +    lru-cache "^4.0.1"
    +    shebang-command "^1.2.0"
    +    which "^1.2.9"
    +
     cross-spawn@^7.0.2:
    -  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==
       dependencies:
         path-key "^3.1.0"
         shebang-command "^2.0.0"
    @@ -760,12 +967,40 @@ debug@^3.2.7:
       dependencies:
         ms "^2.1.1"
     
    -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4, debug@4:
    -  version "4.3.4"
    -  resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
    -  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
    +debug@^4.3.1:
    +  version "4.4.1"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz"
    +  integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@^4.3.2, debug@^4.3.4:
    +  version "4.4.1"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz"
    +  integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
       dependencies:
    -    ms "2.1.2"
    +    ms "^2.1.3"
    +
    +debug@~4.3.1:
    +  version "4.3.7"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    +  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@~4.3.2:
    +  version "4.3.7"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    +  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@~4.3.4:
    +  version "4.3.7"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    +  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    +  dependencies:
    +    ms "^2.1.3"
     
     debug@2.6.9:
       version "2.6.9"
    @@ -774,7 +1009,14 @@ debug@2.6.9:
       dependencies:
         ms "2.0.0"
     
    -deep-is@^0.1.3:
    +debug@4:
    +  version "4.3.5"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz"
    +  integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
    +  dependencies:
    +    ms "2.1.2"
    +
    +deep-is@^0.1.3, deep-is@~0.1.3:
       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==
    @@ -793,15 +1035,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
         es-errors "^1.3.0"
         gopd "^1.0.1"
     
    -define-properties@^1.1.3, define-properties@^1.2.0:
    -  version "1.2.0"
    -  resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz"
    -  integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
    -  dependencies:
    -    has-property-descriptors "^1.0.0"
    -    object-keys "^1.1.1"
    -
    -define-properties@^1.2.1:
    +define-properties@^1.2.0, define-properties@^1.2.1:
       version "1.2.1"
       resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
       integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
    @@ -854,6 +1088,13 @@ dom-serialize@^2.2.1:
         extend "^3.0.0"
         void-elements "^2.0.0"
     
    +dompurify@^3.2.3:
    +  version "3.2.3"
    +  resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz"
    +  integrity sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==
    +  optionalDependencies:
    +    "@types/trusted-types" "^2.0.7"
    +
     ecc-jsbn@~0.1.1:
       version "0.1.2"
       resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
    @@ -889,17 +1130,16 @@ engine.io-parser@~5.2.1:
       resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz"
       integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==
     
    -engine.io@~6.5.2:
    -  version "6.5.5"
    -  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz"
    -  integrity sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==
    +engine.io@~6.6.0:
    +  version "6.6.4"
    +  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz"
    +  integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==
       dependencies:
    -    "@types/cookie" "^0.4.1"
         "@types/cors" "^2.8.12"
         "@types/node" ">=10.0.0"
         accepts "~1.3.4"
         base64id "2.0.0"
    -    cookie "~0.4.1"
    +    cookie "~0.7.2"
         cors "~2.8.5"
         debug "~4.3.1"
         engine.io-parser "~5.2.1"
    @@ -910,7 +1150,7 @@ ent@~2.2.0:
       resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz"
       integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==
     
    -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0:
    +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2:
       version "1.23.3"
       resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz"
       integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
    @@ -990,12 +1230,12 @@ es-set-tostringtag@^2.0.3:
         has-tostringtag "^1.0.2"
         hasown "^2.0.1"
     
    -es-shim-unscopables@^1.0.0:
    -  version "1.0.0"
    -  resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
    -  integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==
    +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
    +  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==
       dependencies:
    -    has "^1.0.3"
    +    hasown "^2.0.0"
     
     es-to-primitive@^1.2.1:
       version "1.2.1"
    @@ -1028,7 +1268,7 @@ escape-html@~1.0.3:
       resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
       integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
     
    -escape-string-regexp@^1.0.5:
    +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
       version "1.0.5"
       resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
       integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
    @@ -1048,16 +1288,16 @@ eslint-import-resolver-node@^0.3.9:
         resolve "^1.22.4"
     
     eslint-module-utils@^2.8.0:
    -  version "2.8.0"
    -  resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz"
    -  integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==
    +  version "2.8.1"
    +  resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz"
    +  integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==
       dependencies:
         debug "^3.2.7"
     
     eslint-plugin-import@^2.23.4, eslint-plugin-import@^2.29.0:
    -  version "2.29.0"
    -  resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz"
    -  integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==
    +  version "2.29.1"
    +  resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz"
    +  integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
       dependencies:
         array-includes "^3.1.7"
         array.prototype.findlastindex "^1.2.3"
    @@ -1075,7 +1315,15 @@ eslint-plugin-import@^2.23.4, eslint-plugin-import@^2.29.0:
         object.groupby "^1.0.1"
         object.values "^1.1.7"
         semver "^6.3.1"
    -    tsconfig-paths "^3.14.2"
    +    tsconfig-paths "^3.15.0"
    +
    +eslint-scope@^3.7.1:
    +  version "3.7.3"
    +  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz"
    +  integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==
    +  dependencies:
    +    esrecurse "^4.1.0"
    +    estraverse "^4.1.1"
     
     eslint-scope@^7.2.2:
       version "7.2.2"
    @@ -1085,12 +1333,61 @@ eslint-scope@^7.2.2:
         esrecurse "^4.3.0"
         estraverse "^5.2.0"
     
    -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
    +eslint-visitor-keys@^1.0.0:
    +  version "1.3.0"
    +  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
    +  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
    +
    +eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
       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==
     
    -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", eslint@^4.19.1, "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.40.0:
    +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", eslint@^4.19.1:
    +  version "4.19.1"
    +  resolved "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz"
    +  integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==
    +  dependencies:
    +    ajv "^5.3.0"
    +    babel-code-frame "^6.22.0"
    +    chalk "^2.1.0"
    +    concat-stream "^1.6.0"
    +    cross-spawn "^5.1.0"
    +    debug "^3.1.0"
    +    doctrine "^2.1.0"
    +    eslint-scope "^3.7.1"
    +    eslint-visitor-keys "^1.0.0"
    +    espree "^3.5.4"
    +    esquery "^1.0.0"
    +    esutils "^2.0.2"
    +    file-entry-cache "^2.0.0"
    +    functional-red-black-tree "^1.0.1"
    +    glob "^7.1.2"
    +    globals "^11.0.1"
    +    ignore "^3.3.3"
    +    imurmurhash "^0.1.4"
    +    inquirer "^3.0.6"
    +    is-resolvable "^1.0.0"
    +    js-yaml "^3.9.1"
    +    json-stable-stringify-without-jsonify "^1.0.1"
    +    levn "^0.3.0"
    +    lodash "^4.17.4"
    +    minimatch "^3.0.2"
    +    mkdirp "^0.5.1"
    +    natural-compare "^1.4.0"
    +    optionator "^0.8.2"
    +    path-is-inside "^1.0.2"
    +    pluralize "^7.0.0"
    +    progress "^2.0.0"
    +    regexpp "^1.0.1"
    +    require-uncached "^1.0.3"
    +    semver "^5.3.0"
    +    strip-ansi "^4.0.0"
    +    strip-json-comments "~2.0.1"
    +    table "4.0.2"
    +    text-table "~0.2.0"
    +
    +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.40.0:
       version "8.57.1"
       resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz"
       integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
    @@ -1134,7 +1431,24 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
         strip-ansi "^6.0.1"
         text-table "^0.2.0"
     
    -espree@^9.6.0, espree@^9.6.1:
    +espree@^3.5.4:
    +  version "3.5.4"
    +  resolved "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz"
    +  integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==
    +  dependencies:
    +    acorn "^5.5.0"
    +    acorn-jsx "^3.0.0"
    +
    +espree@^9.6.0:
    +  version "9.6.1"
    +  resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz"
    +  integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
    +  dependencies:
    +    acorn "^8.9.0"
    +    acorn-jsx "^5.3.2"
    +    eslint-visitor-keys "^3.4.1"
    +
    +espree@^9.6.1:
       version "9.6.1"
       resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz"
       integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
    @@ -1143,21 +1457,36 @@ espree@^9.6.0, espree@^9.6.1:
         acorn-jsx "^5.3.2"
         eslint-visitor-keys "^3.4.1"
     
    -esquery@^1.4.2:
    +esprima@^4.0.0:
    +  version "4.0.1"
    +  resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
    +  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
    +
    +esquery@^1.0.0, esquery@^1.4.2:
       version "1.5.0"
       resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
       integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
       dependencies:
         estraverse "^5.1.0"
     
    -esrecurse@^4.3.0:
    +esrecurse@^4.1.0, esrecurse@^4.3.0:
       version "4.3.0"
       resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
       integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
       dependencies:
         estraverse "^5.2.0"
     
    -estraverse@^5.1.0, estraverse@^5.2.0:
    +estraverse@^4.1.1:
    +  version "4.3.0"
    +  resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
    +  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
    +
    +estraverse@^5.1.0:
    +  version "5.3.0"
    +  resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
    +  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
    +
    +estraverse@^5.2.0:
       version "5.3.0"
       resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
       integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
    @@ -1187,11 +1516,25 @@ extend@^3.0.0, extend@~3.0.2:
       resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
       integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
     
    +external-editor@^2.0.4:
    +  version "2.2.0"
    +  resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz"
    +  integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
    +  dependencies:
    +    chardet "^0.4.0"
    +    iconv-lite "^0.4.17"
    +    tmp "^0.0.33"
    +
     extsprintf@^1.2.0, extsprintf@1.3.0:
       version "1.3.0"
       resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
       integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
     
    +fast-deep-equal@^1.0.0:
    +  version "1.1.0"
    +  resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz"
    +  integrity sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==
    +
     fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
       version "3.1.3"
       resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
    @@ -1202,29 +1545,44 @@ fast-json-stable-stringify@^2.0.0:
       resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
       integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
     
    -fast-levenshtein@^2.0.6:
    +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
       version "2.0.6"
       resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
       integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
     
     fastq@^1.6.0:
    -  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==
       dependencies:
         reusify "^1.0.4"
     
    +figures@^2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz"
    +  integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
    +  dependencies:
    +    escape-string-regexp "^1.0.5"
    +
    +file-entry-cache@^2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz"
    +  integrity sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==
    +  dependencies:
    +    flat-cache "^1.2.1"
    +    object-assign "^4.0.1"
    +
     file-entry-cache@^6.0.1:
       version "6.0.1"
       resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
       integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
       dependencies:
         flat-cache "^3.0.4"
     
    -fill-range@^7.0.1:
    -  version "7.0.1"
    -  resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
    -  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
    +fill-range@^7.1.1:
    +  version "7.1.1"
    +  resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
    +  integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
       dependencies:
         to-regex-range "^5.0.1"
     
    @@ -1249,23 +1607,34 @@ find-up@^5.0.0:
         locate-path "^6.0.0"
         path-exists "^4.0.0"
     
    +flat-cache@^1.2.1:
    +  version "1.3.4"
    +  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz"
    +  integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
    +  dependencies:
    +    circular-json "^0.3.1"
    +    graceful-fs "^4.1.2"
    +    rimraf "~2.6.2"
    +    write "^0.2.1"
    +
     flat-cache@^3.0.4:
    -  version "3.0.4"
    -  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
    -  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
    +  version "3.2.0"
    +  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz"
    +  integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
       dependencies:
    -    flatted "^3.1.0"
    +    flatted "^3.2.9"
    +    keyv "^4.5.3"
         rimraf "^3.0.2"
     
    -flatted@^3.1.0, flatted@^3.2.7:
    -  version "3.3.1"
    -  resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz"
    -  integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
    +flatted@^3.2.7, flatted@^3.2.9:
    +  version "3.3.3"
    +  resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz"
    +  integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
     
     follow-redirects@^1.0.0:
    -  version "1.15.2"
    -  resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
    -  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
    +  version "1.15.6"
    +  resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz"
    +  integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
     
     for-each@^0.3.3:
       version "0.3.3"
    @@ -1314,10 +1683,10 @@ fs.realpath@^1.0.0:
       resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
       integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
     
    -function-bind@^1.1.1:
    -  version "1.1.1"
    -  resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
    -  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
    +fsevents@~2.3.2:
    +  version "2.3.3"
    +  resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
    +  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
     
     function-bind@^1.1.2:
       version "1.1.2"
    @@ -1334,6 +1703,11 @@ function.prototype.name@^1.1.6:
         es-abstract "^1.22.1"
         functions-have-names "^1.2.3"
     
    +functional-red-black-tree@^1.0.1:
    +  version "1.0.1"
    +  resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
    +  integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
    +
     functions-have-names@^1.2.3:
       version "1.2.3"
       resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
    @@ -1344,37 +1718,7 @@ get-caller-file@^2.0.5:
       resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
       integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
     
    -get-intrinsic@^1.0.2:
    -  version "1.2.1"
    -  resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
    -  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
    -  dependencies:
    -    function-bind "^1.1.1"
    -    has "^1.0.3"
    -    has-proto "^1.0.1"
    -    has-symbols "^1.0.3"
    -
    -get-intrinsic@^1.1.1:
    -  version "1.2.1"
    -  resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
    -  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
    -  dependencies:
    -    function-bind "^1.1.1"
    -    has "^1.0.3"
    -    has-proto "^1.0.1"
    -    has-symbols "^1.0.3"
    -
    -get-intrinsic@^1.1.3:
    -  version "1.2.1"
    -  resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
    -  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
    -  dependencies:
    -    function-bind "^1.1.1"
    -    has "^1.0.3"
    -    has-proto "^1.0.1"
    -    has-symbols "^1.0.3"
    -
    -get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
    +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
       version "1.2.4"
       resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz"
       integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
    @@ -1415,7 +1759,7 @@ glob-parent@~5.1.2:
       dependencies:
         is-glob "^4.0.1"
     
    -glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:
    +glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:
       version "7.2.3"
       resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
       integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
    @@ -1427,6 +1771,11 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:
         once "^1.3.0"
         path-is-absolute "^1.0.0"
     
    +globals@^11.0.1:
    +  version "11.12.0"
    +  resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
    +  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
    +
     globals@^13.19.0:
       version "13.24.0"
       resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz"
    @@ -1435,11 +1784,12 @@ globals@^13.19.0:
         type-fest "^0.20.2"
     
     globalthis@^1.0.3:
    -  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==
       dependencies:
    -    define-properties "^1.1.3"
    +    define-properties "^1.2.1"
    +    gopd "^1.0.1"
     
     globalyzer@0.1.0:
       version "0.1.0"
    @@ -1458,7 +1808,7 @@ gopd@^1.0.1:
       dependencies:
         get-intrinsic "^1.1.3"
     
    -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
    +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
       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==
    @@ -1481,6 +1831,13 @@ har-validator@~5.1.0:
         ajv "^6.12.3"
         har-schema "^2.0.0"
     
    +has-ansi@^2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
    +  integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
    +  dependencies:
    +    ansi-regex "^2.0.0"
    +
     has-bigints@^1.0.1, has-bigints@^1.0.2:
       version "1.0.2"
       resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
    @@ -1496,26 +1853,14 @@ has-flag@^4.0.0:
       resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
       integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
     
    -has-property-descriptors@^1.0.0:
    -  version "1.0.0"
    -  resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
    -  integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
    -  dependencies:
    -    get-intrinsic "^1.1.1"
    -
    -has-property-descriptors@^1.0.2:
    +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
       version "1.0.2"
       resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
       integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
       dependencies:
         es-define-property "^1.0.0"
     
    -has-proto@^1.0.1:
    -  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==
    -
    -has-proto@^1.0.3:
    +has-proto@^1.0.1, has-proto@^1.0.3:
       version "1.0.3"
       resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz"
       integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
    @@ -1525,27 +1870,13 @@ has-symbols@^1.0.2, has-symbols@^1.0.3:
       resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
       integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
     
    -has-tostringtag@^1.0.0:
    -  version "1.0.0"
    -  resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
    -  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
    -  dependencies:
    -    has-symbols "^1.0.2"
    -
    -has-tostringtag@^1.0.2:
    +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
       version "1.0.2"
       resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
       integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
       dependencies:
         has-symbols "^1.0.3"
     
    -has@^1.0.3:
    -  version "1.0.3"
    -  resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
    -  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
    -  dependencies:
    -    function-bind "^1.1.1"
    -
     hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
       version "2.0.2"
       resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
    @@ -1598,7 +1929,7 @@ https-proxy-agent@^5.0.0:
         agent-base "6"
         debug "4"
     
    -iconv-lite@0.4.24:
    +iconv-lite@^0.4.17, iconv-lite@0.4.24:
       version "0.4.24"
       resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
       integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
    @@ -1610,15 +1941,20 @@ ieee754@^1.1.13:
       resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
       integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
     
    +ignore@^3.3.3:
    +  version "3.3.10"
    +  resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz"
    +  integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
    +
     ignore@^5.2.0:
       version "5.3.2"
       resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
       integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
     
     import-fresh@^3.2.1:
    -  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==
       dependencies:
         parent-module "^1.0.0"
         resolve-from "^4.0.0"
    @@ -1641,6 +1977,26 @@ inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4:
       resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
       integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
     
    +inquirer@^3.0.6:
    +  version "3.3.0"
    +  resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz"
    +  integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
    +  dependencies:
    +    ansi-escapes "^3.0.0"
    +    chalk "^2.0.0"
    +    cli-cursor "^2.1.0"
    +    cli-width "^2.0.0"
    +    external-editor "^2.0.4"
    +    figures "^2.0.0"
    +    lodash "^4.3.0"
    +    mute-stream "0.0.7"
    +    run-async "^2.2.0"
    +    rx-lite "^4.0.8"
    +    rx-lite-aggregates "^4.0.8"
    +    string-width "^2.1.0"
    +    strip-ansi "^4.0.0"
    +    through "^2.3.6"
    +
     internal-slot@^1.0.7:
       version "1.0.7"
       resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz"
    @@ -1685,13 +2041,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
       resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
       integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
     
    -is-core-module@^2.11.0:
    -  version "2.12.1"
    -  resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz"
    -  integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
    -  dependencies:
    -    has "^1.0.3"
    -
     is-core-module@^2.13.0, is-core-module@^2.13.1:
       version "2.13.1"
       resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz"
    @@ -1718,6 +2067,11 @@ is-extglob@^2.1.1:
       resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
       integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
     
    +is-fullwidth-code-point@^2.0.0:
    +  version "2.0.0"
    +  resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
    +  integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
    +
     is-fullwidth-code-point@^3.0.0:
       version "3.0.0"
       resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
    @@ -1772,14 +2126,12 @@ is-regex@^1.1.4:
         call-bind "^1.0.2"
         has-tostringtag "^1.0.0"
     
    -is-shared-array-buffer@^1.0.2:
    -  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==
    -  dependencies:
    -    call-bind "^1.0.2"
    +is-resolvable@^1.0.0:
    +  version "1.1.0"
    +  resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz"
    +  integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
     
    -is-shared-array-buffer@^1.0.3:
    +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
       version "1.0.3"
       resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz"
       integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
    @@ -1853,11 +2205,24 @@ jest-worker@^26.2.1:
         merge-stream "^2.0.0"
         supports-color "^7.0.0"
     
    +js-tokens@^3.0.2:
    +  version "3.0.2"
    +  resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
    +  integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
    +
     js-tokens@^4.0.0:
       version "4.0.0"
       resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
       integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
     
    +js-yaml@^3.9.1:
    +  version "3.14.1"
    +  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
    +  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
    +  dependencies:
    +    argparse "^1.0.7"
    +    esprima "^4.0.0"
    +
     js-yaml@^4.1.0:
       version "4.1.0"
       resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
    @@ -1870,6 +2235,16 @@ jsbn@~0.1.0:
       resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
       integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
     
    +json-buffer@3.0.1:
    +  version "3.0.1"
    +  resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"
    +  integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
    +
    +json-schema-traverse@^0.3.0:
    +  version "0.3.1"
    +  resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"
    +  integrity sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==
    +
     json-schema-traverse@^0.4.1:
       version "0.4.1"
       resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
    @@ -1937,7 +2312,7 @@ karma-sauce-launcher@^1.2.0:
         saucelabs "^1.4.0"
         wd "^1.4.0"
     
    -karma@^3.1.1, karma@^6.4.2:
    +karma@^6.4.2:
       version "6.4.4"
       resolved "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz"
       integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==
    @@ -1967,13 +2342,28 @@ karma@^3.1.1, karma@^6.4.2:
         ua-parser-js "^0.7.30"
         yargs "^16.1.1"
     
    +keyv@^4.5.3:
    +  version "4.5.4"
    +  resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz"
    +  integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
    +  dependencies:
    +    json-buffer "3.0.1"
    +
     lazystream@^1.0.0:
       version "1.0.1"
       resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz"
       integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
       dependencies:
         readable-stream "^2.0.5"
     
    +levn@^0.3.0, levn@~0.3.0:
    +  version "0.3.0"
    +  resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
    +  integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
    +  dependencies:
    +    prelude-ls "~1.1.2"
    +    type-check "~0.3.2"
    +
     levn@^0.4.1:
       version "0.4.1"
       resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
    @@ -2019,7 +2409,7 @@ lodash.union@^4.6.0:
       resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz"
       integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
     
    -lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.21:
    +lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0:
       version "4.17.21"
       resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
       integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
    @@ -2035,6 +2425,14 @@ log4js@^6.4.1:
         rfdc "^1.3.0"
         streamroller "^3.1.5"
     
    +lru-cache@^4.0.1:
    +  version "4.1.5"
    +  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
    +  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
    +  dependencies:
    +    pseudomap "^1.0.2"
    +    yallist "^2.1.2"
    +
     magic-string@^0.25.7:
       version "0.25.9"
       resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz"
    @@ -2069,7 +2467,12 @@ mime@^2.5.2:
       resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"
       integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
     
    -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
    +mimic-fn@^1.0.0:
    +  version "1.2.0"
    +  resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"
    +  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
    +
    +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
       version "3.1.2"
       resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
       integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
    @@ -2100,6 +2503,11 @@ ms@^2.1.1:
       resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
       integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
     
    +ms@^2.1.3:
    +  version "2.1.3"
    +  resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
    +  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
    +
     ms@2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
    @@ -2110,6 +2518,11 @@ ms@2.1.2:
       resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
       integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
     
    +mute-stream@0.0.7:
    +  version "0.0.7"
    +  resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
    +  integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==
    +
     natural-compare@^1.4.0:
       version "1.4.0"
       resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
    @@ -2140,7 +2553,7 @@ oauth-sign@~0.9.0:
       resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
       integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
     
    -object-assign@^4:
    +object-assign@^4, object-assign@^4.0.1:
       version "4.1.1"
       resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
       integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
    @@ -2166,32 +2579,32 @@ object.assign@^4.1.5:
         object-keys "^1.1.1"
     
     object.fromentries@^2.0.7:
    -  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==
       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"
     
     object.groupby@^1.0.1:
    -  version "1.0.1"
    -  resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz"
    -  integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==
    +  version "1.0.3"
    +  resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz"
    +  integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
       dependencies:
    -    call-bind "^1.0.2"
    -    define-properties "^1.2.0"
    -    es-abstract "^1.22.1"
    -    get-intrinsic "^1.2.1"
    +    call-bind "^1.0.7"
    +    define-properties "^1.2.1"
    +    es-abstract "^1.23.2"
     
     object.values@^1.1.7:
    -  version "1.1.7"
    -  resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz"
    -  integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==
    +  version "1.2.0"
    +  resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz"
    +  integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
       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-object-atoms "^1.0.0"
     
     on-finished@~2.3.0:
       version "2.3.0"
    @@ -2214,6 +2627,25 @@ once@^1.3.0, once@^1.4.0:
       dependenc
    ... [truncated]
    
9204eb520c27

Preparing for 7.2.2.2 release

https://github.com/rails/railsJohn HawthornAug 13, 2025via osv
31 files changed · +198 126
  • actioncable/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actioncable/lib/action_cable/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actioncable/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actioncable",
    -  "version": "7.2.201",
    +  "version": "7.2.202",
       "description": "WebSocket framework for Ruby on Rails.",
       "module": "app/assets/javascripts/actioncable.esm.js",
       "main": "app/assets/javascripts/actioncable.js",
    
  • actionmailbox/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionmailbox/lib/action_mailbox/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionmailer/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionmailer/lib/action_mailer/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionpack/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   Add validation to content security policies to disallow spaces and semicolons.
    
  • actionpack/lib/action_pack/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   Update vendored trix version to 2.1.10
    
  • actiontext/lib/action_text/gem_version.rb+1 1 modified
    @@ -12,7 +12,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actiontext",
    -  "version": "7.2.201",
    +  "version": "7.2.202",
       "description": "Edit and display rich text in Rails applications",
       "module": "app/assets/javascripts/actiontext.esm.js",
       "main": "app/assets/javascripts/actiontext.js",
    
  • actionview/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionview/lib/action_view/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activejob/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activejob/lib/active_job/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activemodel/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activemodel/lib/active_model/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activerecord/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
     *   Call inspect on ids in RecordNotFound error
     
         [CVE-2025-55193]
    
  • activerecord/lib/active_record/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
         Remove dangerous transformations
     
         [CVE-2025-24293]
    
  • activestorage/lib/active_storage/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/activestorage",
    -  "version": "7.2.201",
    +  "version": "7.2.202",
       "description": "Attach cloud and local files in Rails applications",
       "module": "app/assets/javascripts/activestorage.esm.js",
       "main": "app/assets/javascripts/activestorage.js",
    
  • activesupport/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activesupport/lib/active_support/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • Gemfile.lock+53 53 modified
    @@ -19,29 +19,29 @@ GIT
     PATH
       remote: .
       specs:
    -    actioncable (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actioncable (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           nio4r (~> 2.0)
           websocket-driver (>= 0.6.1)
           zeitwerk (~> 2.6)
    -    actionmailbox (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      activejob (= 7.2.2.1)
    -      activerecord (= 7.2.2.1)
    -      activestorage (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actionmailbox (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      activejob (= 7.2.2.2)
    +      activerecord (= 7.2.2.2)
    +      activestorage (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           mail (>= 2.8.0)
    -    actionmailer (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      actionview (= 7.2.2.1)
    -      activejob (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actionmailer (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      actionview (= 7.2.2.2)
    +      activejob (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           mail (>= 2.8.0)
           rails-dom-testing (~> 2.2)
    -    actionpack (7.2.2.1)
    -      actionview (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actionpack (7.2.2.2)
    +      actionview (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           nokogiri (>= 1.8.5)
           racc
           rack (>= 2.2.4, < 3.2)
    @@ -50,35 +50,35 @@ PATH
           rails-dom-testing (~> 2.2)
           rails-html-sanitizer (~> 1.6)
           useragent (~> 0.16)
    -    actiontext (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      activerecord (= 7.2.2.1)
    -      activestorage (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actiontext (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      activerecord (= 7.2.2.2)
    +      activestorage (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           globalid (>= 0.6.0)
           nokogiri (>= 1.8.5)
    -    actionview (7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    actionview (7.2.2.2)
    +      activesupport (= 7.2.2.2)
           builder (~> 3.1)
           erubi (~> 1.11)
           rails-dom-testing (~> 2.2)
           rails-html-sanitizer (~> 1.6)
    -    activejob (7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    activejob (7.2.2.2)
    +      activesupport (= 7.2.2.2)
           globalid (>= 0.3.6)
    -    activemodel (7.2.2.1)
    -      activesupport (= 7.2.2.1)
    -    activerecord (7.2.2.1)
    -      activemodel (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    activemodel (7.2.2.2)
    +      activesupport (= 7.2.2.2)
    +    activerecord (7.2.2.2)
    +      activemodel (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           timeout (>= 0.4.0)
    -    activestorage (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      activejob (= 7.2.2.1)
    -      activerecord (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    activestorage (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      activejob (= 7.2.2.2)
    +      activerecord (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           marcel (~> 1.0)
    -    activesupport (7.2.2.1)
    +    activesupport (7.2.2.2)
           base64
           benchmark (>= 0.3)
           bigdecimal
    @@ -90,23 +90,23 @@ PATH
           minitest (>= 5.1)
           securerandom (>= 0.3)
           tzinfo (~> 2.0, >= 2.0.5)
    -    rails (7.2.2.1)
    -      actioncable (= 7.2.2.1)
    -      actionmailbox (= 7.2.2.1)
    -      actionmailer (= 7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      actiontext (= 7.2.2.1)
    -      actionview (= 7.2.2.1)
    -      activejob (= 7.2.2.1)
    -      activemodel (= 7.2.2.1)
    -      activerecord (= 7.2.2.1)
    -      activestorage (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +    rails (7.2.2.2)
    +      actioncable (= 7.2.2.2)
    +      actionmailbox (= 7.2.2.2)
    +      actionmailer (= 7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      actiontext (= 7.2.2.2)
    +      actionview (= 7.2.2.2)
    +      activejob (= 7.2.2.2)
    +      activemodel (= 7.2.2.2)
    +      activerecord (= 7.2.2.2)
    +      activestorage (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           bundler (>= 1.15.0)
    -      railties (= 7.2.2.1)
    -    railties (7.2.2.1)
    -      actionpack (= 7.2.2.1)
    -      activesupport (= 7.2.2.1)
    +      railties (= 7.2.2.2)
    +    railties (7.2.2.2)
    +      actionpack (= 7.2.2.2)
    +      activesupport (= 7.2.2.2)
           irb (~> 1.13)
           rackup (>= 1.0.0)
           rake (>= 12.2)
    
  • guides/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • RAILS_VERSION+1 1 modified
    @@ -1 +1 @@
    -7.2.2.1
    +7.2.2.2
    
  • railties/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.2.2.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.2.2.1 (December 10, 2024) ##
     
     *   No changes.
    
  • railties/lib/rails/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 2
         TINY  = 2
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • yarn.lock+70 57 modified
    @@ -70,18 +70,18 @@
         "@jridgewell/resolve-uri" "^3.1.0"
         "@jridgewell/sourcemap-codec" "^1.4.14"
     
    -"@rails/actioncable@file:/Users/jhawthorn/src/rails-release/actioncable":
    -  version "7.2.201"
    +"@rails/actioncable@file:/Users/jhawthorn/src/rails/actioncable":
    +  version "7.2.202"
       resolved "file:actioncable"
     
    -"@rails/actiontext@file:/Users/jhawthorn/src/rails-release/actiontext":
    -  version "7.2.201"
    +"@rails/actiontext@file:/Users/jhawthorn/src/rails/actiontext":
    +  version "7.2.202"
       resolved "file:actiontext"
       dependencies:
         "@rails/activestorage" ">= 7.2.0-alpha"
     
    -"@rails/activestorage@>= 7.2.0-alpha", "@rails/activestorage@file:/Users/jhawthorn/src/rails-release/activestorage":
    -  version "7.2.201"
    +"@rails/activestorage@>= 7.2.0-alpha", "@rails/activestorage@file:/Users/jhawthorn/src/rails/activestorage":
    +  version "7.2.202"
       resolved "file:activestorage"
       dependencies:
         spark-md5 "^3.0.1"
    @@ -125,15 +125,10 @@
       resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz"
       integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
     
    -"@types/cookie@^0.4.1":
    -  version "0.4.1"
    -  resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz"
    -  integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
    -
     "@types/cors@^2.8.12":
    -  version "2.8.17"
    -  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz"
    -  integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==
    +  version "2.8.19"
    +  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz"
    +  integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
       dependencies:
         "@types/node" "*"
     
    @@ -390,7 +385,17 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
       resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
       integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
     
    -ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0:
    +ajv@^5.0.0, ajv@^5.2.3:
    +  version "5.5.2"
    +  resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
    +  integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    +  dependencies:
    +    co "^4.6.0"
    +    fast-deep-equal "^1.0.0"
    +    fast-json-stable-stringify "^2.0.0"
    +    json-schema-traverse "^0.3.0"
    +
    +ajv@^5.3.0:
       version "5.5.2"
       resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
       integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    @@ -1018,16 +1023,7 @@ chalk@^1.1.3:
         strip-ansi "^3.0.0"
         supports-color "^2.0.0"
     
    -chalk@^2.0.0, chalk@^2.1.0:
    -  version "2.4.2"
    -  resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
    -  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
    -  dependencies:
    -    ansi-styles "^3.2.1"
    -    escape-string-regexp "^1.0.5"
    -    supports-color "^5.3.0"
    -
    -chalk@^2.4.2:
    +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
       version "2.4.2"
       resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
       integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
    @@ -1425,7 +1421,28 @@ debug@^3.2.7:
       dependencies:
         ms "^2.1.1"
     
    -debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4:
    +debug@^4.3.4:
    +  version "4.4.1"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz"
    +  integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@~4.3.1:
    +  version "4.3.7"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    +  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@~4.3.2:
    +  version "4.3.7"
    +  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    +  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    +  dependencies:
    +    ms "^2.1.3"
    +
    +debug@~4.3.4:
       version "4.3.7"
       resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
       integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    @@ -1624,11 +1641,10 @@ engine.io-parser@~5.2.1:
       integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==
     
     engine.io@~6.6.0:
    -  version "6.6.2"
    -  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz"
    -  integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==
    +  version "6.6.4"
    +  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz"
    +  integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==
       dependencies:
    -    "@types/cookie" "^0.4.1"
         "@types/cors" "^2.8.12"
         "@types/node" ">=10.0.0"
         accepts "~1.3.4"
    @@ -2125,9 +2141,9 @@ flat-cache@^1.2.1:
         write "^0.2.1"
     
     flatted@^3.2.7:
    -  version "3.3.1"
    -  resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz"
    -  integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
    +  version "3.3.3"
    +  resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz"
    +  integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
     
     flush-write-stream@^1.0.0:
       version "1.1.1"
    @@ -4115,12 +4131,7 @@ rx-lite-aggregates@^4.0.8:
       dependencies:
         rx-lite "*"
     
    -rx-lite@*:
    -  version "3.1.2"
    -  resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz"
    -  integrity sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==
    -
    -rx-lite@^4.0.8:
    +rx-lite@*, rx-lite@^4.0.8:
       version "4.0.8"
       resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz"
       integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==
    @@ -4341,9 +4352,9 @@ socket.io-parser@~4.2.4:
         debug "~4.3.1"
     
     socket.io@^4.7.2:
    -  version "4.8.0"
    -  resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz"
    -  integrity sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==
    +  version "4.8.1"
    +  resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz"
    +  integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==
       dependencies:
         accepts "~1.3.4"
         base64id "~2.0.0"
    @@ -4527,7 +4538,16 @@ string-width@^2.1.0, string-width@^2.1.1:
         is-fullwidth-code-point "^2.0.0"
         strip-ansi "^4.0.0"
     
    -string-width@^4.1.0, string-width@^4.2.0:
    +string-width@^4.1.0:
    +  version "4.2.3"
    +  resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
    +  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
    +  dependencies:
    +    emoji-regex "^8.0.0"
    +    is-fullwidth-code-point "^3.0.0"
    +    strip-ansi "^6.0.1"
    +
    +string-width@^4.2.0:
       version "4.2.3"
       resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
       integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
    @@ -4578,14 +4598,7 @@ strip-ansi@^4.0.0:
       dependencies:
         ansi-regex "^3.0.0"
     
    -strip-ansi@^6.0.0:
    -  version "6.0.1"
    -  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
    -  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
    -  dependencies:
    -    ansi-regex "^5.0.1"
    -
    -strip-ansi@^6.0.1:
    +strip-ansi@^6.0.0, strip-ansi@^6.0.1:
       version "6.0.1"
       resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
       integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
    @@ -4729,9 +4742,9 @@ tmp@^0.0.33:
         os-tmpdir "~1.0.2"
     
     tmp@^0.2.1:
    -  version "0.2.3"
    -  resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz"
    -  integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
    +  version "0.2.5"
    +  resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz"
    +  integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
     
     to-arraybuffer@^1.0.0:
       version "1.0.1"
    @@ -4882,9 +4895,9 @@ typedarray@^0.0.6:
       integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
     
     ua-parser-js@^0.7.30:
    -  version "0.7.39"
    -  resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz"
    -  integrity sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==
    +  version "0.7.40"
    +  resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz"
    +  integrity sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==
     
     unbox-primitive@^1.0.2:
       version "1.0.2"
    
ddb56de25997

Preparing for 7.1.5.2 release

https://github.com/rails/railsJohn HawthornAug 13, 2025via osv
32 files changed · +182 430
  • actioncable/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actioncable/lib/action_cable/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actioncable/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actioncable",
    -  "version": "7.1.501",
    +  "version": "7.1.502",
       "description": "WebSocket framework for Ruby on Rails.",
       "module": "app/assets/javascripts/actioncable.esm.js",
       "main": "app/assets/javascripts/actioncable.js",
    
  • actionmailbox/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionmailbox/lib/action_mailbox/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionmailer/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionmailer/lib/action_mailer/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionpack/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   Add validation to content security policies to disallow spaces and semicolons.
    
  • actionpack/lib/action_pack/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   Update vendored trix version to 2.1.10
    
  • actiontext/lib/action_text/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actiontext/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/actiontext",
    -  "version": "7.1.501",
    +  "version": "7.1.502",
       "description": "Edit and display rich text in Rails applications",
       "module": "app/assets/javascripts/actiontext.esm.js",
       "main": "app/assets/javascripts/actiontext.js",
    
  • actionview/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • actionview/lib/action_view/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • actionview/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/ujs",
    -  "version": "7.1.501",
    +  "version": "7.1.502",
       "description": "Ruby on Rails unobtrusive scripting adapter",
       "main": "app/assets/javascripts/rails-ujs.js",
       "module": "app/assets/javascripts/rails-ujs.esm.js",
    
  • activejob/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activejob/lib/active_job/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activemodel/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activemodel/lib/active_model/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activerecord/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
     *   Call inspect on ids in RecordNotFound error
     
         [CVE-2025-55193]
    
  • activerecord/lib/active_record/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/CHANGELOG.md+2 0 modified
    @@ -1,3 +1,5 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
         Remove dangerous transformations
     
         [CVE-2025-24293]
    
  • activestorage/lib/active_storage/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • activestorage/package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "@rails/activestorage",
    -  "version": "7.1.501",
    +  "version": "7.1.502",
       "description": "Attach cloud and local files in Rails applications",
       "module": "app/assets/javascripts/activestorage.esm.js",
       "main": "app/assets/javascripts/activestorage.js",
    
  • activesupport/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • activesupport/lib/active_support/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • Gemfile.lock+69 67 modified
    @@ -10,71 +10,71 @@ GIT
     PATH
       remote: .
       specs:
    -    actioncable (7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actioncable (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           nio4r (~> 2.0)
           websocket-driver (>= 0.6.1)
           zeitwerk (~> 2.6)
    -    actionmailbox (7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      activejob (= 7.1.5.1)
    -      activerecord (= 7.1.5.1)
    -      activestorage (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actionmailbox (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      activejob (= 7.1.5.2)
    +      activerecord (= 7.1.5.2)
    +      activestorage (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           mail (>= 2.7.1)
           net-imap
           net-pop
           net-smtp
    -    actionmailer (7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      actionview (= 7.1.5.1)
    -      activejob (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actionmailer (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      actionview (= 7.1.5.2)
    +      activejob (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           mail (~> 2.5, >= 2.5.4)
           net-imap
           net-pop
           net-smtp
           rails-dom-testing (~> 2.2)
    -    actionpack (7.1.5.1)
    -      actionview (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actionpack (7.1.5.2)
    +      actionview (= 7.1.5.2)
    +      activesupport (= 7.1.5.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.5.1)
    -      actionpack (= 7.1.5.1)
    -      activerecord (= 7.1.5.1)
    -      activestorage (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actiontext (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      activerecord (= 7.1.5.2)
    +      activestorage (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           globalid (>= 0.6.0)
           nokogiri (>= 1.8.5)
    -    actionview (7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    actionview (7.1.5.2)
    +      activesupport (= 7.1.5.2)
           builder (~> 3.1)
           erubi (~> 1.11)
           rails-dom-testing (~> 2.2)
           rails-html-sanitizer (~> 1.6)
    -    activejob (7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    activejob (7.1.5.2)
    +      activesupport (= 7.1.5.2)
           globalid (>= 0.3.6)
    -    activemodel (7.1.5.1)
    -      activesupport (= 7.1.5.1)
    -    activerecord (7.1.5.1)
    -      activemodel (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    activemodel (7.1.5.2)
    +      activesupport (= 7.1.5.2)
    +    activerecord (7.1.5.2)
    +      activemodel (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           timeout (>= 0.4.0)
    -    activestorage (7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      activejob (= 7.1.5.1)
    -      activerecord (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    activestorage (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      activejob (= 7.1.5.2)
    +      activerecord (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           marcel (~> 1.0)
    -    activesupport (7.1.5.1)
    +    activesupport (7.1.5.2)
           base64
           benchmark (>= 0.3)
           bigdecimal
    @@ -87,23 +87,23 @@ PATH
           mutex_m
           securerandom (>= 0.3)
           tzinfo (~> 2.0)
    -    rails (7.1.5.1)
    -      actioncable (= 7.1.5.1)
    -      actionmailbox (= 7.1.5.1)
    -      actionmailer (= 7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      actiontext (= 7.1.5.1)
    -      actionview (= 7.1.5.1)
    -      activejob (= 7.1.5.1)
    -      activemodel (= 7.1.5.1)
    -      activerecord (= 7.1.5.1)
    -      activestorage (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +    rails (7.1.5.2)
    +      actioncable (= 7.1.5.2)
    +      actionmailbox (= 7.1.5.2)
    +      actionmailer (= 7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      actiontext (= 7.1.5.2)
    +      actionview (= 7.1.5.2)
    +      activejob (= 7.1.5.2)
    +      activemodel (= 7.1.5.2)
    +      activerecord (= 7.1.5.2)
    +      activestorage (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           bundler (>= 1.15.0)
    -      railties (= 7.1.5.1)
    -    railties (7.1.5.1)
    -      actionpack (= 7.1.5.1)
    -      activesupport (= 7.1.5.1)
    +      railties (= 7.1.5.2)
    +    railties (7.1.5.2)
    +      actionpack (= 7.1.5.2)
    +      activesupport (= 7.1.5.2)
           irb
           rackup (>= 1.0.0)
           rake (>= 12.2)
    @@ -158,9 +158,9 @@ GEM
         base64 (0.2.0)
         bcrypt (3.1.18)
         beaneater (1.1.3)
    -    benchmark (0.4.0)
    +    benchmark (0.4.1)
         benchmark-ips (2.10.0)
    -    bigdecimal (3.1.8)
    +    bigdecimal (3.2.2)
         bindex (0.8.1)
         bootsnap (1.15.0)
           msgpack (~> 1.2)
    @@ -203,8 +203,8 @@ GEM
           delayed_job (>= 3.0, < 5)
         digest-crc (0.6.4)
           rake (>= 12.0.0, < 14.0.0)
    -    drb (2.2.1)
    -    erubi (1.13.0)
    +    drb (2.2.3)
    +    erubi (1.13.1)
         et-orbi (1.2.7)
           tzinfo
         event_emitter (0.2.6)
    @@ -276,7 +276,7 @@ GEM
           signet (>= 0.16, < 2.a)
         hashdiff (1.0.1)
         httpclient (2.8.3)
    -    i18n (1.14.6)
    +    i18n (1.14.7)
           concurrent-ruby (~> 1.0)
         image_processing (1.12.2)
           mini_magick (>= 4.9.5, < 5)
    @@ -307,7 +307,7 @@ GEM
           rb-fsevent (~> 0.10, >= 0.10.3)
           rb-inotify (~> 0.9, >= 0.9.10)
         logger (1.6.0)
    -    loofah (2.23.1)
    +    loofah (2.24.1)
           crass (~> 1.0.2)
           nokogiri (>= 1.12.0)
         mail (2.8.1)
    @@ -350,14 +350,14 @@ GEM
         mysql2 (0.5.6)
         net-http-persistent (4.0.1)
           connection_pool (~> 2.2)
    -    net-imap (0.5.1)
    +    net-imap (0.5.9)
           date
           net-protocol
         net-pop (0.1.2)
           net-protocol
         net-protocol (0.2.2)
           timeout
    -    net-smtp (0.5.0)
    +    net-smtp (0.5.1)
           net-protocol
         nio4r (2.5.9)
         nokogiri (1.15.4)
    @@ -388,13 +388,14 @@ GEM
         rack (3.1.3)
         rack-cache (1.15.0)
           rack (>= 0.4)
    -    rack-session (2.0.0)
    +    rack-session (2.1.1)
    +      base64 (>= 0.1.0)
           rack (>= 3.0.0)
         rack-test (2.1.0)
           rack (>= 1.3)
         rackup (2.2.1)
           rack (>= 3)
    -    rails-dom-testing (2.2.0)
    +    rails-dom-testing (2.3.0)
           activesupport (>= 5.0.0)
           minitest
           nokogiri (>= 1.6)
    @@ -471,7 +472,7 @@ GEM
           fugit (~> 1.1, >= 1.1.6)
         sdoc (2.6.1)
           rdoc (>= 5.0)
    -    securerandom (0.4.0)
    +    securerandom (0.4.1)
         selenium-webdriver (4.22.0)
           base64 (~> 0.2)
           logger (~> 1.4)
    @@ -529,7 +530,7 @@ GEM
         terser (1.1.13)
           execjs (>= 0.3.0, < 3)
         thor (1.3.0)
    -    timeout (0.4.2)
    +    timeout (0.4.3)
         tomlrb (2.0.3)
         trailblazer-option (0.1.2)
         trilogy (2.5.0)
    @@ -556,12 +557,13 @@ GEM
           hashdiff (>= 0.4.0, < 2.0.0)
         webrick (1.8.1)
         websocket (1.2.9)
    -    websocket-driver (0.7.6)
    +    websocket-driver (0.8.0)
    +      base64
           websocket-extensions (>= 0.1.0)
         websocket-extensions (0.1.5)
         xpath (3.2.0)
           nokogiri (~> 1.8)
    -    zeitwerk (2.7.1)
    +    zeitwerk (2.7.3)
     
     PLATFORMS
       ruby
    
  • guides/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • RAILS_VERSION+1 1 modified
    @@ -1 +1 @@
    -7.1.5.1
    +7.1.5.2
    
  • railties/CHANGELOG.md+5 0 modified
    @@ -1,3 +1,8 @@
    +## Rails 7.1.5.2 (August 13, 2025) ##
    +
    +*   No changes.
    +
    +
     ## Rails 7.1.5.1 (December 10, 2024) ##
     
     *   No changes.
    
  • railties/lib/rails/gem_version.rb+1 1 modified
    @@ -10,7 +10,7 @@ module VERSION
         MAJOR = 7
         MINOR = 1
         TINY  = 5
    -    PRE   = "1"
    +    PRE   = "2"
     
         STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
       end
    
  • yarn.lock+37 346 modified
    @@ -25,11 +25,6 @@
         js-tokens "^4.0.0"
         picocolors "^1.0.0"
     
    -"@colors/colors@1.5.0":
    -  version "1.5.0"
    -  resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz"
    -  integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
    -
     "@jridgewell/gen-mapping@^0.3.5":
       version "0.3.5"
       resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
    @@ -70,24 +65,24 @@
         "@jridgewell/resolve-uri" "^3.1.0"
         "@jridgewell/sourcemap-codec" "^1.4.14"
     
    -"@rails/actioncable@file:/Users/jhawthorn/src/rails-release/actioncable":
    -  version "7.1.501"
    +"@rails/actioncable@file:/Users/jhawthorn/src/rails/actioncable":
    +  version "7.1.502"
       resolved "file:actioncable"
     
    -"@rails/actiontext@file:/Users/jhawthorn/src/rails-release/actiontext":
    -  version "7.1.501"
    +"@rails/actiontext@file:/Users/jhawthorn/src/rails/actiontext":
    +  version "7.1.502"
       resolved "file:actiontext"
       dependencies:
         "@rails/activestorage" ">= 7.1.0-alpha"
     
    -"@rails/activestorage@>= 7.1.0-alpha", "@rails/activestorage@file:/Users/jhawthorn/src/rails-release/activestorage":
    -  version "7.1.501"
    +"@rails/activestorage@>= 7.1.0-alpha", "@rails/activestorage@file:/Users/jhawthorn/src/rails/activestorage":
    +  version "7.1.502"
       resolved "file:activestorage"
       dependencies:
         spark-md5 "^3.0.1"
     
    -"@rails/ujs@file:/Users/jhawthorn/src/rails-release/actionview":
    -  version "7.1.501"
    +"@rails/ujs@file:/Users/jhawthorn/src/rails/actionview":
    +  version "7.1.502"
       resolved "file:actionview"
     
     "@rollup/plugin-commonjs@^19.0.1":
    @@ -141,23 +136,6 @@
         estree-walker "^2.0.2"
         picomatch "^4.0.2"
     
    -"@socket.io/component-emitter@~3.1.0":
    -  version "3.1.2"
    -  resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz"
    -  integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
    -
    -"@types/cookie@^0.4.1":
    -  version "0.4.1"
    -  resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz"
    -  integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
    -
    -"@types/cors@^2.8.12":
    -  version "2.8.17"
    -  resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz"
    -  integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==
    -  dependencies:
    -    "@types/node" "*"
    -
     "@types/estree@*", "@types/estree@0.0.39":
       version "0.0.39"
       resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz"
    @@ -173,7 +151,7 @@
       resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
       integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
     
    -"@types/node@*", "@types/node@>=10.0.0":
    +"@types/node@*":
       version "20.14.2"
       resolved "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz"
       integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==
    @@ -421,7 +399,17 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
       resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
       integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
     
    -ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0:
    +ajv@^5.0.0, ajv@^5.2.3:
    +  version "5.5.2"
    +  resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
    +  integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    +  dependencies:
    +    co "^4.6.0"
    +    fast-deep-equal "^1.0.0"
    +    fast-json-stable-stringify "^2.0.0"
    +    json-schema-traverse "^0.3.0"
    +
    +ajv@^5.3.0:
       version "5.5.2"
       resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
       integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
    @@ -456,11 +444,6 @@ ansi-regex@^3.0.0:
       resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz"
       integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
     
    -ansi-regex@^5.0.1:
    -  version "5.0.1"
    -  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
    -  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
    -
     ansi-styles@^2.2.1:
       version "2.2.1"
       resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
    @@ -473,13 +456,6 @@ ansi-styles@^3.2.1:
       dependencies:
         color-convert "^1.9.0"
     
    -ansi-styles@^4.0.0:
    -  version "4.3.0"
    -  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
    -  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
    -  dependencies:
    -    color-convert "^2.0.1"
    -
     anymatch@^2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"
    @@ -758,11 +734,6 @@ base64-js@^1.0.2, base64-js@^1.3.1:
       resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
       integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
     
    -base64id@~2.0.0, base64id@2.0.0:
    -  version "2.0.0"
    -  resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz"
    -  integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
    -
     base64id@1.0.0:
       version "1.0.0"
       resolved "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz"
    @@ -843,7 +814,7 @@ bn.js@^5.0.0, bn.js@^5.2.1:
       resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz"
       integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
     
    -body-parser@^1.16.1, body-parser@^1.19.0:
    +body-parser@^1.16.1:
       version "1.20.2"
       resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz"
       integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
    @@ -892,13 +863,6 @@ braces@^2.3.1, braces@^2.3.2:
         split-string "^3.0.2"
         to-regex "^3.0.1"
     
    -braces@^3.0.2:
    -  version "3.0.3"
    -  resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
    -  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
    -  dependencies:
    -    fill-range "^7.1.1"
    -
     braces@~3.0.2:
       version "3.0.3"
       resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
    @@ -1126,16 +1090,7 @@ chalk@^1.1.3:
         strip-ansi "^3.0.0"
         supports-color "^2.0.0"
     
    -chalk@^2.0.0, chalk@^2.1.0:
    -  version "2.4.2"
    -  resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
    -  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
    -  dependencies:
    -    ansi-styles "^3.2.1"
    -    escape-string-regexp "^1.0.5"
    -    supports-color "^5.3.0"
    -
    -chalk@^2.4.2:
    +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
       version "2.4.2"
       resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
       integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
    @@ -1187,7 +1142,7 @@ chokidar@^2.1.8:
       optionalDependencies:
         fsevents "^1.2.7"
     
    -chokidar@^3.4.1, chokidar@^3.5.1:
    +chokidar@^3.4.1:
       version "3.6.0"
       resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
       integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
    @@ -1252,15 +1207,6 @@ cli-width@^2.0.0:
       resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz"
       integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
     
    -cliui@^7.0.2:
    -  version "7.0.4"
    -  resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
    -  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
    -  dependencies:
    -    string-width "^4.2.0"
    -    strip-ansi "^6.0.0"
    -    wrap-ansi "^7.0.0"
    -
     co@^4.6.0:
       version "4.6.0"
       resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
    @@ -1281,18 +1227,6 @@ color-convert@^1.9.0:
       dependencies:
         color-name "1.1.3"
     
    -color-convert@^2.0.1:
    -  version "2.0.1"
    -  resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
    -  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
    -  dependencies:
    -    color-name "~1.1.4"
    -
    -color-name@~1.1.4:
    -  version "1.1.4"
    -  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
    -  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
    -
     color-name@1.1.3:
       version "1.1.3"
       resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
    @@ -1377,7 +1311,7 @@ concat-stream@^1.5.0, concat-stream@^1.6.0:
         readable-stream "^2.2.2"
         typedarray "^0.0.6"
     
    -connect@^3.6.0, connect@^3.7.0:
    +connect@^3.6.0:
       version "3.7.0"
       resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"
       integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
    @@ -1402,11 +1336,6 @@ content-type@~1.0.5:
       resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
       integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
     
    -cookie@~0.7.2:
    -  version "0.7.2"
    -  resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz"
    -  integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
    -
     cookie@0.3.1:
       version "0.3.1"
       resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
    @@ -1444,14 +1373,6 @@ core-util-is@1.0.2:
       resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
       integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
     
    -cors@~2.8.5:
    -  version "2.8.5"
    -  resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"
    -  integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
    -  dependencies:
    -    object-assign "^4"
    -    vary "^1"
    -
     crc@^3.4.4:
       version "3.8.0"
       resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz"
    @@ -1573,11 +1494,6 @@ date-format@^1.2.0:
       resolved "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz"
       integrity sha512-lAJqBmFzCLcDJdI9cEnJ7loSkLTh1PbIgZUndlzvYbf6NyFEr5n9rQhOwr6CIGwZqyQ3sYeQQiP9NOVQmgmRMA==
     
    -date-format@^4.0.14:
    -  version "4.0.14"
    -  resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz"
    -  integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==
    -
     debug@^2.2.0, debug@^2.3.3, debug@2.6.9:
       version "2.6.9"
       resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
    @@ -1599,13 +1515,6 @@ debug@^3.2.7:
       dependencies:
         ms "^2.1.1"
     
    -debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4:
    -  version "4.3.7"
    -  resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
    -  integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
    -  dependencies:
    -    ms "^2.1.3"
    -
     debug@~3.1.0:
       version "3.1.0"
       resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
    @@ -1719,7 +1628,7 @@ doctrine@^2.1.0:
       dependencies:
         esutils "^2.0.2"
     
    -dom-serialize@^2.2.0, dom-serialize@^2.2.1:
    +dom-serialize@^2.2.0:
       version "2.2.1"
       resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz"
       integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==
    @@ -1777,11 +1686,6 @@ elliptic@^6.5.3, elliptic@^6.5.5:
         minimalistic-assert "^1.0.1"
         minimalistic-crypto-utils "^1.0.1"
     
    -emoji-regex@^8.0.0:
    -  version "8.0.0"
    -  resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
    -  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
    -
     emojis-list@^3.0.0:
       version "3.0.0"
       resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
    @@ -1827,11 +1731,6 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
         blob "0.0.5"
         has-binary2 "~1.0.2"
     
    -engine.io-parser@~5.2.1:
    -  version "5.2.3"
    -  resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz"
    -  integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==
    -
     engine.io@~3.2.0:
       version "3.2.1"
       resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz"
    @@ -1844,22 +1743,6 @@ engine.io@~3.2.0:
         engine.io-parser "~2.1.0"
         ws "~3.3.1"
     
    -engine.io@~6.6.0:
    -  version "6.6.2"
    -  resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz"
    -  integrity sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==
    -  dependencies:
    -    "@types/cookie" "^0.4.1"
    -    "@types/cors" "^2.8.12"
    -    "@types/node" ">=10.0.0"
    -    accepts "~1.3.4"
    -    base64id "2.0.0"
    -    cookie "~0.7.2"
    -    cors "~2.8.5"
    -    debug "~4.3.1"
    -    engine.io-parser "~5.2.1"
    -    ws "~8.17.1"
    -
     enhanced-resolve@^4.5.0:
       version "4.5.0"
       resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz"
    @@ -1989,11 +1872,6 @@ es6-promisify@^5.0.0:
       dependencies:
         es6-promise "^4.0.3"
     
    -escalade@^3.1.1:
    -  version "3.2.0"
    -  resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
    -  integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
    -
     escape-html@~1.0.3:
       version "1.0.3"
       resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
    @@ -2367,11 +2245,6 @@ flatted@^2.0.0:
       resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz"
       integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
     
    -flatted@^3.2.7:
    -  version "3.3.1"
    -  resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz"
    -  integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
    -
     flush-write-stream@^1.0.0:
       version "1.1.1"
       resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz"
    @@ -2438,15 +2311,6 @@ fs-constants@^1.0.0:
       resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"
       integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
     
    -fs-extra@^8.1.0:
    -  version "8.1.0"
    -  resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"
    -  integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
    -  dependencies:
    -    graceful-fs "^4.2.0"
    -    jsonfile "^4.0.0"
    -    universalify "^0.1.0"
    -
     fs-write-stream-atomic@^1.0.8:
       version "1.0.10"
       resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"
    @@ -2500,11 +2364,6 @@ functions-have-names@^1.2.3:
       resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
       integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
     
    -get-caller-file@^2.0.5:
    -  version "2.0.5"
    -  resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
    -  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
    -
     get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
       version "1.2.4"
       resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz"
    @@ -2552,7 +2411,7 @@ glob-parent@~5.1.2:
       dependencies:
         is-glob "^4.0.1"
     
    -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:
    +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
       version "7.2.3"
       resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
       integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
    @@ -2594,7 +2453,7 @@ gopd@^1.0.1:
       dependencies:
         get-intrinsic "^1.1.3"
     
    -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
    +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.0:
       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==
    @@ -2744,7 +2603,7 @@ http-errors@2.0.0:
         statuses "2.0.1"
         toidentifier "1.0.1"
     
    -http-proxy@^1.13.0, http-proxy@^1.18.1:
    +http-proxy@^1.13.0:
       version "1.18.1"
       resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz"
       integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
    @@ -2992,11 +2851,6 @@ is-fullwidth-code-point@^2.0.0:
       resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
       integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
     
    -is-fullwidth-code-point@^3.0.0:
    -  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==
    -
     is-glob@^3.1.0:
       version "3.1.0"
       resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"
    @@ -3144,11 +2998,6 @@ isbinaryfile@^3.0.0:
       dependencies:
         buffer-alloc "^1.2.0"
     
    -isbinaryfile@^4.0.8:
    -  version "4.0.10"
    -  resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz"
    -  integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==
    -
     isexe@^2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
    @@ -3245,13 +3094,6 @@ json5@^1.0.1, json5@^1.0.2:
       dependencies:
         minimist "^1.2.0"
     
    -jsonfile@^4.0.0:
    -  version "4.0.0"
    -  resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"
    -  integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
    -  optionalDependencies:
    -    graceful-fs "^4.1.6"
    -
     jsprim@^1.2.2:
       version "1.4.2"
       resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz"
    @@ -3414,7 +3256,7 @@ lodash.union@^4.6.0:
       resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz"
       integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
     
    -lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0:
    +lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0:
       version "4.17.21"
       resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
       integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
    @@ -3430,17 +3272,6 @@ log4js@^3.0.0:
         rfdc "^1.1.2"
         streamroller "0.7.0"
     
    -log4js@^6.4.1:
    -  version "6.9.1"
    -  resolved "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz"
    -  integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==
    -  dependencies:
    -    date-format "^4.0.14"
    -    debug "^4.3.4"
    -    flatted "^3.2.7"
    -    rfdc "^1.3.0"
    -    streamroller "^3.1.5"
    -
     lru-cache@^4.0.1:
       version "4.1.5"
       resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
    @@ -3572,7 +3403,7 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
       dependencies:
         mime-db "1.52.0"
     
    -mime@^2.3.1, mime@^2.5.2:
    +mime@^2.3.1:
       version "2.6.0"
       resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"
       integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
    @@ -3592,7 +3423,7 @@ minimalistic-crypto-utils@^1.0.1:
       resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
       integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
     
    -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
    +minimatch@^3.0.2, minimatch@^3.1.1, minimatch@^3.1.2:
       version "3.1.2"
       resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
       integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
    @@ -3633,7 +3464,7 @@ mixin-deep@^1.2.0:
         for-in "^1.0.2"
         is-extendable "^1.0.1"
     
    -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5:
    +mkdirp@^0.5.1, mkdirp@^0.5.3:
       version "0.5.6"
       resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
       integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
    @@ -3664,11 +3495,6 @@ ms@^2.1.1:
       resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
       integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
     
    -ms@^2.1.3:
    -  version "2.1.3"
    -  resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
    -  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
    -
     ms@2.0.0:
       version "2.0.0"
       resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
    @@ -3777,7 +3603,7 @@ oauth-sign@~0.9.0:
       resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
       integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
     
    -object-assign@^4, object-assign@^4.0.1:
    +object-assign@^4.0.1:
       version "4.1.1"
       resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
       integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
    @@ -4165,7 +3991,7 @@ q@^1.5.0, q@^1.5.1:
       resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz"
       integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
     
    -qjobs@^1.1.4, qjobs@^1.2.0:
    +qjobs@^1.1.4:
       version "1.2.0"
       resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz"
       integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==
    @@ -4218,7 +4044,7 @@ randomfill@^1.0.3:
         randombytes "^2.0.5"
         safe-buffer "^5.1.0"
     
    -range-parser@^1.2.0, range-parser@^1.2.1:
    +range-parser@^1.2.0:
       version "1.2.1"
       resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
       integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
    @@ -4349,11 +4175,6 @@ request@2.88.0:
         tunnel-agent "^0.6.0"
         uuid "^3.3.2"
     
    -require-directory@^2.1.1:
    -  version "2.1.1"
    -  resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
    -  integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
    -
     require-uncached@^1.0.3:
       version "1.0.3"
       resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz"
    @@ -4399,7 +4220,7 @@ ret@~0.1.10:
       resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
       integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
     
    -rfdc@^1.1.2, rfdc@^1.3.0:
    +rfdc@^1.1.2:
       version "1.4.1"
       resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz"
       integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
    @@ -4411,13 +4232,6 @@ rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.3:
       dependencies:
         glob "^7.1.3"
     
    -rimraf@^3.0.2:
    -  version "3.0.2"
    -  resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
    -  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
    -  dependencies:
    -    glob "^7.1.3"
    -
     rimraf@~2.6.2:
       version "2.6.3"
       resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
    @@ -4469,12 +4283,7 @@ rx-lite-aggregates@^4.0.8:
       dependencies:
         rx-lite "*"
     
    -rx-lite@*:
    -  version "3.1.2"
    -  resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz"
    -  integrity sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==
    -
    -rx-lite@^4.0.8:
    +rx-lite@*, rx-lite@^4.0.8:
       version "4.0.8"
       resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz"
       integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==
    @@ -4683,14 +4492,6 @@ socket.io-adapter@~1.1.0:
       resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz"
       integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
     
    -socket.io-adapter@~2.5.2:
    -  version "2.5.5"
    -  resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz"
    -  integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==
    -  dependencies:
    -    debug "~4.3.4"
    -    ws "~8.17.1"
    -
     socket.io-client@2.1.1:
       version "2.1.1"
       resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz"
    @@ -4720,27 +4521,6 @@ socket.io-parser@~3.2.0:
         debug "~3.1.0"
         isarray "2.0.1"
     
    -socket.io-parser@~4.2.4:
    -  version "4.2.4"
    -  resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz"
    -  integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==
    -  dependencies:
    -    "@socket.io/component-emitter" "~3.1.0"
    -    debug "~4.3.1"
    -
    -socket.io@^4.7.2:
    -  version "4.8.0"
    -  resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz"
    -  integrity sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==
    -  dependencies:
    -    accepts "~1.3.4"
    -    base64id "~2.0.0"
    -    cors "~2.8.5"
    -    debug "~4.3.2"
    -    engine.io "~6.6.0"
    -    socket.io-adapter "~2.5.2"
    -    socket.io-parser "~4.2.4"
    -
     socket.io@2.1.1:
       version "2.1.1"
       resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz"
    @@ -4896,15 +4676,6 @@ stream-shift@^1.0.0:
       resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz"
       integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
     
    -streamroller@^3.1.5:
    -  version "3.1.5"
    -  resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz"
    -  integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==
    -  dependencies:
    -    date-format "^4.0.14"
    -    debug "^4.3.4"
    -    fs-extra "^8.1.0"
    -
     streamroller@0.7.0:
       version "0.7.0"
       resolved "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz"
    @@ -4937,15 +4708,6 @@ string-width@^2.1.0, string-width@^2.1.1:
         is-fullwidth-code-point "^2.0.0"
         strip-ansi "^4.0.0"
     
    -string-width@^4.1.0, string-width@^4.2.0:
    -  version "4.2.3"
    -  resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
    -  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
    -  dependencies:
    -    emoji-regex "^8.0.0"
    -    is-fullwidth-code-point "^3.0.0"
    -    strip-ansi "^6.0.1"
    -
     string.prototype.trim@^1.2.9:
       version "1.2.9"
       resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz"
    @@ -4988,20 +4750,6 @@ strip-ansi@^4.0.0:
       dependencies:
         ansi-regex "^3.0.0"
     
    -strip-ansi@^6.0.0:
    -  version "6.0.1"
    -  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
    -  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
    -  dependencies:
    -    ansi-regex "^5.0.1"
    -
    -strip-ansi@^6.0.1:
    -  version "6.0.1"
    -  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
    -  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
    -  dependencies:
    -    ansi-regex "^5.0.1"
    -
     strip-bom@^3.0.0:
       version "3.0.0"
       resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
    @@ -5138,11 +4886,6 @@ tmp@^0.0.33, tmp@0.0.33, tmp@0.0.x:
       dependencies:
         os-tmpdir "~1.0.2"
     
    -tmp@^0.2.1:
    -  version "0.2.3"
    -  resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz"
    -  integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
    -
     to-array@0.1.4:
       version "0.1.4"
       resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz"
    @@ -5296,11 +5039,6 @@ typedarray@^0.0.6:
       resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
       integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
     
    -ua-parser-js@^0.7.30:
    -  version "0.7.39"
    -  resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz"
    -  integrity sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==
    -
     ultron@~1.1.0:
       version "1.1.1"
       resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz"
    @@ -5345,11 +5083,6 @@ unique-slug@^2.0.0:
       dependencies:
         imurmurhash "^0.1.4"
     
    -universalify@^0.1.0:
    -  version "0.1.2"
    -  resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
    -  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
    -
     unpipe@~1.0.0, unpipe@1.0.0:
       version "1.0.0"
       resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
    @@ -5440,11 +5173,6 @@ vargs@^0.1.0:
       resolved "https://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz"
       integrity sha512-d/j1kMUt0YjLCQPAI+VMZ7IKwNGjk8dSHMCrHq9txFOCcCIDoe8ck9FmPvABJgxIaZO1tabXmNojQG6mBkLLCw==
     
    -vary@^1:
    -  version "1.1.2"
    -  resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
    -  integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
    -
     verror@1.10.0:
       version "1.10.0"
       resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
    @@ -5578,15 +5306,6 @@ worker-farm@^1.7.0:
       dependencies:
         errno "~0.1.7"
     
    -wrap-ansi@^7.0.0:
    -  version "7.0.0"
    -  resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
    -  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
    -  dependencies:
    -    ansi-styles "^4.0.0"
    -    string-width "^4.1.0"
    -    strip-ansi "^6.0.0"
    -
     wrappy@1:
       version "1.0.2"
       resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
    @@ -5608,11 +5327,6 @@ ws@~3.3.1:
         safe-buffer "~5.1.0"
         ultron "~1.1.0"
     
    -ws@~8.17.1:
    -  version "8.17.1"
    -  resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz"
    -  integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
    -
     xmlhttprequest-ssl@~1.5.4:
       version "1.5.5"
       resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz"
    @@ -5628,11 +5342,6 @@ y18n@^4.0.0:
       resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
       integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
     
    -y18n@^5.0.5:
    -  version "5.0.8"
    -  resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
    -  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
    -
     yallist@^2.1.2:
       version "2.1.2"
       resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
    @@ -5643,24 +5352,6 @@ yallist@^3.0.2:
       resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
       integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
     
    -yargs-parser@^20.2.2:
    -  version "20.2.9"
    -  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
    -  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
    -
    -yargs@^16.1.1:
    -  version "16.2.0"
    -  resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
    -  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
    -  dependencies:
    -    cliui "^7.0.2"
    -    escalade "^3.1.1"
    -    get-caller-file "^2.0.5"
    -    require-directory "^2.1.1"
    -    string-width "^4.2.0"
    -    y18n "^5.0.5"
    -    yargs-parser "^20.2.2"
    -
     yeast@0.1.2:
       version "0.1.2"
       resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz"
    
6a944ca4805e

Call inspect on ids in RecordNotFound error

https://github.com/rails/railsJohn HawthornMar 10, 2025via ghsa
4 files changed · +8 7
  • activerecord/lib/active_record/core.rb+1 1 modified
    @@ -265,7 +265,7 @@ def find(*ids) # :nodoc:
             return super if StatementCache.unsupported_value?(id)
     
             cached_find_by([primary_key], [id]) ||
    -          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id}", name, primary_key, id))
    +          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id.inspect}", name, primary_key, id))
           end
     
           def find_by(*args) # :nodoc:
    
  • activerecord/lib/active_record/relation/finder_methods.rb+4 3 modified
    @@ -424,12 +424,13 @@ def raise_record_not_found_exception!(ids = nil, result_size = nil, expected_siz
             error << " with#{conditions}" if conditions
             raise RecordNotFound.new(error, name, key)
           elsif Array.wrap(ids).size == 1
    -        error = "Couldn't find #{name} with '#{key}'=#{ids}#{conditions}"
    +        id = Array.wrap(ids)[0]
    +        error = "Couldn't find #{name} with '#{key}'=#{id.inspect}#{conditions}"
             raise RecordNotFound.new(error, name, key, ids)
           else
             error = +"Couldn't find all #{name.pluralize} with '#{key}': "
    -        error << "(#{ids.join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    -        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.join(', ')}." if not_found_ids
    +        error << "(#{ids.map(&:inspect).join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    +        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.map(&:inspect).join(', ')}." if not_found_ids
             raise RecordNotFound.new(error, name, key, ids)
           end
         end
    
  • activerecord/test/cases/associations/has_many_through_associations_test.rb+1 1 modified
    @@ -1061,7 +1061,7 @@ def test_collection_singular_ids_through_setter_raises_exception_when_invalid_id
         author = authors(:david)
         ids = [categories(:general).name, "Unknown"]
         e = assert_raises(ActiveRecord::RecordNotFound) { author.essay_category_ids = ids }
    -    msg = "Couldn't find all Categories with 'name': (General, Unknown) (found 1 results, but was looking for 2). Couldn't find Category with name Unknown."
    +    msg = %{Couldn't find all Categories with 'name': ("General", "Unknown") (found 1 results, but was looking for 2). Couldn't find Category with name "Unknown".}
         assert_equal msg, e.message
       end
     
    
  • activerecord/test/cases/finder_test.rb+2 2 modified
    @@ -1698,7 +1698,7 @@ def test_find_one_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello World!"
           end
    -      assert_equal "Couldn't find MercedesCar with 'name'=Hello World!", e.message
    +      assert_equal %{Couldn't find MercedesCar with 'name'="Hello World!"}, e.message
         end
       end
     
    @@ -1708,7 +1708,7 @@ def test_find_some_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello", "World!"
           end
    -      assert_equal "Couldn't find all MercedesCars with 'name': (Hello, World!) (found 0 results, but was looking for 2).", e.message
    +      assert_equal %{Couldn't find all MercedesCars with 'name': ("Hello", "World!") (found 0 results, but was looking for 2).}, e.message
         end
       end
     
    
568c0bc2f1e7

Call inspect on ids in RecordNotFound error

https://github.com/rails/railsJohn HawthornMar 10, 2025via ghsa
4 files changed · +8 7
  • activerecord/lib/active_record/core.rb+1 1 modified
    @@ -277,7 +277,7 @@ def find(*ids) # :nodoc:
             return super if StatementCache.unsupported_value?(id)
     
             cached_find_by([primary_key], [id]) ||
    -          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id}", name, primary_key, id))
    +          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id.inspect}", name, primary_key, id))
           end
     
           def find_by(*args) # :nodoc:
    
  • activerecord/lib/active_record/relation/finder_methods.rb+4 3 modified
    @@ -424,12 +424,13 @@ def raise_record_not_found_exception!(ids = nil, result_size = nil, expected_siz
             error << " with#{conditions}" if conditions
             raise RecordNotFound.new(error, name, key)
           elsif Array.wrap(ids).size == 1
    -        error = "Couldn't find #{name} with '#{key}'=#{ids}#{conditions}"
    +        id = Array.wrap(ids)[0]
    +        error = "Couldn't find #{name} with '#{key}'=#{id.inspect}#{conditions}"
             raise RecordNotFound.new(error, name, key, ids)
           else
             error = +"Couldn't find all #{name.pluralize} with '#{key}': "
    -        error << "(#{ids.join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    -        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.join(', ')}." if not_found_ids
    +        error << "(#{ids.map(&:inspect).join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    +        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.map(&:inspect).join(', ')}." if not_found_ids
             raise RecordNotFound.new(error, name, key, ids)
           end
         end
    
  • activerecord/test/cases/associations/has_many_through_associations_test.rb+1 1 modified
    @@ -1061,7 +1061,7 @@ def test_collection_singular_ids_through_setter_raises_exception_when_invalid_id
         author = authors(:david)
         ids = [categories(:general).name, "Unknown"]
         e = assert_raises(ActiveRecord::RecordNotFound) { author.essay_category_ids = ids }
    -    msg = "Couldn't find all Categories with 'name': (General, Unknown) (found 1 results, but was looking for 2). Couldn't find Category with name Unknown."
    +    msg = %{Couldn't find all Categories with 'name': ("General", "Unknown") (found 1 results, but was looking for 2). Couldn't find Category with name "Unknown".}
         assert_equal msg, e.message
       end
     
    
  • activerecord/test/cases/finder_test.rb+2 2 modified
    @@ -1731,7 +1731,7 @@ def test_find_one_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello World!"
           end
    -      assert_equal "Couldn't find MercedesCar with 'name'=Hello World!", e.message
    +      assert_equal %{Couldn't find MercedesCar with 'name'="Hello World!"}, e.message
         end
       end
     
    @@ -1741,7 +1741,7 @@ def test_find_some_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello", "World!"
           end
    -      assert_equal "Couldn't find all MercedesCars with 'name': (Hello, World!) (found 0 results, but was looking for 2).", e.message
    +      assert_equal %{Couldn't find all MercedesCars with 'name': ("Hello", "World!") (found 0 results, but was looking for 2).}, e.message
         end
       end
     
    
3beef2001373

Call inspect on ids in RecordNotFound error

https://github.com/rails/railsJohn HawthornMar 10, 2025via ghsa
4 files changed · +8 7
  • activerecord/lib/active_record/core.rb+1 1 modified
    @@ -250,7 +250,7 @@ def find(*ids) # :nodoc:
             return super if StatementCache.unsupported_value?(id)
     
             cached_find_by([primary_key], [id]) ||
    -          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id}", name, primary_key, id))
    +          raise(RecordNotFound.new("Couldn't find #{name} with '#{primary_key}'=#{id.inspect}", name, primary_key, id))
           end
     
           def find_by(*args) # :nodoc:
    
  • activerecord/lib/active_record/relation/finder_methods.rb+4 3 modified
    @@ -412,12 +412,13 @@ def raise_record_not_found_exception!(ids = nil, result_size = nil, expected_siz
             error << " with#{conditions}" if conditions
             raise RecordNotFound.new(error, name, key)
           elsif Array.wrap(ids).size == 1
    -        error = "Couldn't find #{name} with '#{key}'=#{ids}#{conditions}"
    +        id = Array.wrap(ids)[0]
    +        error = "Couldn't find #{name} with '#{key}'=#{id.inspect}#{conditions}"
             raise RecordNotFound.new(error, name, key, ids)
           else
             error = +"Couldn't find all #{name.pluralize} with '#{key}': "
    -        error << "(#{ids.join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    -        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.join(', ')}." if not_found_ids
    +        error << "(#{ids.map(&:inspect).join(", ")})#{conditions} (found #{result_size} results, but was looking for #{expected_size})."
    +        error << " Couldn't find #{name.pluralize(not_found_ids.size)} with #{key.to_s.pluralize(not_found_ids.size)} #{not_found_ids.map(&:inspect).join(', ')}." if not_found_ids
             raise RecordNotFound.new(error, name, key, ids)
           end
         end
    
  • activerecord/test/cases/associations/has_many_through_associations_test.rb+1 1 modified
    @@ -1058,7 +1058,7 @@ def test_collection_singular_ids_through_setter_raises_exception_when_invalid_id
         author = authors(:david)
         ids = [categories(:general).name, "Unknown"]
         e = assert_raises(ActiveRecord::RecordNotFound) { author.essay_category_ids = ids }
    -    msg = "Couldn't find all Categories with 'name': (General, Unknown) (found 1 results, but was looking for 2). Couldn't find Category with name Unknown."
    +    msg = %{Couldn't find all Categories with 'name': ("General", "Unknown") (found 1 results, but was looking for 2). Couldn't find Category with name "Unknown".}
         assert_equal msg, e.message
       end
     
    
  • activerecord/test/cases/finder_test.rb+2 2 modified
    @@ -1698,7 +1698,7 @@ def test_find_one_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello World!"
           end
    -      assert_equal "Couldn't find MercedesCar with 'name'=Hello World!", e.message
    +      assert_equal %{Couldn't find MercedesCar with 'name'="Hello World!"}, e.message
         end
       end
     
    @@ -1708,7 +1708,7 @@ def test_find_some_message_with_custom_primary_key
           e = assert_raises(ActiveRecord::RecordNotFound) do
             model.find "Hello", "World!"
           end
    -      assert_equal "Couldn't find all MercedesCars with 'name': (Hello, World!) (found 0 results, but was looking for 2).", e.message
    +      assert_equal %{Couldn't find all MercedesCars with 'name': ("Hello", "World!") (found 0 results, but was looking for 2).}, e.message
         end
       end
     
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

7

News mentions

0

No linked articles in our index yet.