dependabot-npm_and_yarn 0.231.0 → 0.233.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/package-lock.json +1252 -1235
  3. data/helpers/package.json +2 -2
  4. data/lib/dependabot/npm_and_yarn/dependency_files_filterer.rb +1 -1
  5. data/lib/dependabot/npm_and_yarn/file_fetcher/path_dependency_builder.rb +1 -1
  6. data/lib/dependabot/npm_and_yarn/file_updater/npm_lockfile_updater.rb +1 -1
  7. data/lib/dependabot/npm_and_yarn/file_updater/npmrc_builder.rb +14 -2
  8. data/lib/dependabot/npm_and_yarn/file_updater/package_json_preparer.rb +1 -1
  9. data/lib/dependabot/npm_and_yarn/file_updater/pnpm_lockfile_updater.rb +12 -1
  10. data/lib/dependabot/npm_and_yarn/file_updater.rb +1 -1
  11. data/lib/dependabot/npm_and_yarn/helpers.rb +1 -1
  12. data/lib/dependabot/npm_and_yarn/metadata_finder.rb +1 -1
  13. data/lib/dependabot/npm_and_yarn/native_helpers.rb +1 -1
  14. data/lib/dependabot/npm_and_yarn/package_manager.rb +1 -1
  15. data/lib/dependabot/npm_and_yarn/requirement.rb +1 -1
  16. data/lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb +1 -1
  17. data/lib/dependabot/npm_and_yarn/update_checker/conflicting_dependency_resolver.rb +1 -1
  18. data/lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb +1 -1
  19. data/lib/dependabot/npm_and_yarn/update_checker/latest_version_finder.rb +1 -1
  20. data/lib/dependabot/npm_and_yarn/update_checker/library_detector.rb +1 -1
  21. data/lib/dependabot/npm_and_yarn/update_checker/requirements_updater.rb +1 -1
  22. data/lib/dependabot/npm_and_yarn/update_checker/vulnerability_auditor.rb +1 -1
  23. data/lib/dependabot/npm_and_yarn/update_checker.rb +1 -1
  24. data/lib/dependabot/npm_and_yarn/version.rb +18 -6
  25. data/lib/dependabot/npm_and_yarn.rb +1 -1
  26. metadata +19 -19
data/helpers/package.json CHANGED
@@ -11,9 +11,9 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@dependabot/yarn-lib": "^1.22.19",
14
- "@npmcli/arborist": "^6.3.0",
14
+ "@npmcli/arborist": "^7.1.0",
15
15
  "detect-indent": "^6.1.0",
16
- "nock": "^13.3.2",
16
+ "nock": "^13.3.3",
17
17
  "npm": "6.14.18",
18
18
  "@pnpm/lockfile-file": "^8.1.2",
19
19
  "@pnpm/dependency-path": "^2.1.1",
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/utils"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "json"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/errors"
@@ -17,9 +17,10 @@ module Dependabot
17
17
 
18
18
  SCOPED_REGISTRY = /^\s*@(?<scope>\S+):registry\s*=\s*(?<registry>\S+)/
19
19
 
20
- def initialize(dependency_files:, credentials:)
20
+ def initialize(dependency_files:, credentials:, dependencies: [])
21
21
  @dependency_files = dependency_files
22
22
  @credentials = credentials
23
+ @dependencies = dependencies
23
24
  end
24
25
 
25
26
  # PROXY WORK
@@ -52,7 +53,7 @@ module Dependabot
52
53
 
53
54
  private
54
55
 
55
- attr_reader :dependency_files, :credentials
56
+ attr_reader :dependency_files, :credentials, :dependencies
56
57
 
57
58
  def build_npmrc_content_from_lockfile
58
59
  return unless yarn_lock || package_lock
@@ -134,6 +135,17 @@ module Dependabot
134
135
  return @dependency_urls if defined?(@dependency_urls)
135
136
 
136
137
  @dependency_urls = []
138
+
139
+ if dependencies.any?
140
+ @dependency_urls = dependencies.map do |dependency|
141
+ UpdateChecker::RegistryFinder.new(
142
+ dependency: dependency,
143
+ credentials: credentials
144
+ ).dependency_url
145
+ end
146
+ return @dependency_urls
147
+ end
148
+
137
149
  if package_lock
138
150
  @dependency_urls +=
139
151
  package_lock.content.scan(/"resolved"\s*:\s*"(.*)"/)
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/npm_and_yarn/file_updater"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/npm_and_yarn/helpers"
@@ -9,6 +9,7 @@ module Dependabot
9
9
  module NpmAndYarn
10
10
  class FileUpdater
11
11
  class PnpmLockfileUpdater
12
+ require_relative "npmrc_builder"
12
13
  require_relative "package_json_updater"
13
14
 
14
15
  def initialize(dependencies:, dependency_files:, repo_contents_path:, credentials:)
@@ -38,6 +39,8 @@ module Dependabot
38
39
 
39
40
  def run_pnpm_update(pnpm_lock:)
40
41
  SharedHelpers.in_a_temporary_repo_directory(base_dir, repo_contents_path) do
