dependabot-bun 0.398.0 → 0.399.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab75a705da7df78c2196ab5b502fc5a9292b0a202482604b18cd9b7871ca64b5
4
- data.tar.gz: e7d596c1782e717d6ab703aa2d32b925c8d4dd6b052e4a11221084cd35bac4a9
3
+ metadata.gz: d59bf33354551f9161677330979c54091111a200a40fca829414ef1a248dee2e
4
+ data.tar.gz: 9242abc5d378aa15d36df47f5e2e6affdc746488b1fa9f7dee8b37a1cdd67c25
5
5
  SHA512:
6
- metadata.gz: 6e9a38ebe8c6e15fac9767f5f99a5b92f6ed6def0eb5abce44a29ae4acac62326c309e8535767e5342a06fe686bb1c6925117ab8e8b943879bf1f2b93ac56e1d
7
- data.tar.gz: 282b66e218629492f198b6083835fda5a2fc0035b794c4b66e4019b2223ace16469a05786f591008531949f4485a361a37db90ec503e895984e72b3e112b685f
6
+ metadata.gz: 6c53fd5237fb74ca862b33716177c4a151f8eafcd44471d174c93a003bd511669536198d03513bc61316e880d288d2c5eb00c769fe5633f4cadd21df8e5438cb
7
+ data.tar.gz: c9fb0790b0f0945e034fa514a7c02344bfd58ee7f410e4e90cf3d4c3186320556883edae4fc76ca0b4ea321e24879360256ebf7c89e91c80861f9ed7f36610b8
@@ -6021,9 +6021,10 @@
6021
6021
  }
6022
6022
  },
6023
6023
  "node_modules/ip-address": {
6024
- "version": "10.4.0",
6025
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz",
6026
- "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==",
6024
+ "version": "10.7.2",
6025
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
6026
+ "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==",
6027
+ "license": "MIT",
6027
6028
  "engines": {
6028
6029
  "node": ">= 12"
6029
6030
  }
@@ -20865,9 +20866,9 @@
20865
20866
  }
20866
20867
  },
20867
20868
  "ip-address": {
20868
- "version": "10.4.0",
20869
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz",
20870
- "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ=="
20869
+ "version": "10.7.2",
20870
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
20871
+ "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w=="
20871
20872
  },
20872
20873
  "is-arguments": {
20873
20874
  "version": "1.1.0",
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
5
+ require "dependabot/bun/requirement"
5
6
 
6
7
  module Dependabot
7
8
  module Bun
@@ -179,11 +180,35 @@ module Dependabot
179
180
  def self.find_highest_version_from_constraint_expression(constraint_expression, dependabot_versions = nil)
180
181
  parsed_constraints = parse_constraints(constraint_expression, dependabot_versions)
181
182
 
182
- return nil unless parsed_constraints
183
+ return nil if parsed_constraints.nil? || parsed_constraints.empty?
184
+
185
+ parsed_versions = parsed_constraints.filter_map { |parsed| parsed[:version] }
186
+ parsed_versions = parsed_versions.map { |version| Version.new(version) }
187
+ candidates = T.let(parsed_versions + (dependabot_versions || []), T::Array[Dependabot::Version])
183
188
 
184
- parsed_constraints
185
- .filter_map { |parsed| parsed[:version] } # Extract all versions
186
- .max_by { |version| Version.new(version) }
189
+ return candidates.max&.to_s if unconstrained_expression?(constraint_expression)
190
+
191
+ matching_versions_for(constraint_expression, candidates).max&.to_s
192
+ end
193
+
194
+ sig do
195
+ params(
196
+ constraint_expression: T.nilable(String),
197
+ candidates: T::Array[Dependabot::Version]
198
+ ).returns(T::Array[Dependabot::Version])
199
+ end
200
+ def self.matching_versions_for(constraint_expression, candidates)
201
+ requirements = Requirement.requirements_array(constraint_expression)
202
+ candidates.select do |version|
203
+ requirements.any? { |requirement| requirement.satisfied_by?(version) }
204
+ end
205
+ end
206
+
207
+ sig { params(constraint_expression: T.nilable(String)).returns(T::Boolean) }
208
+ def self.unconstrained_expression?(constraint_expression)
209
+ constraint_expression.to_s.split("||").map(&:strip).any? do |group|
210
+ SEMVER_CONSTANTS.include?(group)
211
+ end
187
212
  end
188
213
 
189
214
  # Parse all constraints (split by logical OR `||`) and convert to Ruby-compatible constraints.
@@ -12,7 +12,7 @@ module Dependabot
12
12
  class Requirement < Dependabot::Requirement
13
13
  extend T::Sig
14
14
 
15
- AND_SEPARATOR = /(?<=[a-zA-Z0-9*])\s+(?:&+\s+)?(?!\s*[|-])/
15
+ AND_SEPARATOR = /(?<=[a-zA-Z0-9*])\s++(?:&++\s++)?(?!\s*+[,|-])/
16
16
  OR_SEPARATOR = /(?<=[a-zA-Z0-9*])\s*\|+/
17
17
 
18
18
  # Override the version pattern to allow a 'v' prefix
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-bun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.398.0
4
+ version: 0.399.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.398.0
18
+ version: 0.399.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.398.0
25
+ version: 0.399.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -355,7 +355,7 @@ licenses:
355
355
  - MIT
356
356
  metadata:
357
357
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
358
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.398.0
358
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.399.0
359
359
  rdoc_options: []
360
360
  require_paths:
361
361
  - lib