dependabot-npm_and_yarn 0.212.0 → 0.214.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/.eslintrc +1 -1
  3. data/helpers/README.md +2 -2
  4. data/helpers/lib/npm/vulnerability-auditor.js +7 -7
  5. data/helpers/package-lock.json +2781 -2547
  6. data/helpers/package.json +5 -5
  7. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested/package-lock.json +3 -3
  8. data/lib/dependabot/npm_and_yarn/file_fetcher/path_dependency_builder.rb +11 -2
  9. data/lib/dependabot/npm_and_yarn/file_fetcher.rb +90 -5
  10. data/lib/dependabot/npm_and_yarn/file_parser/lockfile_parser.rb +15 -4
  11. data/lib/dependabot/npm_and_yarn/file_parser.rb +15 -6
  12. data/lib/dependabot/npm_and_yarn/file_updater/npm_lockfile_updater.rb +35 -21
  13. data/lib/dependabot/npm_and_yarn/file_updater/npmrc_builder.rb +86 -7
  14. data/lib/dependabot/npm_and_yarn/file_updater/package_json_updater.rb +2 -2
  15. data/lib/dependabot/npm_and_yarn/file_updater/yarn_lockfile_updater.rb +96 -32
  16. data/lib/dependabot/npm_and_yarn/file_updater.rb +53 -1
  17. data/lib/dependabot/npm_and_yarn/helpers.rb +94 -0
  18. data/lib/dependabot/npm_and_yarn/package_name.rb +2 -2
  19. data/lib/dependabot/npm_and_yarn/requirement.rb +3 -3
  20. data/lib/dependabot/npm_and_yarn/update_checker/dependency_files_builder.rb +43 -1
  21. data/lib/dependabot/npm_and_yarn/update_checker/latest_version_finder.rb +13 -14
  22. data/lib/dependabot/npm_and_yarn/update_checker/library_detector.rb +16 -3
  23. data/lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb +77 -23
  24. data/lib/dependabot/npm_and_yarn/update_checker/requirements_updater.rb +3 -4
  25. data/lib/dependabot/npm_and_yarn/update_checker/subdependency_version_resolver.rb +19 -4
  26. data/lib/dependabot/npm_and_yarn/update_checker/version_resolver.rb +74 -30
  27. data/lib/dependabot/npm_and_yarn/update_checker/vulnerability_auditor.rb +33 -8
  28. data/lib/dependabot/npm_and_yarn/update_checker.rb +76 -21
  29. data/lib/dependabot/npm_and_yarn/version.rb +1 -1
  30. data/lib/dependabot/npm_and_yarn.rb +2 -0
  31. metadata +13 -56
  32. data/lib/dependabot/npm_and_yarn/file_parser/yarn_lockfile_parser.rb +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ff4958e3092d765d3d92a6035f05dee25680d26697649b3adad94b2b876df7b
4
- data.tar.gz: 0adce108f8a33fefd73641d55db1730ba0bdfd167d2e0a8b7d674d1074455c87
3
+ metadata.gz: 6f056274186e20cfd09b6ed8bbf84249b6676461533bb76de51ecf4025e189a6
4
+ data.tar.gz: 4e30b85987104e3d79fb89d62d51e2dbff8c57337700b6a646633feaae47aadf
5
5
  SHA512:
6
- metadata.gz: 3eac1860e88136dc0b8ebc851b1fdad2ae27459df2a39937d401372b86cd6c86432d46bfe93d68422098d664ebe776fdaf3f7674f07911525e5c97fce83e0136
7
- data.tar.gz: c7c5f918a175e8f8de6cfc8110895f3c13f15cd1af0e342ab2cdd74794c2d383c74e46ea2076b36a3059a75cc5e93a92233a1d08368e5cfdd456fb3a5d89bc34
6
+ metadata.gz: fa8d78e12bb014909be03e084887d429f9bd2295d69f6cff6df0f9058c4a8e49e19c465470659010917be9c13c7a95a57ad970b2875e0be8fb2b050755b89a84
7
+ data.tar.gz: 54d9510b40145d16a62453ef2613503fcc87f336c14bd5a0809c71dfa99242cc91c3722504d87d737af3a0213ecc2383081a129a459124dc2079df91009a4ac9
data/helpers/.eslintrc CHANGED
@@ -6,6 +6,6 @@
6
6
  "node": true
7
7
  },
8
8
  "parserOptions": {
9
- "ecmaVersion": 9
9
+ "ecmaVersion": "latest"
10
10
  }
11
11
  }
data/helpers/README.md CHANGED
@@ -24,6 +24,6 @@ yarn test path/to/test.js
24
24
  In order to run an interactive debugger:
25
25
 
26
26
  - `node --inspect-brk node_modules/.bin/jest --runInBand path/to/test/test.js`
27
- - In Chrome, nativate to chrome://inspect
27
+ - In Chrome, navigate to `chrome://inspect`
28
28
  - Click `Open dedicated DevTools for Node`
29
- - You'll now be able to interactively debug using the chrome dev tools.
29
+ - You'll now be able to interactively debug using the Chrome dev tools.
@@ -139,11 +139,6 @@ async function findVulnerableDependencies(directory, advisories) {
139
139
  }
140
140
 
141
141
  function convertAdvisoriesToRegistryBulkFormat(advisories) {
142
- // npm audit differentiates advisories by `id`. In order to prevent
143
- // advisories from being clobbered, we maintain a counter so that each
144
- // advisory gets a unique `id`.
145
- let nextAdvisoryId = 1
146
-
147
142
  return advisories.reduce((formattedAdvisories, advisory) => {
148
143
  if (!formattedAdvisories[advisory.dependency_name]) {
149
144
  formattedAdvisories[advisory.dependency_name] = []
@@ -151,7 +146,7 @@ function convertAdvisoriesToRegistryBulkFormat(advisories) {
151
146
  let formattedVersions =
152
147
  advisory.affected_versions.reduce((memo, version) => {
153
148
  memo.push({
154
- id: nextAdvisoryId++,
149
+ id: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER),
155
150
  vulnerable_versions: version
156
151
  })
157
152
  return memo
@@ -192,7 +187,12 @@ function buildDependencyChains(auditReport, name) {
192
187
  }
193
188
  if (auditReport.has(node.name)) {
194
189
  const vuln = auditReport.get(node.name)
195
- return [{ fixAvailable: vuln.fixAvailable, nodes: [node, ...chain.nodes] }]
190
+ if (vuln.isVulnerable(node)) {
191
+ return [{ fixAvailable: vuln.fixAvailable, nodes: [node, ...chain.nodes] }]
192
+ } else if (node.name == name) {
193
+ // This is a non-vulnerable version of the advisory dependency; end path.
194
+ return []
195
+ }
196
196
  }
197
197
  if (!node.edgesOut.size) {
198
198
  // This is a leaf node that is unaffected by the vuln; end path.