42
+ File.write(".npmrc", npmrc_content(pnpm_lock))
43
+
41
44
  SharedHelpers.with_git_configured(credentials: credentials) do
42
45
  run_pnpm_updater
43
46
 
@@ -120,6 +123,14 @@ module Dependabot
120
123
  end
121
124
  end
122
125
 
126
+ def npmrc_content(pnpm_lock)
127
+ NpmrcBuilder.new(
128
+ credentials: credentials,
129
+ dependency_files: dependency_files,
130
+ dependencies: lockfile_dependencies(pnpm_lock)
131
+ ).npmrc_content
132
+ end
133
+
123
134
  def updated_package_json_content(file)
124
135
  @updated_package_json_content ||= {}
125
136
  @updated_package_json_content[file.name] ||=
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/file_updaters"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Dependabot
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "excon"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Dependabot
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Dependabot
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/utils"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/utils"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/dependency"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/npm_and_yarn/file_updater/npmrc_builder"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "excon"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "excon"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  ################################################################################
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "stringio"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/git_commit_checker"
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/version"
@@ -13,11 +13,15 @@ require "dependabot/utils"
13
13
  module Dependabot
14
14
  module NpmAndYarn
15
15
  class Version < Dependabot::Version
16
+ extend T::Sig
17
+
18
+ sig { returns(String) }
16
19
  attr_reader :build_info
17
20
 
18
- VERSION_PATTERN = Gem::Version::VERSION_PATTERN + '(\+[0-9a-zA-Z\-.]+)?'
21
+ VERSION_PATTERN = T.let(Gem::Version::VERSION_PATTERN + '(\+[0-9a-zA-Z\-.]+)?', String)
19
22
  ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/
20
23
 
24
+ sig { override.params(version: T.nilable(T.any(String, Gem::Version))).returns(T::Boolean) }
21
25
  def self.correct?(version)
22
26
  version = version.gsub(/^v/, "") if version.is_a?(String)
23
27
 
@@ -26,6 +30,7 @@ module Dependabot
26
30
  version.to_s.match?(ANCHORED_VERSION_PATTERN)
27
31
  end
28
32
 
33
+ sig { params(version: T.nilable(T.any(String, Gem::Version))).returns(T.nilable(T.any(String, Gem::Version))) }
29
34
  def self.semver_for(version)
30
35
  # The next two lines are to guard against improperly formatted
31
36
  # versions in a lockfile, such as an empty string or additional
@@ -37,8 +42,9 @@ module Dependabot
37
42
  version
38
43
  end
39
44
 
45
+ sig { override.params(version: T.any(String, Gem::Version)).void }
40
46
  def initialize(version)
41
- @version_string = version.to_s
47
+ @version_string = T.let(version.to_s, String)
42
48
  version = version.gsub(/^v/, "") if version.is_a?(String)
43
49
 
44
50
  version, @build_info = version.to_s.split("+") if version.to_s.include?("+")
@@ -46,18 +52,22 @@ module Dependabot
46
52
  super
47
53
  end
48
54
 
55
+ sig { returns(Integer) }
49
56
  def major
50
- @major ||= segments[0] || 0
57
+ @major ||= T.let(segments[0] || 0, T.nilable(Integer))
51
58
  end
52
59
 
60
+ sig { returns(Integer) }
53
61
  def minor
54
- @minor ||= segments[1] || 0
62
+ @minor ||= T.let(segments[1] || 0, T.nilable(Integer))
55
63
  end
56
64
 
65
+ sig { returns(Integer) }
57
66
  def patch
58
- @patch ||= segments[2] || 0
67
+ @patch ||= T.let(segments[2] || 0, T.nilable(Integer))
59
68
  end
60
69
 
70
+ sig { params(other: Dependabot::NpmAndYarn::Version).returns(T::Boolean) }
61
71
  def backwards_compatible_with?(other)
62
72
  case major
63
73
  when 0
@@ -67,10 +77,12 @@ module Dependabot
67
77
  end
68
78
  end
69
79
 
80
+ sig { override.returns(String) }
70
81
  def to_s
71
82
  @version_string
72
83
  end
73
84
 
85
+ sig { override.returns(String) }
74
86
  def inspect
75
87
  "#<#{self.class} #{@version_string}>"
76
88
  end
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # These all need to be required so the various classes can be registered in a
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.231.0
4
+ version: 0.233.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-12 00:00:00.000000000 Z
11
+ date: 2023-10-06 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.231.0
19
+ version: 0.233.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.231.0
26
+ version: 0.233.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: parallel_tests
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 4.2.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 4.2.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +150,20 @@ dependencies:
164
150
  - - "~>"
165
151
  - !ruby/object:Gem::Version
166
152
  version: 0.2.16
153
+ - !ruby/object:Gem::Dependency
154
+ name: turbo_tests
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 2.2.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 2.2.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: vcr
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -295,7 +295,7 @@ licenses:
295
295
  - Nonstandard
296
296
  metadata:
297
297
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
298
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.231.0
298
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.233.0
299
299
  post_install_message:
300
300
  rdoc_options: []
301
301
  require_paths: