dependabot-npm_and_yarn 0.394.0 → 0.395.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: 3d36a6e6eb18ebce010518361fb49966de62ff78dd9da7a13f14c59aaedf5e7a
4
- data.tar.gz: 7ed614ce2517bd8a198deb502ab46635a5019a810224ec0bbaed0066fc9e51c9
3
+ metadata.gz: 814f7f9eb89a5c4996711bb1ec4c541d2d7bbf0c7b3ec3767735fd859f3ea686
4
+ data.tar.gz: 7be4b8ad726b88f8fb3491326a6cd32b27c3b30e71009aabdc58657156f7f4a9
5
5
  SHA512:
6
- metadata.gz: 58cf8b10de32b220cd9d72785b267d4f2d1a4d629d24cbe5c718c42b88354b1e42d75ecce54ed339394427ff9be8a99c3302db44aabd21f09df21a73c1b7158a
7
- data.tar.gz: f4a98484a049955ae19f3db664bb7a760e345a14c7db2452f179dedbd242e1925afe6efdc2b1bc51607442e571d06f245644a78eca68fbc9772b244fbbacde1f
6
+ metadata.gz: '09a6318dab7354fa6bc0ba314ad763e6bfb2dd347a009fe13f957064a07d50fd25dd827d6a4ad414796133025a8705e78e1cdf9a975a7205e24f8abad9e57cec'
7
+ data.tar.gz: 8b2ec8e2da37e4597cfc91ad544f52ea5a5f126ba3676f4bd0107abb076bceaff608b75fa898cd56ae8843511f209178130c0ad23889703d582abce0ae48b10d
@@ -313,7 +313,12 @@ function convertAdvisoriesToRegistryBulkFormat(
313
313
  >((memo, version) => {
314
314
  memo.push({
315
315
  id: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER),
316
- vulnerable_versions: version,
316
+ // Dependabot advisories join comparators with ", " but npm semver
317
+ // uses spaces. Loose semver parsing silently drops the comparator
318
+ // before a comma (">= 3.0.0, < 3.1.2" parses as "<3.1.2"), turning
319
+ // a range for one major into one that also covers every lower
320
+ // version, so strip the commas before Arborist sees the range.
321
+ vulnerable_versions: version.replace(/,/g, " "),
317
322
  });
318
323
  return memo;
319
324
  }, []);
@@ -14934,9 +14934,10 @@
14934
14934
  }
14935
14935
  },
14936
14936
  "node_modules/postcss-selector-parser": {
14937
- "version": "7.1.1",
14938
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
14939
- "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
14937
+ "version": "7.1.5",
14938
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz",
14939
+ "integrity": "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==",
14940
+ "license": "MIT",
14940
14941
  "dependencies": {
14941
14942
  "cssesc": "^3.0.0",
14942
14943
  "util-deprecate": "^1.0.2"
@@ -27786,9 +27787,9 @@
27786
27787
  }
27787
27788
  },
27788
27789
  "postcss-selector-parser": {
27789
- "version": "7.1.1",
27790
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
27791
- "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
27790
+ "version": "7.1.5",
27791
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz",
27792
+ "integrity": "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==",
27792
27793
  "requires": {
27793
27794
  "cssesc": "^3.0.0",
27794
27795
  "util-deprecate": "^1.0.2"
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "test-vulnerability-range-order-lower-major-only",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "test-vulnerability-range-order-lower-major-only",
9
+ "version": "1.0.0",
10
+ "dependencies": {
11
+ "@msgpack/msgpack": "^2.7.2"
12
+ }
13
+ },
14
+ "node_modules/@msgpack/msgpack": {
15
+ "version": "2.7.2",
16
+ "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz",
17
+ "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==",
18
+ "license": "ISC",
19
+ "engines": {
20
+ "node": ">= 10"
21
+ }
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "test-vulnerability-range-order-lower-major-only",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "description": "",
6
+ "dependencies": {
7
+ "@msgpack/msgpack": "^2.7.2"
8
+ }
9
+ }
@@ -348,4 +348,80 @@ describe("findVulnerableDependencies", () => {
348
348
  ])
349
349
  );
