dependabot-maven 0.372.0 → 0.373.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: cfaef32e6543a816ec3c52d8677c6c63ea73348889bad4b9078eab44129a5bc7
4
- data.tar.gz: 9f50b3f5cf30dae29064aaf5dfca9f6471627583ea27563f2d8eaa1f66ca625a
3
+ metadata.gz: 1d3f17160cdfe3e8bf0255e367e134fddf4b9683ad6250d913d214247d1283a2
4
+ data.tar.gz: f463dd53e46376f2fb8c8d46d7af7f99b63eb6c5634063c20157a3e0a0bc3844
5
5
  SHA512:
6
- metadata.gz: 334ad6d99ee53b7a71647a6ccbb530a72a00910300d824f6c1000a107ca0f4436f045dee9edecd1c68b8a34ad41cdfba5487a56582a8a70e6f63d7c50bf69908
7
- data.tar.gz: 69d0944d5d774881e4f3e9260e016a14ab5aff41cff14b1b09a26bc4db09a5c5e0a97a2deed08db3ed71efaf93f652fa144b7bfd1e88be72294f40463e5aba41
6
+ metadata.gz: '0380e3fb5ab4a15710db2d8fbe943d4238515cdd8f61a04d566197614332d5d5fd3086605c8899ba6897558328d7b91a9df68159266fc17b79568b9336afa1e4'
7
+ data.tar.gz: ef9a00f454fcf6661d1d3e0e33e16d1d43b141801ef9af125798887cf93531ce4bf34b4632641c58bba6841e2b47111462ac3a840d1a04bb6b8017fbc3dbb841
@@ -6,19 +6,29 @@ require "sorbet-runtime"
6
6
  require "dependabot/requirement"
7
7
  require "dependabot/utils"
8
8
  require "dependabot/maven/version"
9
+ require "dependabot/maven/shared/shared_requirement"
9
10
 
10
11
  module Dependabot
11
12
  module Maven
12
- class Requirement < Dependabot::Requirement
13
+ class Requirement < Dependabot::Maven::Shared::SharedRequirement
13
14
  extend T::Sig
14
15
 
15
16
  quoted = OPS.keys.map { |k| Regexp.quote k }.join("|")
16
- OR_SYNTAX = T.let(/(?<=\]|\)),/, Regexp)
17
17
  PATTERN_RAW = T.let("\\s*(#{quoted})?\\s*(#{Maven::Version::VERSION_PATTERN})\\s*".freeze, String)
