dependabot-npm_and_yarn 0.186.0 → 0.188.0

Sign up to get free protection for your applications and to get access to all the features.
data/helpers/package.json CHANGED
@@ -12,13 +12,13 @@
12
12
  "@dependabot/yarn-lib": "^1.21.1",
13
13
  "@npmcli/arborist": "^5.1.0",
14
14
  "detect-indent": "^6.1.0",
15
- "npm": "6.14.16",
15
+ "npm": "6.14.17",
16
16
  "semver": "^7.3.7"
17
17
  },
18
18
  "devDependencies": {
19
- "eslint": "^8.13.0",
19
+ "eslint": "^8.15.0",
20
20
  "eslint-config-prettier": "^8.5.0",
21
- "jest": "^27.5.1",
21
+ "jest": "^28.1.0",
22
22
  "prettier": "^2.6.2",
23
23
  "rimraf": "^3.0.2"
24
24
  }
@@ -48,7 +48,9 @@ module Dependabot
48
48
  end
49
49
 
50
50
  def global_registry # rubocop:disable Metrics/PerceivedComplexity
51
- @global_registry ||=
51
+ return @global_registry if defined?(@global_registry)
52
+
53
+ @global_registry =
52
54
  registry_credentials.find do |cred|
53
55
  next false if CENTRAL_REGISTRIES.include?(cred["registry"])
54
56
 
@@ -132,21 +134,24 @@ module Dependabot
132
134
  def credential_lines_for_npmrc
133
135
  lines = []
134
136
  registry_credentials.each do |cred|
135
- registry = cred.fetch("registry").sub(%r{\/?$}, "/")
137
+ registry = cred.fetch("registry")
136
138
 
137
139
  lines += registry_scopes(registry) if registry_scopes(registry)
138
140
 
139
141
  token = cred.fetch("token", nil)
140
142
  next unless token
141
143
 
144
+ # We need to ensure the registry uri ends with a trailing slash in the npmrc file
145
+ # but we do not want to add one if it already exists
146
+ registry_with_trailing_slash = registry.sub(%r{\/?$}, "/")
142
147
  if token.include?(":")
143
148
  encoded_token = Base64.encode64(token).delete("\n")
144
- lines << "//#{registry}:_auth=#{encoded_token}"
149
+ lines << "//#{registry_with_trailing_slash}:_auth=#{encoded_token}"
145
150
  elsif Base64.decode64(token).ascii_only? &&
146
151
  Base64.decode64(token).include?(":")
147
- lines << %(//#{registry}:_auth=#{token.delete("\n")})
152
+ lines << %(//#{registry_with_trailing_slash}:_auth=#{token.delete("\n")})
148
153
  else
149
- lines << "//#{registry}:_authToken=#{token}"
154
+ lines << "//#{registry_with_trailing_slash}:_authToken=#{token}"
150
155
  end
151
156
  end
152
157
 
@@ -169,7 +174,6 @@ module Dependabot
169
174
  def registry_scopes(registry)
170
175
  # Central registries don't just apply to scopes
171
176
  return if CENTRAL_REGISTRIES.include?(registry)
172
-
173
177
  return unless dependency_urls
174
178
 
175
179
  other_regs =
@@ -3,17 +3,17 @@
3
3
  module Dependabot
4
4
  module NpmAndYarn
5
5
  class PackageName
6
- DEFINITELY_TYPED_SCOPE = /types/i.freeze
7
- PACKAGE_NAME_REGEX = %r{
6
+ PACKAGE_NAME_REGEX = %r{
8
7
  \A # beginning of string
9
8
  (?=.{1,214}\z) # enforce length (1 - 214)
10
9
  (@(?<scope>[a-z0-9\-~][a-z0-9\-\._~]*)\/)? # capture 'scope' if present
11
10
  (?<name>[a-z0-9\-~][a-z0-9\-._~]*) # capture package name
12
11
  \z # end of string
13
12
  }xi.freeze # multi-line/case-insensitive
13
+
14
14
  TYPES_PACKAGE_NAME_REGEX = %r{
15
15
  \A # beginning of string
16
- @#{DEFINITELY_TYPED_SCOPE}\/ # starts with @types/
16
+ @types\/ # starts with @types/
17
17
  ((?<scope>.+)__)? # capture scope
18
18
  (?<name>.+) # capture name
19
19
  \z # end of string
@@ -81,7 +81,7 @@ module Dependabot
81
81
  end
82
82
 
83
83
  def types_package?
84
- DEFINITELY_TYPED_SCOPE.match?(@scope)
84
+ "types".casecmp?(@scope)
85
85
  end
86
86
  end
87
87
  end
@@ -252,7 +252,10 @@ module Dependabot
252
252
 
253
253
  return false unless latest_allowable_version.backwards_compatible_with?(latest_types_package_version)
254
254
 
255
+ return false unless version_class.correct?(types_package.version)
256
+
255
257
  current_types_package_version = version_class.new(types_package.version)
258
+
256
259
  return false unless current_types_package_version < latest_types_package_version
257
260
 
258
261
  true
@@ -261,9 +264,12 @@ module Dependabot
261
264
  def original_package_update_available?
262
265
  return false if original_package.nil?
263
266
 
264
- latest_version = latest_version_finder(original_package).latest_version_from_registry
267
+ return false unless version_class.correct?(original_package.version)
268
+
265
269
  original_package_version = version_class.new(original_package.version)
266
270
 
271
+ latest_version = latest_version_finder(original_package).latest_version_from_registry
272
+
267
273
  original_package_version < latest_version
268
274
  end
269
275
 
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.186.0
4
+ version: 0.188.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-10 00:00:00.000000000 Z
11
+ date: 2022-05-16 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.186.0
19
+ version: 0.188.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.186.0
26
+ version: 0.188.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debase
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 1.28.2
131
+ version: 1.29.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 1.28.2
138
+ version: 1.29.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: ruby-debug-ide
141
141
  requirement: !ruby/object:Gem::Requirement