350
350
  });
351
+
352
+ // Regression tests for https://github.com/dependabot/dependabot-core/issues/13644:
353
+ // the audit outcome must not depend on the order of affected_versions ranges.
354
+ // GitHub's API emits multi-major advisories in descending-major order (the
355
+ // higher-major ranges first), which is the order that triggers the bug.
356
+
357
+ it("reports the same fix when affected_versions lists the higher major first", async () => {
358
+ helpers.copyDependencies(
359
+ "vulnerability-auditor/update-needed-across-two-versions",
360
+ tempDir
361
+ );
362
+
363
+ // Identical to "finds vulnerable dependencies when multiple versions of the
364
+ // same package are affected", except the two ranges are swapped.
365
+ const advisories = [
366
+ {
367
+ dependency_name: "@msgpack/msgpack",
368
+ affected_versions: [">= 3.0.0, < 3.1.2", ">= 2.0.0, < 2.8.0"],
369
+ },
370
+ ];
371
+ const actual = await findVulnerableDependencies(tempDir, advisories);
372
+
373
+ expect(actual.dependency_name).toBe("@msgpack/msgpack");
374
+ expect(actual.current_version).toBe("2.7.2");
375
+ expect(actual.fix_available).toBe(true);
376
+ expect(actual.target_version).toBe("2.8.0");
377
+
378
+ expect(actual.fix_updates).toEqual(
379
+ expect.arrayContaining([
380
+ {
381
+ dependency_name: "@msgpack/msgpack",
382
+ current_version: "2.7.2",
383
+ target_version: "2.8.0",
384
+ top_level_ancestors: [],
385
+ },
386
+ {
387
+ dependency_name: "@msgpack/msgpack",
388
+ current_version: "3.0.0",
389
+ target_version: "3.1.3",
390
+ top_level_ancestors: ["wireql-client"],
391
+ },
392
+ ])
393
+ );
394
+ });
395
+
396
+ it("fixes an installed lower major when a range for an uninstalled higher major is listed first", async () => {
397
+ helpers.copyDependencies(
398
+ "vulnerability-auditor/range-order-lower-major-only",
399
+ tempDir
400
+ );
401
+
402
+ // Only @msgpack/msgpack 2.7.2 is installed (manifest range ^2.7.2, so the
403
+ // patched 2.8.0 is an in-range lockfile-only update). The 3.x range applies
404
+ // to published versions that don't appear in this tree and must be inert.
405
+ const advisories = [
406
+ {
407
+ dependency_name: "@msgpack/msgpack",
408
+ affected_versions: [">= 3.0.0, < 3.1.2", ">= 2.0.0, < 2.8.0"],
409
+ },
410
+ ];
411
+ const actual = await findVulnerableDependencies(tempDir, advisories);
412
+
413
+ expect(actual.dependency_name).toBe("@msgpack/msgpack");
414
+ expect(actual.current_version).toBe("2.7.2");
415
+ expect(actual.fix_available).toBe(true);
416
+ expect(actual.target_version).toBe("2.8.0");
417
+
418
+ expect(actual.fix_updates).toEqual([
419
+ {
420
+ dependency_name: "@msgpack/msgpack",
421
+ current_version: "2.7.2",
422
+ target_version: "2.8.0",
423
+ top_level_ancestors: [],
424
+ },
425
+ ]);
426
+ });
351
427
  });
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
@@ -17,7 +17,11 @@ module Dependabot
17
17
 
18
18
  sig { returns(T::Hash[String, T::Array[String]]) }
19
19
  def relationships
20
- parsed = YAML.safe_load(T.must(@lockfile.content)) || {}
20
+ # pnpm 11+ can write pnpm-lock.yaml as a two-document YAML stream: an
21
+ # env document (pnpm's own binaries, with its own "packages" and
22
+ # "snapshots" sections) precedes the project document. The project
23
+ # graph is always the last document in the stream.
24
+ parsed = YAML.safe_load_stream(T.must(@lockfile.content)).last || {}
21
25
 
