dependabot-npm_and_yarn 0.190.0 → 0.191.1

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: e8fd36a5cc2b38c9b0c0b80cec9d429d7508464c740e44adf606da01c20edb2e
4
- data.tar.gz: 2fbded9b7042c860af26060f14295e58fe6726382d26842e26546e96fae94ed3
3
+ metadata.gz: e5a135e31fe825f130a0500d45bdc43f2afdbc81ada4261e395f42121d731039
4
+ data.tar.gz: 9c99e2a1c9e815a43c08286cb68f034ae55df6e4482a66ea78fa3cfcae9ce8c3
5
5
  SHA512:
6
- metadata.gz: 62340ef66e71ce68d7e62b8a31eb5798e74396b7689bdf5a1b77d64f392520def2fb8878135eb687519a8d4dc3557e70f64c67ec0cdced4d7d410827e72df6e5
7
- data.tar.gz: 165eb6197b0a244e07774cfacc3215bde58726916ee99f3e1fd2c94b683eba6f906eb6437cfc89e5c1d78f77578915c1aaf05fda8a46b566c2c3b8e4298cf1df
6
+ metadata.gz: b0c7b3c84aad4c38ccc544a394649cde556152767c7ab3342930ca246c6d0667453868004488c298da81aaab5f58fe1ecf1b66bf88d56e6522c70fce7f7e55c9
7
+ data.tar.gz: 8bfda18f03db02a4a3dc5a82e49fb244e10a9d1e0fa1af7b5dfdc37d414937042a8e7ff91764d24fa9f8c4caa3418d3f774abee5e374bef9b1bcd4d6f8d7fc10
@@ -10,7 +10,7 @@
10
10
  "left-pad": {
11
11
  "version": "1.1.3",
12
12
  "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.1.3.tgz",
13
- "integrity": "sha1-YS9hwDPzqeCOk58crr7qQbbzGZo="
13
+ "integrity": "sha512-m3z9QHpSXmd2H8Z5jnSXbGONPty4dFQfH1QpGgivzrEzICgsi50j9S+aGc77EaLoHpbw0BzP5+k1pp2UajTRuw=="
14
14
  }
15
15
  }
16
16
  }
@@ -9,4 +9,4 @@ is-positive@^3.1.0:
9
9
  left-pad@^1.1.3:
10
10
  version "1.1.3"
11
11
  resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
12
- integrity sha1-YS9hwDPzqeCOk58crr7qQbbzGZo=
12
+ integrity sha512-m3z9QHpSXmd2H8Z5jnSXbGONPty4dFQfH1QpGgivzrEzICgsi50j9S+aGc77EaLoHpbw0BzP5+k1pp2UajTRuw==
@@ -3,7 +3,9 @@
3
3
  require "json"
4
4
  require "dependabot/file_fetchers"
5
5
  require "dependabot/file_fetchers/base"
6
+ require "dependabot/npm_and_yarn/helpers"
6
7
  require "dependabot/npm_and_yarn/file_parser"
8
+ require "dependabot/npm_and_yarn/file_parser/lockfile_parser"
7
9
 
8
10
  module Dependabot
9
11
  module NpmAndYarn
@@ -43,10 +45,25 @@ module Dependabot
43
45
  fetched_files += workspace_package_jsons
44
46
  fetched_files += lerna_packages
45
47
  fetched_files += path_dependencies(fetched_files)
48
+ instrument_package_manager_version
46
49
 
47
50
  fetched_files.uniq
48
51
  end
49
52
 
53
+ def instrument_package_manager_version
54
+ package_managers = {}
55
+
56
+ package_managers["npm"] = Helpers.npm_version_numeric(package_lock.content) if package_lock
57
+ package_managers["yarn"] = 1 if yarn_lock
58
+ package_managers["shrinkwrap"] = 1 if shrinkwrap
59
+
60
+ Dependabot.instrument(
61
+ Notifications::FILE_PARSER_PACKAGE_MANAGER_VERSION_PARSED,
62
+ ecosystem: "npm",
63
+ package_managers: package_managers
64
+ )
65
+ end
66
+
50
67
  def package_json
51
68
  @package_json ||= fetch_file_from_host("package.json")
52
69
  end
@@ -304,18 +321,22 @@ module Dependabot
304
321
 
305
322
  # Only expands globs one level deep, so path/**/* gets expanded to path/
306
323
  def expanded_paths(path)
307
- ignored_paths = path.scan(/!\((.*?)\)/).flatten
324
+ ignored_path = path.match?(/!\(.*?\)/) && path.gsub(/(!\((.*?)\))/, '\2')
308
325
 
309
326
  dir = directory.gsub(%r{(^/|/$)}, "")
310
327
  path = path.gsub(%r{^\./}, "").gsub(/!\(.*?\)/, "*")
311
328
  unglobbed_path = path.split("*").first&.gsub(%r{(?<=/)[^/]*$}, "") ||
312
329
  "."
313
330
 
314
- repo_contents(dir: unglobbed_path, raise_errors: false).
331
+ results =
332
+ repo_contents(dir: unglobbed_path, raise_errors: false).
315
333
  select { |file| file.type == "dir" }.
316
334
  map { |f| f.path.gsub(%r{^/?#{Regexp.escape(dir)}/?}, "") }.
317
- select { |filename| File.fnmatch?(path, filename) }.
318
- reject { |fn| ignored_paths.any? { |p| fn.include?(p) } }
335
+ select { |filename| File.fnmatch?(path, filename) }
336
+
337
+ return results unless ignored_path
338
+
339
+ results.reject { |filename| File.fnmatch?(ignored_path, filename) }
319
340
  end
320
341
 
321
342
  def parsed_package_json
@@ -4,12 +4,16 @@ module Dependabot
4
4
  module NpmAndYarn
5
5
  module Helpers
6
6
  def self.npm_version(lockfile_content)
7
- return "npm8" unless lockfile_content
8
- return "npm8" if JSON.parse(lockfile_content)["lockfileVersion"] >= 2
7
+ "npm#{npm_version_numeric(lockfile_content)}"
8
+ end
9
+
10
+ def self.npm_version_numeric(lockfile_content)
11
+ return 8 unless lockfile_content
12
+ return 8 if JSON.parse(lockfile_content)["lockfileVersion"] >= 2
9
13
 
10
- "npm6"
14
+ 6
11
15
  rescue JSON::ParserError
12
- "npm6"
16
+ 6
13
17
  end
14
18
  end
15
19
  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.190.0
4
+ version: 0.191.1
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-23 00:00:00.000000000 Z
11
+ date: 2022-06-13 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.190.0
19
+ version: 0.191.1
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.190.0
26
+ version: 0.191.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debase
29
29
  requirement: !ruby/object:Gem::Requirement