• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 84a2dfd2-cbf5-4e2d-9eb7-e276471bcc35

22 Oct 2025 11:08AM UTC coverage: 91.184% (+0.1%) from 91.051%
84a2dfd2-cbf5-4e2d-9eb7-e276471bcc35

push

circleci

web-flow
Bump vite from 5.4.20 to 5.4.21 in the npm_and_yarn group across 1 directory (#2062)

Bumps the npm_and_yarn group with 1 update in the / directory:
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).

Updates `vite` from 5.4.20 to 5.4.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.21</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.21 (2025-10-20)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix(dev): trim trailing slash before <code>server.fs.deny</code>
check (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20968">#20968</a>)
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20970">#20970</a>)
(<a
href="https://github.com/vitejs/vite/commit/<a class=hub.com/pulibrary/tigerdata-app/commit/cad1d31d0635dd8fd4ddfe6e5a92eb9ff13cd06c">cad1d31d0<a href="https://github.com/pulibrary/tigerdata-app/commit/c2277b4d23cf53321b272bce8dc929ddec37f4ef">&quot;&gt;cad1d31&lt;/a&gt;),
closes &lt;a
href=&quot;https://redirect.github.com/vitejs/vite/issues/20968&quot;&gt;#20968&lt;/a&gt;
&lt;a
href=&quot;https://redirect.github.com/vitejs/vite/issues/20970">#20970</a></li>
<li>chore: update CHANGELOG (<a
href="https://github.com/vitejs/vite/commit/<a class="double-link" href="https://github.com/pulibrary/tigerdata-app/commit/ca88ed7398288ce0c60176ac9a6392f10654c67c">ca88ed739</a><a href="https://github.com/pulibrary/tigerdata-app/commit/c2277b4d23cf53321b272bce8dc929ddec37f4ef">&quot;&gt;ca88ed7&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;Commits&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href=&quot;https://github.com/vitejs/vite/commit/</a><a class="double-link" href="https://github.com/pulibrary/tigerdata-app/commit/adce3c22c64cc9d44cc8f45cc92b543e3e4bf385">adce3c22c">adce3c2
release: v5.4.21
  • cad1d31 fix(dev): trim trailing slash before server.fs.deny check (
  • 2741 of 3006 relevant lines covered (91.18%)

    650.71 hits per line

    Source File
    Press 'n' to go to next uncovered line, 'b' for previous

    100.0
    /app/services/user_error_parser.rb
    1
    # frozen_string_literal: true
    
    2
    class UserErrorParser
    
    2✔
    3
      class << self
    
    2✔
    4
        def csv_users(errors_str)
    
    2✔
    5
          users = parse(errors_str)
    
    2✔
    6
          "uid,email,given_name,family_name,display_name,eligible_sponsor," \
    
    2✔
    7
          "eligible_manager,developer,sysadmin,tester_trainer,DateAdded,AddedBy,Notes\n" \
    
    8
          "#{users.join("\n")}"
    
    9
        end
    
    10
    
    
    11
        def parse(errors_str)
    
    2✔
    12
          errors = errors_str.split("\n")
    
    10✔
    13
          roles = errors.map { |error| parse_line(error) }.flatten
    
    32✔
    14
          user_roles = roles.group_by { |role| role[:uid] }
    
    96✔
    15
          user_roles.map do |uid, user_role|
    
    10✔
    16
            "#{uid},,,,,#{sponsor_flag(user_role)},#{manager_flag(user_role)},,,,#{report_date},ImportProcess,\"Capacity Early Adopter\""
    
    72✔
    17
          end
    
    18
        end
    
    19
    
    
    20
          private
    
    2✔
    21
    
    
    22
            def parse_line(error)
    
    2✔
    23
              error_messages = error.split(";")
    
    22✔
    24
              error_messages.map do |str|
    
    22✔
    25
                user_role = str.split(":").last
    
    86✔
    26
                parts = user_role.split(" for role ")
    
    86✔
    27
                uid = parts.first
    
    86✔
    28
                role = parts.last
    
    86✔
    29
                { uid: uid.strip, role: role.strip }
    
    86✔
    30
              end
    
    31
            end
    
    32
    
    
    33
            def report_date
    
    2✔
    34
              Time.current.in_time_zone("America/New_York").strftime("%Y-%m-%d")
    
    72✔
    35
            end
    
    36
    
    
    37
            def sponsor_flag(roles)
    
    2✔
    38
              if roles.count { |data| data[:role] == "Data Sponsor" }.positive?
    
    158✔
    39
                "TRUE"
    
    22✔
    40
              else
    
    41
                ""
    
    50✔
    42
              end
    
    43
            end
    
    44
    
    
    45
            def manager_flag(roles)
    
    2✔
    46
              if roles.count { |data| data[:role] == "Data Manager" }.positive?
    
    158✔
    47
                "TRUE"
    
    16✔
    48
              else
    
    49
                ""
    
    56✔
    50
              end
    
    51
            end
    
    52
      end
    
    53
    end
    
    STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
    ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

    © 2026 Coveralls, Inc