22
26
  # v9+ uses "snapshots" for resolved dependency details; v6 uses "packages"
23
27
  entries = parsed.fetch("snapshots", nil) || parsed.fetch("packages", {})
@@ -125,7 +125,7 @@ module Dependabot
125
125
  @detected_package_manager ||= T.let(
126
126
  PackageManagerDetector.new(
127
127
  lockfiles_hash,
128
- parsed_package_json
128
+ Dependabot::Package::NpmPackageManagerConfig.from_package_json(parsed_package_json)
129
129
  ).detect_package_manager,
130
130
  T.nilable(String)
131
131
  )
@@ -329,7 +329,7 @@ module Dependabot
329
329
  def package_manager_helper
330
330
  @package_manager_helper ||= T.let(
331
331
  PackageManagerHelper.new(
332
- parsed_package_json,
332
+ Dependabot::Package::NpmPackageManagerConfig.from_package_json(parsed_package_json),
333
333
  lockfiles,
334
334
  registry_config_files,
335
335
  credentials
@@ -99,7 +99,7 @@ module Dependabot
99
99
  def package_manager_helper
100
100
  @package_manager_helper ||= T.let(
101
101
  PackageManagerHelper.new(
102
- parsed_package_json,
102
+ Dependabot::Package::NpmPackageManagerConfig.from_package_json(parsed_package_json),
103
103
  lockfiles,
104
104
  registry_config_files,
105
105
  credentials
@@ -14,7 +14,7 @@ require "dependabot/npm_and_yarn/native_helpers"
14
14
  require "dependabot/npm_and_yarn/package/registry_finder"
15
15
  require "dependabot/shared_helpers"
16
16
 
17
- # rubocop:disable Metrics/ClassLength
17
+ # rubocop:disable-next Metrics/ClassLength
18
18
  module Dependabot
19
19
  module NpmAndYarn
20
20
  class FileUpdater < Dependabot::FileUpdaters::Base
@@ -1426,4 +1426,3 @@ module Dependabot
1426
1426
  end
1427
1427
  end
1428
1428
  end
1429
- # rubocop:enable Metrics/ClassLength
@@ -114,7 +114,7 @@ module Dependabot
114
114
  PNPM_TRUST_LOCKFILE_VERSION = "11.3"
115
115
  # pnpm-workspace.yaml settings that govern verification of loaded lockfile
116
116
  # entries, and so must not be overridden by `trustLockfile=true`.
117
- LOCKFILE_VERIFICATION_SETTINGS = T.let(%w(trustLockfile trustPolicy).freeze, T::Array[String])
117
+ LOCKFILE_VERIFICATION_SETTINGS = %w(trustLockfile trustPolicy).freeze
118
118
 
119
119
  UNREACHABLE_GIT = %r{Command failed with exit code 128: git ls-remote (?<url>.*github\.com/[^/]+/[^ ]+)}
120
120
  UNREACHABLE_GIT_V8 = %r{ERR_PNPM_FETCH_404[ [^:print]]+GET (?<url>https://codeload\.github\.com/[^/]+/[^/]+)/}
@@ -13,7 +13,7 @@ require "dependabot/npm_and_yarn/native_helpers"
13
13
  require "dependabot/shared_helpers"
14
14
  require "dependabot/errors"
15
15
 
16
- # rubocop:disable Metrics/ClassLength
16
+ # rubocop:disable-next Metrics/ClassLength
17
17
  module Dependabot
18
18
  module NpmAndYarn
19
19
  class FileUpdater < Dependabot::FileUpdaters::Base
@@ -829,7 +829,7 @@ module Dependabot
829
829
  yarnrc_global_registry =
830
830
  T.must(T.must(yarnrc_file).content)
831
831
  .lines.find { |line| line.match?(regex) }
832
- &.match(regex)
832
+ &.match(regex)
833
833
  &.named_captures
834
834
  &.fetch("registry")
835
835
 
@@ -967,7 +967,7 @@ module Dependabot
967
967
  "[#{code}]: #{error_message}"
968
968
  end
969
969
 
970
- raise create_error(handler, modified_error_message, error, params)
970
+ raise create_error(handler, modified_error_message, error, params)
971
971
  end
972
972
  end
973
973
 
@@ -1107,4 +1107,3 @@ module Dependabot
1107
1107
  end
1108
1108
  end
1109
1109
  end
1110
- # rubocop:enable Metrics/ClassLength
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/shared_helpers"
@@ -11,6 +11,7 @@ require "dependabot/npm_and_yarn/yarn_package_manager"
11
11
  require "dependabot/npm_and_yarn/pnpm_package_manager"
12
12
  require "dependabot/npm_and_yarn/language"
13
13
  require "dependabot/npm_and_yarn/constraint_helper"
14
+ require "dependabot/package/npm_package_manager_config"
14
15
 
15
16
  module Dependabot
16
17
  module NpmAndYarn
@@ -82,14 +83,13 @@ module Dependabot
82
83
  sig do
83
84
  params(
84
85
  lockfiles: T::Hash[Symbol, T.nilable(Dependabot::DependencyFile)],
85
- package_json: T.nilable(T::Hash[String, T.untyped])
86
+ config: Dependabot::Package::NpmPackageManagerConfig
86
87
  ).void
87
88
  end
88
- def initialize(lockfiles, package_json)
89
+ def initialize(lockfiles, config)
89
90
  @lockfiles = lockfiles
90
- @package_json = package_json
91
- @manifest_package_manager = T.let(package_json&.fetch(MANIFEST_PACKAGE_MANAGER_KEY, nil), T.nilable(String))
92
- @engines = T.let(package_json&.fetch(MANIFEST_ENGINES_KEY, {}), T::Hash[String, T.untyped])
91
+ @manifest_package_manager = T.let(config.package_manager, T.nilable(String))
92
+ @engines = T.let(config.engines || {}, T::Hash[String, String])
93
93
  end
94
94
 
95
95
  # Returns npm, yarn, or pnpm based on the lockfiles, package.json, and engines
@@ -130,8 +130,6 @@ module Dependabot
130
130
 
131
131
  sig { returns(T.nilable(String)) }
132
132
  def name_from_engines
133
- return unless @engines.is_a?(Hash)
134
-
135
133
  PACKAGE_MANAGER_CLASSES.each_key do |manager_name|
136
134
  return manager_name if @engines[manager_name]
137
135
  end
@@ -145,22 +143,21 @@ module Dependabot
145
143
 
146
144
  sig do
147
145
  params(
148
- package_json: T.nilable(T::Hash[String, T.untyped]),
146
+ config: Dependabot::Package::NpmPackageManagerConfig,
149
147
  lockfiles: T::Hash[Symbol, T.nilable(Dependabot::DependencyFile)],
150
148
  registry_config_files: T::Hash[Symbol, T.nilable(Dependabot::DependencyFile)],
151
149
  credentials: T.nilable(T::Array[Dependabot::Credential])
152
150
  ).void
153
151
  end
154
- def initialize(package_json, lockfiles, registry_config_files, credentials)
155
- @package_json = package_json
152
+ def initialize(config, lockfiles, registry_config_files, credentials)
156
153
  @lockfiles = lockfiles
157
154
  @registry_helper = T.let(
158
155
  RegistryHelper.new(registry_config_files, credentials),
159
156
  Dependabot::NpmAndYarn::RegistryHelper
160
157
  )
161
- @package_manager_detector = T.let(PackageManagerDetector.new(lockfiles, package_json), PackageManagerDetector)
162
- @manifest_package_manager = T.let(package_json&.fetch(MANIFEST_PACKAGE_MANAGER_KEY, nil), T.nilable(String))
163
- @engines = T.let(package_json&.fetch(MANIFEST_ENGINES_KEY, nil), T.nilable(T::Hash[String, T.untyped]))
158
+ @package_manager_detector = T.let(PackageManagerDetector.new(lockfiles, config), PackageManagerDetector)
159
+ @manifest_package_manager = T.let(config.package_manager, T.nilable(String))
160
+ @engines = T.let(config.engines, T.nilable(T::Hash[String, String]))
164
161
 
165
162
  @installed_versions = T.let({}, T::Hash[String, String])
166
163
  @registries = T.let({}, T::Hash[String, String])
@@ -223,9 +220,9 @@ module Dependabot
223
220
 
224
221
  sig { params(name: String).returns(String) }
225
222
  def raw_engine_constraint(name)
226
- return "" unless @engines.is_a?(Hash) && @engines[name]
223
+ return "" unless @engines
227
224
 
228
- @engines[name].to_s.strip
225
+ @engines.fetch(name, "").strip
229
226
  end
230
227
 
231
228
  sig { params(raw_constraint: String).returns(T.nilable(T::Array[T::Array[String]])) }
@@ -424,7 +421,7 @@ module Dependabot
424
421
 
425
422
  # If we can't get the installed version or the version is invalid, we need to get inferred version
426
423
  unless @installed_versions[name]&.match?(PACKAGE_MANAGER_VERSION_REGEX)
427
- @installed_versions[name] = Helpers.public_send(:"#{name}_version_numeric", @lockfiles[name.to_sym]).to_s
424
+ @installed_versions[name] = T.must(numeric_lockfile_version(name, @lockfiles[name.to_sym])).to_s
428
425
  end
429
426
 
430
427
  T.must(@installed_versions[name])
@@ -472,25 +469,25 @@ module Dependabot
472
469
  match["version"]
473
470
  end
474
471
 
475
- sig { params(name: String).returns(T.nilable(T.any(Integer, String))) }
472
+ sig { params(name: String).returns(T.nilable(Integer)) }
476
473
  def guessed_version(name)
477
474
  lockfile = @lockfiles[name.to_sym]
478
475
  return unless lockfile
479
476
 
480
- version = Helpers.send(:"#{name}_version_numeric", lockfile)
477
+ version = numeric_lockfile_version(name, lockfile)
481
478
 
482
479
  Dependabot.logger.info("Guessed version info \"#{name}\" : \"#{version}\"")
483
480
 
484
481
  version
485
482
  end
486
483
 
487
- sig { params(name: T.untyped).returns(T.nilable(String)) }
484
+ sig { params(name: String).returns(T.nilable(String)) }
488
485
  def check_engine_version(name)
489
- return if @package_json.nil?
486
+ return unless @engines
490
487
 
491
488
  version_selector = VersionSelector.new
492
489
 
493
- engine_versions = version_selector.setup(@package_json, name, dependabot_versions(name))
490
+ engine_versions = version_selector.setup(@engines, name, dependabot_versions(name))
494
491
 
495
492
  return if engine_versions.empty?
496
493
 
@@ -510,6 +507,23 @@ module Dependabot
510
507
  PNPMPackageManager::SUPPORTED_VERSIONS
511
508
  end
512
509
  end
510
+
511
+ sig do
512
+ params(
513
+ name: String,
514
+ lockfile: T.nilable(Dependabot::DependencyFile)
515
+ ).returns(T.nilable(Integer))
516
+ end
517
+ def numeric_lockfile_version(name, lockfile)
518
+ case name
519
+ when NpmPackageManager::NAME
520
+ Helpers.npm_version_numeric(lockfile)
521
+ when YarnPackageManager::NAME
522
+ Helpers.yarn_version_numeric(lockfile)
523
+ when PNPMPackageManager::NAME
524
+ Helpers.pnpm_version_numeric(lockfile)
525
+ end
526
+ end
513
527
  end
514
528
  end
515
529
  end
@@ -18,7 +18,7 @@ require "dependabot/npm_and_yarn/update_checker"
18
18
  require "dependabot/npm_and_yarn/version"
19
19
  require "dependabot/shared_helpers"
20
20
 
21
- # rubocop:disable Metrics/ClassLength
21
+ # rubocop:disable-next Metrics/ClassLength
22
22
  module Dependabot
23
23
  module NpmAndYarn
24
24
  class UpdateChecker
@@ -1085,4 +1085,3 @@ module Dependabot
1085
1085
  end
1086
1086
  end
1087
1087
  end
1088
- # rubocop:enable Metrics/ClassLength
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/shared_helpers"
@@ -10,29 +10,27 @@ module Dependabot
10
10
  extend T::Sig
11
11
  extend T::Helpers
12
12
 
13
- # Sets up engine versions from the given manifest JSON.
13
+ # Sets up the requested engine version from the manifest engines.
14
14
  #
15
- # @param manifest_json [Hash] The manifest JSON containing version information.
15
+ # @param engine_versions [Hash] The manifest engine constraints.
16
16
  # @param name [String] The engine name to match.
17
17
  # @return [Hash] A hash with selected versions, if found.
18
18
  sig do
19
19
  params(
20
- manifest_json: T::Hash[String, T.untyped],
20
+ engine_versions: T.nilable(T::Hash[String, String]),
21
21
  name: String,
22
22
  dependabot_versions: T.nilable(T::Array[Dependabot::Version])
23
23
  )
24
- .returns(T::Hash[Symbol, T.untyped])
24
+ .returns(T::Hash[String, T.nilable(String)])
25
25
  end
26
- def setup(manifest_json, name, dependabot_versions = nil)
27
- engine_versions = manifest_json["engines"]
28
-
26
+ def setup(engine_versions, name, dependabot_versions = nil)
29
27
  # Return an empty hash if no engine versions are specified
30
28
  return {} if engine_versions.nil?
31
29
 
32
- versions = {}
30
+ versions = T.let({}, T::Hash[String, T.nilable(String)])
33
31
 
34
32
  engine_versions.each do |engine, value|
35
- next unless engine.to_s == name
33
+ next unless engine == name
36
34
 
37
35
  versions[name] = ConstraintHelper.find_highest_version_from_constraint_expression(
38
36
  value, dependabot_versions
@@ -35,7 +35,7 @@ ErrorHandler = T.type_alias do
35
35
  end
36
36
 
37
37
  module Dependabot
38
- # rubocop:disable Metrics/ModuleLength
38
+ # rubocop:disable-next Metrics/ModuleLength
39
39
  module NpmAndYarn
40
40
  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
41
41
 
@@ -660,5 +660,4 @@ module Dependabot
660
660
  }]
661
661
  )
662
662
  end
663
- # rubocop:enable Metrics/ModuleLength
664
663
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-npm_and_yarn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.394.0
4
+ version: 0.395.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.394.0
18
+ version: 0.395.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.394.0
25
+ version: 0.395.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -178,19 +178,19 @@ dependencies:
178
178
  - !ruby/object:Gem::Version
179
179
  version: '1.1'
180
180
  - !ruby/object:Gem::Dependency
181
- name: turbo_tests
181
+ name: turbo_tests2
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: 2.2.5
186
+ version: 3.2.7
187
187
  type: :development
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: 2.2.5
193
+ version: 3.2.7
194
194
  - !ruby/object:Gem::Dependency
195
195
  name: vcr
196
196
  requirement: !ruby/object:Gem::Requirement
@@ -281,6 +281,8 @@ files:
281
281
  - helpers/test/npm/fixtures/vulnerability-auditor/locked-transitive-dependency/package.json
282
282
  - helpers/test/npm/fixtures/vulnerability-auditor/outdated-package-lock/package-lock.json
283
283
  - helpers/test/npm/fixtures/vulnerability-auditor/outdated-package-lock/package.json
284
+ - helpers/test/npm/fixtures/vulnerability-auditor/range-order-lower-major-only/package-lock.json
285
+ - helpers/test/npm/fixtures/vulnerability-auditor/range-order-lower-major-only/package.json
284
286
  - helpers/test/npm/fixtures/vulnerability-auditor/simple/package-lock.json
285
287
  - helpers/test/npm/fixtures/vulnerability-auditor/simple/package.json
286
288
  - helpers/test/npm/fixtures/vulnerability-auditor/update-needed-across-two-versions/package-lock.json
@@ -388,7 +390,7 @@ licenses:
388
390
  - MIT
389
391
  metadata:
390
392
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
391
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.394.0
393
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.395.0
392
394
  rdoc_options: []
393
395
  require_paths:
394
396
  - lib