dependabot-npm_and_yarn 0.271.0 → 0.273.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f50ca11122e4cb20467429d842d14a2f94ba49961bae91467427a9f5e5e527bd
|
4
|
+
data.tar.gz: 1e5cb3d387f9028704cbafdac219711f4fde4630398bc8372d41a0c0980bacaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f4db9619ad3e83704ff8761805ae2fb920c4573ce42a7c0cbf582fc10757bd7a8b1b5df85f781a253c5d4f9c47ff5323d40eb342f7a2f3e62aab269f66ebac6
|
7
|
+
data.tar.gz: 984b65763fa999cab20ca319dcd20406032bfda471612554a5ea1aa51cdc5d666bb31c444b487bf996e118f73b9cb8ba58b8d88615e04c1cfdf4f45f8bc4bad7
|
@@ -74,9 +74,11 @@ module Dependabot
|
|
74
74
|
INVALID_PACKAGE = /Can't install (?<package_req>.*): Missing/
|
75
75
|
SOCKET_HANG_UP = /(?:request to )?(?<url>.*): socket hang up/
|
76
76
|
ESOCKETTIMEDOUT = /(?<url>.*): ESOCKETTIMEDOUT/
|
77
|
+
UNABLE_TO_ACCESS = /unable to access '(?<url>.*)': Empty reply from server/
|
77
78
|
UNABLE_TO_AUTH_NPMRC = /Unable to authenticate, need: Basic, Bearer/
|
78
79
|
UNABLE_TO_AUTH_REGISTRY = /Unable to authenticate, need: *.*(Basic|BASIC) *.*realm="(?<url>.*)"/
|
79
80
|
MISSING_AUTH_TOKEN = /401 Unauthorized - GET (?<url>.*) - authentication token not provided/
|
81
|
+
AUTH_REQUIRED_ERROR = /(?<url>.*): authentication required/
|
80
82
|
INVALID_AUTH_TOKEN =
|
81
83
|
/401 Unauthorized - GET (?<url>.*) - unauthenticated: User cannot be authenticated with the token provided./
|
82
84
|
NPM_PACKAGE_REGISTRY = "https://npm.pkg.github.com"
|
@@ -88,8 +90,13 @@ module Dependabot
|
|
88
90
|
EMPTY_OBJECT_ERROR = /Object for dependency "(?<package>.*)" is empty/
|
89
91
|
ERROR_E401 = /code E401/
|
90
92
|
ERROR_E403 = /code E403/
|
93
|
+
REQUEST_ERROR_E403 = /Request "(?<pkg>.*)" returned a 403/
|
91
94
|
ERROR_EAI_AGAIN = /request to (?<url>.*) failed, reason: getaddrinfo EAI_AGAIN/
|
92
|
-
|
95
|
+
|
96
|
+
NPM_PACKAGE_NOT_FOUND_CODES = T.let([
|
97
|
+
/Couldn't find package "(?<pkg>.*)" on the "(?<regis>.*)" registry./,
|
98
|
+
/Couldn't find package "(?<pkg>.*)" required by "(?<dep>.*)" on the "(?<regis>.*)" registry./
|
99
|
+
].freeze, T::Array[Regexp])
|
93
100
|
|
94
101
|
# TODO: look into fixing this in npm, seems like a bug in the git
|
95
102
|
# downloader introduced in npm 7
|
@@ -416,8 +423,9 @@ module Dependabot
|
|
416
423
|
"Error while updating peer dependency."
|
417
424
|
end
|
418
425
|
|
419
|
-
if error_message.match?(ERROR_E401) || error_message.match?(ERROR_E403)
|
420
|
-
|
426
|
+
if error_message.match?(ERROR_E401) || error_message.match?(ERROR_E403) || error_message.match?(REQUEST_ERROR_E403) || error_message.match?(AUTH_REQUIRED_ERROR) # rubocop:disable Layout/LineLength
|
427
|
+
url = T.must(URI.decode_www_form_component(error_message).split("https://").last).split("/").first
|
428
|
+
raise Dependabot::PrivateSourceAuthenticationFailure, url
|
421
429
|
end
|
422
430
|
|
423
431
|
if error_message.match?(MISSING_PACKAGE)
|
@@ -531,7 +539,8 @@ module Dependabot
|
|
531
539
|
raise Dependabot::DependencyFileNotResolvable, msg
|
532
540
|
end
|
533
541
|
|
534
|
-
if (git_source = error_message.match(SOCKET_HANG_UP) || error_message.match(ESOCKETTIMEDOUT)
|
542
|
+
if (git_source = error_message.match(SOCKET_HANG_UP) || error_message.match(ESOCKETTIMEDOUT) ||
|
543
|
+
error_message.match(UNABLE_TO_ACCESS))
|
535
544
|
msg = sanitize_uri(git_source.named_captures.fetch("url"))
|
536
545
|
raise Dependabot::PrivateSourceTimedOut, msg
|
537
546
|
end
|
@@ -576,7 +585,10 @@ module Dependabot
|
|
576
585
|
raise Dependabot::DependencyFileNotResolvable, msg
|
577
586
|
end
|
578
587
|
|
579
|
-
|
588
|
+
package_errors = Regexp.union(NPM_PACKAGE_NOT_FOUND_CODES)
|
589
|
+
if (msg = error_message.match(package_errors))
|
590
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
591
|
+
end
|
580
592
|
|
581
593
|
raise error
|
582
594
|
end
|
@@ -48,8 +48,10 @@ module Dependabot
|
|
48
48
|
# ERR_PNPM_FETCH ERROR CODES
|
49
49
|
ERR_PNPM_FETCH_401 = /ERR_PNPM_FETCH_401.*GET (?<dependency_url>.*): - 401/
|
50
50
|
ERR_PNPM_FETCH_403 = /ERR_PNPM_FETCH_403.*GET (?<dependency_url>.*): - 403/
|
51
|
+
ERR_PNPM_FETCH_404 = /ERR_PNPM_FETCH_404.*GET (?<dependency_url>.*): - 404/
|
51
52
|
ERR_PNPM_FETCH_500 = /ERR_PNPM_FETCH_500.*GET (?<dependency_url>.*): - 500/
|
52
53
|
ERR_PNPM_FETCH_502 = /ERR_PNPM_FETCH_502.*GET (?<dependency_url>.*): - 502/
|
54
|
+
ERR_PNPM_FETCH_503 = /ERR_PNPM_FETCH_503.*GET (?<dependency_url>.*): - 503/
|
53
55
|
|
54
56
|
# ERR_PNPM_UNSUPPORTED_ENGINE
|
55
57
|
ERR_PNPM_UNSUPPORTED_ENGINE = /ERR_PNPM_UNSUPPORTED_ENGINE/
|
@@ -66,6 +68,16 @@ module Dependabot
|
|
66
68
|
PLATFORM_VERSION_REQUIREMENT = /wanted {(?<supported_ver>.*)} \(current: (?<detected_ver>.*)\)/
|
67
69
|
PLATFORM_PACAKGE_MANAGER = "pnpm"
|
68
70
|
|
71
|
+
INVALID_PACKAGE_SPEC = /Invalid package manager specification/
|
72
|
+
|
73
|
+
# Metadata inconsistent error codes
|
74
|
+
ERR_PNPM_META_FETCH_FAIL = /ERR_PNPM_META_FETCH_FAIL/
|
75
|
+
ERR_PNPM_BROKEN_METADATA_JSON = /ERR_PNPM_BROKEN_METADATA_JSON/
|
76
|
+
|
77
|
+
# Directory related error codes
|
78
|
+
ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND = /ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND*.*Could not install from \"(?<dir>.*)\" /
|
79
|
+
ERR_PNPM_WORKSPACE_PKG_NOT_FOUND = /ERR_PNPM_WORKSPACE_PKG_NOT_FOUND/
|
80
|
+
|
69
81
|
def run_pnpm_update(pnpm_lock:)
|
70
82
|
SharedHelpers.in_a_temporary_repo_directory(base_dir, repo_contents_path) do
|
71
83
|
File.write(".npmrc", npmrc_content(pnpm_lock))
|
@@ -111,6 +123,8 @@ module Dependabot
|
|
111
123
|
|
112
124
|
# rubocop:disable Metrics/AbcSize
|
113
125
|
# rubocop:disable Metrics/PerceivedComplexity
|
126
|
+
# rubocop:disable Metrics/MethodLength
|
127
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
114
128
|
def handle_pnpm_lock_updater_error(error, pnpm_lock)
|
115
129
|
error_message = error.message
|
116
130
|
|
@@ -131,7 +145,8 @@ module Dependabot
|
|
131
145
|
end
|
132
146
|
|
133
147
|
[FORBIDDEN_PACKAGE, MISSING_PACKAGE, UNAUTHORIZED_PACKAGE, ERR_PNPM_FETCH_401,
|
134
|
-
ERR_PNPM_FETCH_403, ERR_PNPM_FETCH_500, ERR_PNPM_FETCH_502]
|
148
|
+
ERR_PNPM_FETCH_403, ERR_PNPM_FETCH_404, ERR_PNPM_FETCH_500, ERR_PNPM_FETCH_502, ERR_PNPM_FETCH_503]
|
149
|
+
.each do |regexp|
|
135
150
|
next unless error_message.match?(regexp)
|
136
151
|
|
137
152
|
dependency_url = error_message.match(regexp).named_captures["dependency_url"]
|
@@ -147,6 +162,40 @@ module Dependabot
|
|
147
162
|
raise Dependabot::DependencyFileNotResolvable, msg
|
148
163
|
end
|
149
164
|
|
165
|
+
# TO-DO : investigate "packageManager" allowed regex
|
166
|
+
if error_message.match?(INVALID_PACKAGE_SPEC)
|
167
|
+
dependency_names = dependencies.map(&:name).join(", ")
|
168
|
+
|
169
|
+
msg = "Invalid package manager specification in package.json while resolving \"#{dependency_names}\"."
|
170
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
171
|
+
end
|
172
|
+
|
173
|
+
if error_message.match?(ERR_PNPM_META_FETCH_FAIL)
|
174
|
+
|
175
|
+
msg = error_message.split(ERR_PNPM_META_FETCH_FAIL).last
|
176
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
177
|
+
end
|
178
|
+
|
179
|
+
if error_message.match?(ERR_PNPM_WORKSPACE_PKG_NOT_FOUND)
|
180
|
+
dependency_names = dependencies.map(&:name).join(", ")
|
181
|
+
|
182
|
+
msg = "No package named \"#{dependency_names}\" present in workspace."
|
183
|
+
Dependabot.logger.warn(error_message)
|
184
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
185
|
+
end
|
186
|
+
|
187
|
+
if error_message.match?(ERR_PNPM_BROKEN_METADATA_JSON)
|
188
|
+
msg = "Error (ERR_PNPM_BROKEN_METADATA_JSON) while resolving \"pnpm-lock.yaml\" file."
|
189
|
+
Dependabot.logger.warn(error_message)
|
190
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
191
|
+
end
|
192
|
+
|
193
|
+
if error_message.match?(ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND)
|
194
|
+
dir = error_message.match(ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND).named_captures.fetch("dir")
|
195
|
+
msg = "Could not find linked package installation directory \"#{dir.split('/').last}\""
|
196
|
+
raise Dependabot::DependencyFileNotResolvable, msg
|
197
|
+
end
|
198
|
+
|
150
199
|
raise_patch_dependency_error(error_message) if error_message.match?(ERR_PNPM_PATCH_NOT_APPLIED)
|
151
200
|
|
152
201
|
raise_unsupported_engine_error(error_message, pnpm_lock) if error_message.match?(ERR_PNPM_UNSUPPORTED_ENGINE)
|
@@ -160,6 +209,8 @@ module Dependabot
|
|
160
209
|
end
|
161
210
|
# rubocop:enable Metrics/AbcSize
|
162
211
|
# rubocop:enable Metrics/PerceivedComplexity
|
212
|
+
# rubocop:enable Metrics/MethodLength
|
213
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
163
214
|
|
164
215
|
def raise_resolvability_error(error_message, pnpm_lock)
|
165
216
|
dependency_names = dependencies.map(&:name).join(", ")
|
@@ -30,26 +30,17 @@ module Dependabot
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
sig { override.
|
34
|
-
def self.updated_files_regex
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
# Old regex. After 100% rollout of the allowlist, this will be removed.
|
45
|
-
[
|
46
|
-
/^package\.json$/,
|
47
|
-
/^package-lock\.json$/,
|
48
|
-
/^npm-shrinkwrap\.json$/,
|
49
|
-
/^yarn\.lock$/,
|
50
|
-
/^pnpm-lock\.yaml$/
|
51
|
-
]
|
52
|
-
end
|
33
|
+
sig { override.returns(T::Array[Regexp]) }
|
34
|
+
def self.updated_files_regex
|
35
|
+
[
|
36
|
+
%r{^(?:.*/)?package\.json$},
|
37
|
+
%r{^(?:.*/)?package-lock\.json$},
|
38
|
+
%r{^(?:.*/)?npm-shrinkwrap\.json$},
|
39
|
+
%r{^(?:.*/)?yarn\.lock$},
|
40
|
+
%r{^(?:.*/)?pnpm-lock\.yaml$},
|
41
|
+
%r{^(?:.*/)?\.yarn/.*}, # Matches any file within the .yarn/ directory
|
42
|
+
%r{^(?:.*/)?\.pnp\.(?:js|cjs)$} # Matches .pnp.js or .pnp.cjs files
|
43
|
+
]
|
53
44
|
end
|
54
45
|
|
55
46
|
sig { override.returns(T::Array[DependencyFile]) }
|
@@ -34,6 +34,7 @@ ErrorHandler = T.type_alias do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
module Dependabot
|
37
|
+
# rubocop:disable Metrics/ModuleLength
|
37
38
|
module NpmAndYarn
|
38
39
|
NODE_VERSION_NOT_SATISFY_REGEX = /The current Node version (?<current_version>v?\d+\.\d+\.\d+) does not satisfy the required version (?<required_version>v?\d+\.\d+\.\d+)\./ # rubocop:disable Layout/LineLength
|
39
40
|
|
@@ -60,6 +61,16 @@ module Dependabot
|
|
60
61
|
|
61
62
|
SOCKET_HANG_UP = /(?<url>.*?): socket hang up/
|
62
63
|
|
64
|
+
# Misc errors
|
65
|
+
EEXIST = /EEXIST: file already exists, mkdir '(?<regis>.*)'/
|
66
|
+
|
67
|
+
# registry access errors
|
68
|
+
REQUEST_ERROR_E403 = /Request "(?<url>.*)" returned a 403/ # Forbidden access to the URL.
|
69
|
+
AUTH_REQUIRED_ERROR = /(?<url>.*): authentication required/ # Authentication is required for the URL.
|
70
|
+
PERMISSION_DENIED = /(?<url>.*): Permission denied/ # Lack of permission to access the URL.
|
71
|
+
BAD_REQUEST = /(?<url>.*): bad_request/ # Inconsistent request while accessing resource.
|
72
|
+
INTERNAL_SERVER_ERROR = /Request failed "500 Internal Server Error"/ # Server error response by remote registry.
|
73
|
+
|
63
74
|
# Used to identify git unreachable error
|
64
75
|
UNREACHABLE_GIT_CHECK_REGEX = /ls-remote --tags --heads (?<url>.*)/
|
65
76
|
|
@@ -78,6 +89,8 @@ module Dependabot
|
|
78
89
|
PACKAGE_NOT_FOUND_PACKAGE_NAME_CAPTURE = "package_req"
|
79
90
|
PACKAGE_NOT_FOUND_PACKAGE_NAME_CAPTURE_SPLIT_REGEX = /(?<=\w)\@/
|
80
91
|
|
92
|
+
YARN_PACKAGE_NOT_FOUND_CODE = /npm package "(?<dep>.*)" does not exist under owner "(?<regis>.*)"/
|
93
|
+
|
81
94
|
YN0035 = T.let({
|
82
95
|
PACKAGE_NOT_FOUND: %r{(?<package_req>@[\w-]+\/[\w-]+@\S+): Package not found},
|
83
96
|
FAILED_TO_RETRIEVE: %r{(?<package_req>@[\w-]+\/[\w-]+@\S+): The remote server failed to provide the requested resource} # rubocop:disable Layout/LineLength
|
@@ -96,6 +109,9 @@ module Dependabot
|
|
96
109
|
|
97
110
|
DEPENDENCY_NO_VERSION_FOUND = "Couldn't find any versions"
|
98
111
|
|
112
|
+
# Manifest not found
|
113
|
+
MANIFEST_NOT_FOUND = /Cannot read properties of undefined \(reading '(?<file>.*)'\)/
|
114
|
+
|
99
115
|
# Used to identify error if node_modules state file not resolved
|
100
116
|
NODE_MODULES_STATE_FILE_NOT_FOUND = "Couldn't find the node_modules state file"
|
101
117
|
|
@@ -115,6 +131,33 @@ module Dependabot
|
|
115
131
|
|
116
132
|
ENV_VAR_NOT_RESOLVABLE = /Failed to replace env in config: \$\{(?<var>.*)\}/
|
117
133
|
|
134
|
+
OUT_OF_DISKSPACE = / Out of diskspace/
|
135
|
+
|
136
|
+
# yarnrc.yml errors
|
137
|
+
YARNRC_PARSE_ERROR = /Parse error when loading (?<filename>.*?); /
|
138
|
+
YARNRC_ENV_NOT_FOUND = /Usage Error: Environment variable not found /
|
139
|
+
YARNRC_ENV_NOT_FOUND_REGEX = /Usage Error: Environment variable not found \((?<token>.*)\) in (?<filename>.*?) /
|
140
|
+
YARNRC_EAI_AGAIN = /getaddrinfo EAI_AGAIN/
|
141
|
+
YARNRC_ENOENT = /Internal Error: ENOENT/
|
142
|
+
YARNRC_ENOENT_REGEX = /Internal Error: ENOENT: no such file or directory, stat '(?<filename>.*?)'/
|
143
|
+
|
144
|
+
# if not package found with specified version
|
145
|
+
YARN_PACKAGE_NOT_FOUND = /MessageError: Couldn't find any versions for "(?<pkg>.*?)" that matches "(?<ver>.*?)"/
|
146
|
+
|
147
|
+
YN0001_FILE_NOT_RESOLVED_CODES = T.let({
|
148
|
+
FIND_PACKAGE_LOCATION: /YN0001:(.*?)UsageError: Couldn't find the (?<pkg>.*) state file/,
|
149
|
+
NO_CANDIDATE_FOUND: /YN0001:(.*?)Error: (?<pkg>.*): No candidates found/,
|
150
|
+
NO_SUPPORTED_RESOLVER: /YN0001:(.*?)Error: (?<pkg>.*) isn't supported by any available resolver/,
|
151
|
+
WORKSPACE_NOT_FOUND: /YN0001:(.*?)Error: (?<pkg>.*): Workspace not found/,
|
152
|
+
ENOENT: /YN0001:(.*?)Thrown Error: (?<pkg>.*) ENOENT/,
|
153
|
+
MANIFEST_NOT_FOUND: /YN0001:(.*?)Error: (?<pkg>.*): Manifest not found/,
|
154
|
+
LIBZIP_ERROR: /YN0001:(.*?)Libzip Error: Failed to open the cache entry for (?<pkg>.*): Not a zip archive/
|
155
|
+
}.freeze, T::Hash[String, Regexp])
|
156
|
+
|
157
|
+
YN0001_AUTH_ERROR_CODES = T.let({
|
158
|
+
AUTH_ERROR: /YN0001:*.*Fatal Error: could not read Username for '(?<url>.*)': terminal prompts disabled/
|
159
|
+
}.freeze, T::Hash[String, Regexp])
|
160
|
+
|
118
161
|
class Utils
|
119
162
|
extend T::Sig
|
120
163
|
|
@@ -155,6 +198,18 @@ module Dependabot
|
|
155
198
|
"YN0001" => {
|
156
199
|
message: "Exception error",
|
157
200
|
handler: lambda { |message, _error, _params|
|
201
|
+
YN0001_FILE_NOT_RESOLVED_CODES.each do |(_yn0001_key, yn0001_regex)|
|
202
|
+
if (msg = message.match(yn0001_regex))
|
203
|
+
return Dependabot::DependencyFileNotResolvable.new(msg)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
YN0001_AUTH_ERROR_CODES.each do |(_yn0001_key, yn0001_regex)|
|
208
|
+
if (msg = message.match(yn0001_regex))
|
209
|
+
url = msg.named_captures.fetch(URL_CAPTURE)
|
210
|
+
return Dependabot::PrivateSourceAuthenticationFailure.new(url)
|
211
|
+
end
|
212
|
+
end
|
158
213
|
Dependabot::DependabotError.new(message)
|
159
214
|
}
|
160
215
|
},
|
@@ -164,6 +219,12 @@ module Dependabot
|
|
164
219
|
Dependabot::DependencyFileNotResolvable.new(message)
|
165
220
|
}
|
166
221
|
},
|
222
|
+
"YN0009" => {
|
223
|
+
message: "Build Failed",
|
224
|
+
handler: lambda { |message, _error, _params|
|
225
|
+
Dependabot::DependencyFileNotResolvable.new(message)
|
226
|
+
}
|
227
|
+
},
|
167
228
|
"YN0016" => {
|
168
229
|
message: "Remote not found",
|
169
230
|
handler: lambda { |message, _error, _params|
|
@@ -189,6 +250,13 @@ module Dependabot
|
|
189
250
|
Dependabot::DependencyNotFound.new(message)
|
190
251
|
}
|
191
252
|
},
|
253
|
+
"YN0041" => {
|
254
|
+
message: "Invalid authentication",
|
255
|
+
handler: lambda { |message, _error, _params|
|
256
|
+
url = T.must(URI.decode_www_form_component(message).split("https://").last).split("/").first
|
257
|
+
Dependabot::PrivateSourceAuthenticationFailure.new(url)
|
258
|
+
}
|
259
|
+
},
|
192
260
|
"YN0046" => {
|
193
261
|
message: "Automerge failed to parse",
|
194
262
|
handler: lambda { |message, _error, _params|
|
@@ -213,6 +281,12 @@ module Dependabot
|
|
213
281
|
Dependabot::IncompatibleCPU.new(message)
|
214
282
|
}
|
215
283
|
},
|
284
|
+
"YN0068" => {
|
285
|
+
message: "No matching package",
|
286
|
+
handler: lambda { |message, _error, _params|
|
287
|
+
Dependabot::DependencyFileNotResolvable.new(message)
|
288
|
+
}
|
289
|
+
},
|
216
290
|
"YN0071" => {
|
217
291
|
message: "NM can't install external soft link",
|
218
292
|
handler: lambda { |message, _error, _params|
|
@@ -385,8 +459,113 @@ module Dependabot
|
|
385
459
|
},
|
386
460
|
in_usage: false,
|
387
461
|
matchfn: nil
|
388
|
-
}
|
462
|
+
},
|
463
|
+
{
|
464
|
+
patterns: [OUT_OF_DISKSPACE],
|
465
|
+
handler: lambda { |message, _error, _params|
|
466
|
+
Dependabot::OutOfDisk.new(message)
|
467
|
+
},
|
468
|
+
in_usage: false,
|
469
|
+
matchfn: nil
|
470
|
+
},
|
471
|
+
{
|
472
|
+
patterns: [YARNRC_PARSE_ERROR],
|
473
|
+
handler: lambda { |message, _error, _params|
|
474
|
+
filename = message.match(YARNRC_PARSE_ERROR).named_captures["filename"]
|
475
|
+
|
476
|
+
msg = "Error while loading \"#{filename.split('/').last}\"."
|
477
|
+
Dependabot::DependencyFileNotResolvable.new(msg)
|
478
|
+
},
|
479
|
+
in_usage: false,
|
480
|
+
matchfn: nil
|
481
|
+
},
|
482
|
+
{
|
483
|
+
patterns: [YARNRC_ENV_NOT_FOUND],
|
484
|
+
handler: lambda { |message, _error, _params|
|
485
|
+
error_message = message.gsub(/[[:space:]]+/, " ").strip
|
486
|
+
|
487
|
+
filename = error_message.match(YARNRC_ENV_NOT_FOUND_REGEX)
|
488
|
+
.named_captures["filename"]
|
489
|
+
|
490
|
+
env_var = error_message.match(YARNRC_ENV_NOT_FOUND_REGEX)
|
491
|
+
.named_captures["token"]
|
492
|
+
|
493
|
+
msg = "Environment variable \"#{env_var}\" not found in \"#{filename.split('/').last}\"."
|
494
|
+
Dependabot::MissingEnvironmentVariable.new(env_var, msg)
|
495
|
+
},
|
496
|
+
in_usage: false,
|
497
|
+
matchfn: nil
|
498
|
+
},
|
499
|
+
{
|
500
|
+
patterns: [YARNRC_EAI_AGAIN],
|
501
|
+
handler: lambda { |_message, _error, _params|
|
502
|
+
Dependabot::DependencyFileNotResolvable.new("Network error while resolving dependency.")
|
503
|
+
},
|
504
|
+
in_usage: false,
|
505
|
+
matchfn: nil
|
506
|
+
},
|
507
|
+
{
|
508
|
+
patterns: [YARNRC_ENOENT],
|
509
|
+
handler: lambda { |message, _error, _params|
|
510
|
+
error_message = message.gsub(/[[:space:]]+/, " ").strip
|
511
|
+
filename = error_message.match(YARNRC_ENOENT_REGEX).named_captures["filename"]
|
512
|
+
|
513
|
+
Dependabot::DependencyFileNotResolvable.new("Internal error while resolving dependency." \
|
514
|
+
"File not found \"#{filename.split('/').last}\"")
|
515
|
+
},
|
516
|
+
in_usage: false,
|
517
|
+
matchfn: nil
|
518
|
+
},
|
519
|
+
{
|
520
|
+
patterns: [YARN_PACKAGE_NOT_FOUND],
|
521
|
+
handler: lambda { |message, _error, _params|
|
522
|
+
package_name = message.match(YARN_PACKAGE_NOT_FOUND).named_captures["pkg"]
|
523
|
+
version = message.match(YARN_PACKAGE_NOT_FOUND).named_captures["ver"]
|
524
|
+
|
525
|
+
Dependabot::InconsistentRegistryResponse.new("Couldn't find any versions for \"#{package_name}\" that " \
|
526
|
+
"matches \"#{version}\"")
|
527
|
+
},
|
528
|
+
in_usage: false,
|
529
|
+
matchfn: nil
|
530
|
+
},
|
531
|
+
{
|
532
|
+
patterns: [YARN_PACKAGE_NOT_FOUND_CODE],
|
533
|
+
handler: lambda { |message, _error, _params|
|
534
|
+
msg = message.match(YARN_PACKAGE_NOT_FOUND_CODE)
|
389
535
|
|
536
|
+
Dependabot::DependencyFileNotResolvable.new(msg)
|
537
|
+
},
|
538
|
+
in_usage: false,
|
539
|
+
matchfn: nil
|
540
|
+
},
|
541
|
+
{
|
542
|
+
patterns: [REQUEST_ERROR_E403, AUTH_REQUIRED_ERROR, PERMISSION_DENIED, BAD_REQUEST],
|
543
|
+
handler: lambda { |message, _error, _params|
|
544
|
+
dependency_url = T.must(URI.decode_www_form_component(message).split("https://").last).split("/").first
|
545
|
+
|
546
|
+
Dependabot::PrivateSourceAuthenticationFailure.new(dependency_url)
|
547
|
+
},
|
548
|
+
in_usage: false,
|
549
|
+
matchfn: nil
|
550
|
+
},
|
551
|
+
{
|
552
|
+
patterns: [MANIFEST_NOT_FOUND],
|
553
|
+
handler: lambda { |message, _error, _params|
|
554
|
+
msg = message.match(MANIFEST_NOT_FOUND)
|
555
|
+
Dependabot::DependencyFileNotResolvable.new(msg)
|
556
|
+
},
|
557
|
+
in_usage: false,
|
558
|
+
matchfn: nil
|
559
|
+
},
|
560
|
+
{
|
561
|
+
patterns: [INTERNAL_SERVER_ERROR],
|
562
|
+
handler: lambda { |message, _error, _params|
|
563
|
+
msg = message.match(INTERNAL_SERVER_ERROR)
|
564
|
+
Dependabot::DependencyFileNotResolvable.new(msg)
|
565
|
+
},
|
566
|
+
in_usage: false,
|
567
|
+
matchfn: nil
|
568
|
+
}
|
390
569
|
].freeze, T::Array[{
|
391
570
|
patterns: T::Array[T.any(String, Regexp)],
|
392
571
|
handler: ErrorHandler,
|
@@ -394,4 +573,5 @@ module Dependabot
|
|
394
573
|
matchfn: T.nilable(T.proc.params(usage: String, message: String).returns(T::Boolean))
|
395
574
|
}])
|
396
575
|
end
|
576
|
+
# rubocop:enable Metrics/ModuleLength
|
397
577
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-npm_and_yarn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.273.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-29 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.273.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.273.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: debug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -345,7 +345,7 @@ licenses:
|
|
345
345
|
- MIT
|
346
346
|
metadata:
|
347
347
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
348
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
348
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.273.0
|
349
349
|
post_install_message:
|
350
350
|
rdoc_options: []
|
351
351
|
require_paths:
|