dependabot-elm 0.288.0 → 0.290.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dependabot/elm/file_fetcher.rb +6 -3
- data/lib/dependabot/elm/file_parser.rb +83 -4
- data/lib/dependabot/elm/file_updater.rb +2 -2
- data/lib/dependabot/elm/language.rb +31 -0
- data/lib/dependabot/elm/package_manager.rb +56 -0
- data/lib/dependabot/elm/update_checker.rb +2 -2
- data/lib/dependabot/elm.rb +2 -0
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c933b077dbf022e861291745f787ffb9b09be81f165d6584aad19559a693a32a
|
4
|
+
data.tar.gz: 73f1998425d872b8d542048781b9b5de39c5888b83f9b85ef2640067ff3e9970
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a73375e1b466d3aaaa46321e25aa46683e5117658e301d9e05c876cf952abfcedb255687c1dc6d0e10f46e834c5debab7cdc67e4b8723272a0f79b94bda6262f
|
7
|
+
data.tar.gz: 65d4d763b13f124ee9b6a718c22b9e2014805916be176d22e13b6bdb5b03912e72f7144b1966240aad61d7d221a4f82338a3b857bae13702c9956b8c5d4205a2
|
@@ -13,12 +13,12 @@ module Dependabot
|
|
13
13
|
|
14
14
|
sig { override.params(filenames: T::Array[String]).returns(T::Boolean) }
|
15
15
|
def self.required_files_in?(filenames)
|
16
|
-
filenames.include?(
|
16
|
+
filenames.include?(MANIFEST_FILE)
|
17
17
|
end
|
18
18
|
|
19
19
|
sig { override.returns(String) }
|
20
20
|
def self.required_files_message
|
21
|
-
"Repo must contain an elm-package.json or an
|
21
|
+
"Repo must contain an elm-package.json or an #{MANIFEST_FILE}"
|
22
22
|
end
|
23
23
|
|
24
24
|
sig { override.returns(T::Array[DependencyFile]) }
|
@@ -38,7 +38,10 @@ module Dependabot
|
|
38
38
|
def elm_json
|
39
39
|
return @elm_json if defined?(@elm_json)
|
40
40
|
|
41
|
-
@elm_json = T.let(
|
41
|
+
@elm_json = T.let(
|
42
|
+
fetch_file_if_present(MANIFEST_FILE),
|
43
|
+
T.nilable(Dependabot::DependencyFile)
|
44
|
+
)
|
42
45
|
end
|
43
46
|
end
|
44
47
|
end
|
@@ -6,6 +6,8 @@ require "dependabot/errors"
|
|
6
6
|
require "dependabot/file_parsers"
|
7
7
|
require "dependabot/file_parsers/base"
|
8
8
|
require "dependabot/elm/requirement"
|
9
|
+
require "dependabot/elm/language"
|
10
|
+
require "dependabot/elm/package_manager"
|
9
11
|
|
10
12
|
module Dependabot
|
11
13
|
module Elm
|
@@ -22,8 +24,80 @@ module Dependabot
|
|
22
24
|
dependency_set.dependencies.sort_by(&:name)
|
23
25
|
end
|
24
26
|
|
27
|
+
sig { returns(Ecosystem) }
|
28
|
+
def ecosystem
|
29
|
+
@ecosystem ||= T.let(
|
30
|
+
Ecosystem.new(
|
31
|
+
name: ECOSYSTEM,
|
32
|
+
package_manager: package_manager,
|
33
|
+
language: language
|
34
|
+
),
|
35
|
+
T.nilable(Ecosystem)
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
25
39
|
private
|
26
40
|
|
41
|
+
sig { returns(Ecosystem::VersionManager) }
|
42
|
+
def package_manager
|
43
|
+
@package_manager ||= T.let(
|
44
|
+
PackageManager.new(elm_version || DEFAULT_ELM_VERSION, elm_requirement),
|
45
|
+
T.nilable(Ecosystem::VersionManager)
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
sig { returns(T.nilable(Ecosystem::VersionManager)) }
|
50
|
+
def language
|
51
|
+
@language ||= T.let(
|
52
|
+
Language.new(elm_version || DEFAULT_ELM_VERSION, elm_requirement),
|
53
|
+
T.nilable(Ecosystem::VersionManager)
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
sig { returns(T.nilable(Dependabot::Elm::Requirement)) }
|
58
|
+
def elm_requirement
|
59
|
+
@elm_requirement ||= T.let(
|
60
|
+
extract_version_requirement(ELM_VERSION_KEY),
|
61
|
+
T.nilable(Dependabot::Elm::Requirement)
|
62
|
+
)
|
63
|
+
end
|
64
|
+
|
65
|
+
sig { returns(T.nilable(String)) }
|
66
|
+
def elm_version
|
67
|
+
content = extract_version(ELM_VERSION_KEY)
|
68
|
+
return unless content
|
69
|
+
|
70
|
+
@elm_version ||= T.let(content, T.nilable(String))
|
71
|
+
end
|
72
|
+
|
73
|
+
sig { params(field: String).returns(T.nilable(Dependabot::Elm::Requirement)) }
|
74
|
+
def extract_version_requirement(field)
|
75
|
+
content = extract_version_content(field)
|
76
|
+
return unless content
|
77
|
+
|
78
|
+
Dependabot::Elm::Requirement.new(content)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Extracts the version content (e.g., "1.9.1" or "<= 1.9.1") and parses it to return only the version part
|
82
|
+
sig { params(field: String).returns(T.nilable(String)) }
|
83
|
+
def extract_version(field)
|
84
|
+
version_content = extract_version_content(field)
|
85
|
+
return nil unless version_content
|
86
|
+
|
87
|
+
# Extract only the version part (e.g., "1.9.1") from the string
|
88
|
+
version_match = version_content.match(/(\d+\.\d+\.\d+)/)
|
89
|
+
version_match ? version_match[1] : nil
|
90
|
+
end
|
91
|
+
|
92
|
+
sig { params(field: String).returns(T.nilable(String)) }
|
93
|
+
def extract_version_content(field)
|
94
|
+
parsed_version = parsed_elm_json.fetch(field, nil)
|
95
|
+
|
96
|
+
return if parsed_version.nil? || parsed_version.empty?
|
97
|
+
|
98
|
+
parsed_version
|
99
|
+
end
|
100
|
+
|
27
101
|
# For docs on elm.json, see:
|
28
102
|
# https://github.com/elm/compiler/blob/master/docs/elm.json/application.md
|
29
103
|
# https://github.com/elm/compiler/blob/master/docs/elm.json/package.md
|
@@ -62,7 +136,7 @@ module Dependabot
|
|
62
136
|
requirement: requirement,
|
63
137
|
groups: [group],
|
64
138
|
source: nil,
|
65
|
-
file:
|
139
|
+
file: MANIFEST_FILE
|
66
140
|
}]
|
67
141
|
|
68
142
|
Dependency.new(
|
@@ -73,14 +147,16 @@ module Dependabot
|
|
73
147
|
)
|
74
148
|
end
|
75
149
|
|
150
|
+
sig { returns(String) }
|
76
151
|
def repo_type
|
77
152
|
parsed_elm_json.fetch("type")
|
78
153
|
end
|
79
154
|
|
155
|
+
sig { override.void }
|
80
156
|
def check_required_files
|
81
157
|
return if elm_json
|
82
158
|
|
83
|
-
raise "No
|
159
|
+
raise "No #{MANIFEST_FILE}!"
|
84
160
|
end
|
85
161
|
|
86
162
|
def version_for(version_requirement)
|
@@ -94,11 +170,14 @@ module Dependabot
|
|
94
170
|
def parsed_elm_json
|
95
171
|
@parsed_elm_json ||= JSON.parse(elm_json.content)
|
96
172
|
rescue JSON::ParserError
|
97
|
-
raise Dependabot::DependencyFileNotParseable, elm_json
|
173
|
+
raise Dependabot::DependencyFileNotParseable, elm_json&.path || MANIFEST_FILE
|
98
174
|
end
|
99
175
|
|
100
176
|
def elm_json
|
101
|
-
@elm_json ||=
|
177
|
+
@elm_json ||= T.let(
|
178
|
+
get_original_file(MANIFEST_FILE),
|
179
|
+
T.nilable(Dependabot::DependencyFile)
|
180
|
+
)
|
102
181
|
end
|
103
182
|
end
|
104
183
|
end
|
@@ -38,7 +38,7 @@ module Dependabot
|
|
38
38
|
def check_required_files
|
39
39
|
return if elm_json_files.any?
|
40
40
|
|
41
|
-
raise "No
|
41
|
+
raise "No #{MANIFEST_FILE}"
|
42
42
|
end
|
43
43
|
|
44
44
|
def updated_elm_json_content(file)
|
@@ -49,7 +49,7 @@ module Dependabot
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def elm_json_files
|
52
|
-
dependency_files.select { |f| f.name.end_with?(
|
52
|
+
dependency_files.select { |f| f.name.end_with?(MANIFEST_FILE) }
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/elm/version"
|
6
|
+
require "dependabot/ecosystem"
|
7
|
+
|
8
|
+
module Dependabot
|
9
|
+
module Elm
|
10
|
+
LANGUAGE = "elm"
|
11
|
+
|
12
|
+
class Language < Dependabot::Ecosystem::VersionManager
|
13
|
+
extend T::Sig
|
14
|
+
|
15
|
+
sig { params(raw_version: String, requirement: T.nilable(Requirement)).void }
|
16
|
+
def initialize(raw_version, requirement = nil)
|
17
|
+
super(LANGUAGE, Version.new(raw_version), [], [], requirement)
|
18
|
+
end
|
19
|
+
|
20
|
+
sig { returns(T::Boolean) }
|
21
|
+
def deprecated?
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
sig { returns(T::Boolean) }
|
26
|
+
def unsupported?
|
27
|
+
false
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/elm/version"
|
6
|
+
require "dependabot/ecosystem"
|
7
|
+
require "dependabot/elm/requirement"
|
8
|
+
|
9
|
+
module Dependabot
|
10
|
+
module Elm
|
11
|
+
ECOSYSTEM = "elm"
|
12
|
+
PACKAGE_MANAGER = "elm"
|
13
|
+
ELM_VERSION_KEY = "elm-version"
|
14
|
+
MANIFEST_FILE = "elm.json"
|
15
|
+
DEFAULT_ELM_VERSION = "0.19.0"
|
16
|
+
|
17
|
+
# Keep versions in ascending order
|
18
|
+
SUPPORTED_ELM_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
|
19
|
+
|
20
|
+
# Currently, we don't support any deprecated versions of Elm
|
21
|
+
# When a version is going to be unsupported, it will be added here for a while to give users time to upgrade
|
22
|
+
# Example for deprecation:
|
23
|
+
# DEPRECATED_ELM_VERSIONS = T.let([Version.new("1")].freeze, T::Array[Dependabot::Version])
|
24
|
+
DEPRECATED_ELM_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
|
25
|
+
|
26
|
+
class PackageManager < Dependabot::Ecosystem::VersionManager
|
27
|
+
extend T::Sig
|
28
|
+
|
29
|
+
sig do
|
30
|
+
params(
|
31
|
+
raw_version: String,
|
32
|
+
requirement: T.nilable(Requirement)
|
33
|
+
).void
|
34
|
+
end
|
35
|
+
def initialize(raw_version, requirement = nil)
|
36
|
+
super(
|
37
|
+
PACKAGE_MANAGER,
|
38
|
+
Version.new(raw_version),
|
39
|
+
DEPRECATED_ELM_VERSIONS,
|
40
|
+
SUPPORTED_ELM_VERSIONS,
|
41
|
+
requirement,
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
sig { returns(T::Boolean) }
|
46
|
+
def deprecated?
|
47
|
+
false
|
48
|
+
end
|
49
|
+
|
50
|
+
sig { returns(T::Boolean) }
|
51
|
+
def unsupported?
|
52
|
+
false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -56,8 +56,8 @@ module Dependabot
|
|
56
56
|
def version_resolver
|
57
57
|
@version_resolver ||=
|
58
58
|
begin
|
59
|
-
unless dependency.requirements.any? { |r| r.fetch(:file) ==
|
60
|
-
raise Dependabot::DependencyFileNotResolvable, "No
|
59
|
+
unless dependency.requirements.any? { |r| r.fetch(:file) == MANIFEST_FILE }
|
60
|
+
raise Dependabot::DependencyFileNotResolvable, "No #{MANIFEST_FILE} found"
|
61
61
|
end
|
62
62
|
|
63
63
|
Elm19VersionResolver.new(
|
data/lib/dependabot/elm.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
# These all need to be required so the various classes can be registered in a
|
5
5
|
# lookup table of package manager names to concrete classes.
|
6
|
+
require "dependabot/elm/language"
|
7
|
+
require "dependabot/elm/package_manager"
|
6
8
|
require "dependabot/elm/file_fetcher"
|
7
9
|
require "dependabot/elm/file_parser"
|
8
10
|
require "dependabot/elm/update_checker"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-elm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.290.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dependabot-common
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.290.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.290.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: debug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -247,7 +247,9 @@ files:
|
|
247
247
|
- lib/dependabot/elm/file_parser.rb
|
248
248
|
- lib/dependabot/elm/file_updater.rb
|
249
249
|
- lib/dependabot/elm/file_updater/elm_json_updater.rb
|
250
|
+
- lib/dependabot/elm/language.rb
|
250
251
|
- lib/dependabot/elm/metadata_finder.rb
|
252
|
+
- lib/dependabot/elm/package_manager.rb
|
251
253
|
- lib/dependabot/elm/requirement.rb
|
252
254
|
- lib/dependabot/elm/update_checker.rb
|
253
255
|
- lib/dependabot/elm/update_checker/cli_parser.rb
|
@@ -259,8 +261,8 @@ licenses:
|
|
259
261
|
- MIT
|
260
262
|
metadata:
|
261
263
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
262
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
263
|
-
post_install_message:
|
264
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.290.0
|
265
|
+
post_install_message:
|
264
266
|
rdoc_options: []
|
265
267
|
require_paths:
|
266
268
|
- lib
|
@@ -276,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
276
278
|
version: 3.1.0
|
277
279
|
requirements: []
|
278
280
|
rubygems_version: 3.5.9
|
279
|
-
signing_key:
|
281
|
+
signing_key:
|
280
282
|
specification_version: 4
|
281
283
|
summary: Provides Dependabot support for Elm
|
282
284
|
test_files: []
|