18
18
  PATTERN = T.let(/\A#{PATTERN_RAW}\z/, Regexp)
19
19
  # Like PATTERN, but the leading operator is required
20
20
  RUBY_STYLE_PATTERN = T.let(/\A\s*(#{quoted})\s*(#{Maven::Version::VERSION_PATTERN})\s*\z/, Regexp)
21
21
 
22
+ sig { override.returns(Regexp) }
23
+ def self.pattern
24
+ PATTERN
25
+ end
26
+
27
+ sig { override.returns(Regexp) }
28
+ def self.ruby_style_pattern
29
+ RUBY_STYLE_PATTERN
30
+ end
31
+
22
32
  sig { params(obj: T.any(String, Gem::Version)).returns(T::Array[T.any(String, T.untyped)]) }
23
33
  def self.parse(obj)
24
34
  return ["=", Maven::Version.new(obj.to_s)] if obj.is_a?(Gem::Version)
@@ -40,105 +50,11 @@ module Dependabot
40
50
  end
41
51
  end
42
52
 
43
- sig { params(requirements: T.untyped).void }
44
- def initialize(*requirements)
45
- requirements = requirements.flatten.flat_map do |req_string|
46
- convert_java_constraint_to_ruby_constraint(req_string)
47
- end
48
-
49
- super(requirements)
50
- end
51
-
52
53
  sig { params(version: T.untyped).returns(T::Boolean) }
53
54
  def satisfied_by?(version)
54
55
  version = Maven::Version.new(version.to_s)
55
56
  super
56
57
  end
57
-
58
- private
59
-
60
- sig { params(req_string: T.nilable(String)).returns(T::Array[String]) }
61
- def self.split_java_requirement(req_string)
62
- return [req_string || ""] unless req_string&.match?(OR_SYNTAX)
63
-
64
- req_string.split(OR_SYNTAX).flat_map do |str|
65
- next str if str.start_with?("(", "[")
66
-
67
- exacts, *rest = str.split(/,(?=\[|\()/)
68
- [*T.must(exacts).split(","), *rest]
69
- end
70
- end
71
- private_class_method :split_java_requirement
72
-
73
- sig do
74
- params(
75
- req_string: T.nilable(String)
76
- )
77
- .returns(T.nilable(T.any(T::Array[String], T::Array[T.nilable(String)])))
78
- end
79
- def convert_java_constraint_to_ruby_constraint(req_string)
80
- return unless req_string
81
-
82
- if self.class.send(:split_java_requirement, req_string).count > 1
83
- raise "Can't convert multiple Java reqs to a single Ruby one"
84
- end
85
-
86
- version_reqs = req_string.split(",").map(&:strip)
87
- if version_reqs.length > 1 && !version_reqs.all? { |s| PATTERN.match?(s) }
88
- return convert_java_range_to_ruby_range(req_string)
89
- end
90
-
91
- version_reqs.map do |r|
92
- # if an operator is already provided, use it
93
- next r if r.match?(RUBY_STYLE_PATTERN)
94
-
95
- convert_java_equals_req_to_ruby(r)
96
- end
97
- end
98
-
99
- # rubocop:disable Metrics/PerceivedComplexity
100
- sig { params(req_string: String).returns(T::Array[T.nilable(String)]) }
101
- def convert_java_range_to_ruby_range(req_string)
102
- parts = req_string.split(",").map(&:strip)
103
- lower_b = T.let(parts[0], T.nilable(String))
104
- upper_b = T.let(parts[1], T.nilable(String))
105
-
106
- lower_b =
107
- if lower_b && ["(", "["].include?(lower_b) then nil
108
- elsif lower_b&.start_with?("(") then "> #{lower_b.sub(/\(\s*/, '')}"
109
- elsif lower_b
110
- ">= #{lower_b.sub(/\[\s*/, '').strip}"
111
- end
112
-
113
- upper_b =
114
- if upper_b && [")", "]"].include?(upper_b) then nil
115
- elsif upper_b&.end_with?(")") then "< #{upper_b.sub(/\s*\)/, '')}"
116
- elsif upper_b
117
- "<= #{upper_b.sub(/\s*\]/, '').strip}"
118
- end
119
-
120
- [lower_b, upper_b].compact
121
- end
122
- # rubocop:enable Metrics/PerceivedComplexity
123
-
124
- sig { params(req_string: T.nilable(String)).returns(T.nilable(String)) }
125
- def convert_java_equals_req_to_ruby(req_string)
126
- return convert_wildcard_req(req_string) if req_string&.end_with?("+")
127
-
128
- # If a soft requirement is being used, treat it as an equality matcher
129
- return req_string unless req_string&.start_with?("[")
130
-
131
- req_string.gsub(/[\[\]\(\)]/, "")
132
- end
133
-
134
- sig { params(req_string: T.nilable(String)).returns(String) }
135
- def convert_wildcard_req(req_string)
136
- version = req_string&.split("+")&.first
137
- return ">= 0" if version.nil? || version.empty?
138
-
139
- version += "0" if version.end_with?(".")
140
- "~> #{version}"
141
- end
142
58
  end
143
59
  end
144
60
  end
@@ -0,0 +1,121 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "sorbet-runtime"
5
+
6
+ require "dependabot/requirement"
7
+
8
+ module Dependabot
9
+ module Maven
10
+ module Shared
11
+ class SharedRequirement < Dependabot::Requirement
12
+ extend T::Sig
13
+ extend T::Helpers
14
+
15
+ abstract!
16
+
17
+ OR_SYNTAX = T.let(/(?<=\]|\)),/, Regexp)
18
+
19
+ sig { abstract.returns(Regexp) }
20
+ def self.pattern; end
21
+
22
+ sig { abstract.returns(Regexp) }
23
+ def self.ruby_style_pattern; end
24
+
25
+ sig { params(requirements: T.untyped).void }
26
+ def initialize(*requirements)
27
+ requirements = requirements.flatten.flat_map do |req_string|
28
+ convert_java_constraint_to_ruby_constraint(req_string)
29
+ end
30
+
31
+ super(requirements)
32
+ end
33
+
34
+ private
35
+
36
+ sig { params(req_string: T.nilable(String)).returns(T::Array[String]) }
37
+ def self.split_java_requirement(req_string)
38
+ return [req_string || ""] unless req_string&.match?(OR_SYNTAX)
39
+
40
+ req_string.split(OR_SYNTAX).flat_map do |str|
41
+ next str if str.start_with?("(", "[")
42
+
43
+ exacts, *rest = str.split(/,(?=\[|\()/)
44
+ [*T.must(exacts).split(","), *rest]
45
+ end
46
+ end
47
+ private_class_method :split_java_requirement
48
+
49
+ sig do
50
+ params(
51
+ req_string: T.nilable(String)
52
+ )
53
+ .returns(T.nilable(T.any(T::Array[String], T::Array[T.nilable(String)])))
54
+ end
55
+ def convert_java_constraint_to_ruby_constraint(req_string)
56
+ return unless req_string
57
+
58
+ if self.class.send(:split_java_requirement, req_string).count > 1
59
+ raise "Can't convert multiple Java reqs to a single Ruby one"
60
+ end
61
+
62
+ version_reqs = req_string.split(",").map(&:strip)
63
+
64
+ if version_reqs.length > 1 && !version_reqs.all? { |s| self.class.pattern.match?(s) }
65
+ return convert_java_range_to_ruby_range(req_string)
66
+ end
67
+
68
+ version_reqs.map do |r|
69
+ # if an operator is already provided, use it
70
+ next r if r.match?(self.class.ruby_style_pattern)
71
+
72
+ convert_java_equals_req_to_ruby(r)
73
+ end
74
+ end
75
+
76
+ sig { params(req_string: String).returns(T::Array[T.nilable(String)]) }
77
+ def convert_java_range_to_ruby_range(req_string)
78
+ parts = req_string.split(",").map(&:strip)
79
+ lower_b = parse_lower_bound(parts[0])
80
+ upper_b = parse_upper_bound(parts[1])
81
+ [lower_b, upper_b].compact
82
+ end
83
+
84
+ sig { params(bound: T.nilable(String)).returns(T.nilable(String)) }
85
+ def parse_lower_bound(bound)
86
+ return nil if bound.nil? || ["(", "["].include?(bound)
87
+ return "> #{bound.sub(/\(\s*/, '')}" if bound.start_with?("(")
88
+
89
+ ">= #{bound.sub(/\[\s*/, '').strip}"
90
+ end
91
+
92
+ sig { params(bound: T.nilable(String)).returns(T.nilable(String)) }
93
+ def parse_upper_bound(bound)
94
+ return nil if bound.nil? || [")", "]"].include?(bound)
95
+ return "< #{bound.sub(/\s*\)/, '')}" if bound.end_with?(")")
96
+
97
+ "<= #{bound.sub(/\s*\]/, '').strip}"
98
+ end
99
+
100
+ sig { params(req_string: T.nilable(String)).returns(T.nilable(String)) }
101
+ def convert_java_equals_req_to_ruby(req_string)
102
+ return convert_wildcard_req(req_string) if req_string&.end_with?("+")
103
+
104
+ # If a soft requirement is being used, treat it as an equality matcher
105
+ return req_string unless req_string&.start_with?("[")
106
+
107
+ req_string.gsub(/[\[\]\(\)]/, "")
108
+ end
109
+
110
+ sig { params(req_string: T.nilable(String)).returns(String) }
111
+ def convert_wildcard_req(req_string)
112
+ version = req_string&.split("+")&.first
113
+ return ">= 0" if version.nil? || version.empty?
114
+
115
+ version += "0" if version.end_with?(".")
116
+ "~> #{version}"
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-maven
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.372.0
4
+ version: 0.373.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.372.0
18
+ version: 0.373.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.372.0
25
+ version: 0.373.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rexml
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -274,6 +274,7 @@ files:
274
274
  - lib/dependabot/maven/requirement.rb
275
275
  - lib/dependabot/maven/shared/shared_metadata_finder.rb
276
276
  - lib/dependabot/maven/shared/shared_package_details_fetcher.rb
277
+ - lib/dependabot/maven/shared/shared_requirement.rb
277
278
  - lib/dependabot/maven/shared/shared_version_finder.rb
278
279
  - lib/dependabot/maven/token_bucket.rb
279
280
  - lib/dependabot/maven/update_checker.rb
@@ -288,7 +289,7 @@ licenses:
288
289
  - MIT
289
290
  metadata:
290
291
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
291
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.372.0
292
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.373.0
292
293
  rdoc_options: []
293
294
  require_paths:
294
295
  - lib