• 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/models/project_validator.rb
    1
    class ProjectValidator < ActiveModel::Validator
    
    5✔
    2
        def validate(project)
    
    5✔
    3
            @schema = TigerdataSchema.new(namespace: "tigerdata", type: "tigerdata:project")
    
    1,454✔
    4
    
    
    5
            # we need this because this method references the metadata_json which is not updated until the project is saved
    
    6
            project.metadata = project.metadata_model
    
    1,454✔
    7
    
    
    8
            # Required fields, always validate
    
    9
            validate_role(project:, netid: project.metadata_model.data_manager, role: "Data Manager")
    
    1,454✔
    10
            validate_role(project:, netid: project.metadata_model.data_sponsor, role: "Data Sponsor")
    
    1,454✔
    11
    
    
    12
            # Validate if present
    
    13
            project.metadata_model.data_user_read_only&.each { |read_only| validate_role(project:, netid: read_only, role: "Data User Read Only")}
    
    1,708✔
    14
            project.metadata_model.data_user_read_write&.each { |read_write| validate_role(project:, netid: read_write, role: "Data User Read Write")}
    
    1,571✔
    15
    
    
    16
            # validate all required fields
    
    17
            required_metadata_field_errors = []
    
    1,454✔
    18
            required_metadata = required_attributes(project:)
    
    1,454✔
    19
            if required_metadata.values.include?(nil)
    
    1,454✔
    20
                required_keys.each do |attr|
    
    14✔
    21
                    value = required_metadata[attr]
    
    98✔
    22
                    required_metadata_field_errors << "Missing metadata value for #{attr}" if value.nil? && project.metadata_json.include?(attr)
    
    98✔
    23
                end
    
    24
            end
    
    25
            if required_metadata_field_errors.count > 0
    
    1,454✔
    26
                project.errors.add :base, "Invalid Project Metadata it does not match the schema #{TigerdataSchema::SCHEMA_VERSION}\n #{required_metadata_field_errors.join(", ")}"
    
    14✔
    27
            end
    
    28
        end
    
    29
    
    
    30
        private
    
    5✔
    31
    
    
    32
        def validate_role(project:, netid:, role:)
    
    5✔
    33
            if netid.blank?
    
    3,279✔
    34
                project.errors.add :base, "Missing netid for role #{role}"
    
    10✔
    35
            elsif User.where(uid: netid).empty?
    
    3,269✔
    36
                project.errors.add :base, "Invalid netid: #{netid} for role #{role}"
    
    84✔
    37
            end
    
    38
        end
    
    39
    
    
    40
        def required_field_labels
    
    5✔
    41
            @schema.required_project_schema_fields.pluck(:name)
    
    36,312✔
    42
        end
    
    43
    
    
    44
        def required_keys
    
    5✔
    45
            tableized = required_field_labels.map { |v| v.underscore }
    
    290,496✔
    46
            tableized
    
    36,312✔
    47
        end
    
    48
    
    
    49
        def required_attributes(project:)
    
    5✔
    50
            project.metadata_json.select { |k, _v| required_keys.include?(k) }
    
    37,752✔
    51
        end
    
    52
    
    
    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

    © 2025 Coveralls, Inc