dependabot-npm_and_yarn 0.217.0 → 0.218.0

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: a823eeb3c53a01ed5def55c048e922f0d7a0321b3c0e3a5fb72a6d6a00fbf46b
4
- data.tar.gz: '086d8ec9bd1a36a0fb1c65f2eba91e8b5f6d6c64a3cf700774a275eeb07f3767'
3
+ metadata.gz: 7206f2db6166afbdb898d6bc710f53255a7ee8426eb820642e56bdd967ddc079
4
+ data.tar.gz: 6525f3d43debb1e9f09a612ca04589f29a4c14b1c16b27c86fb1140270ab5c18
5
5
  SHA512:
6
- metadata.gz: a0d9706d209830b65e374334508f962a93442f48e7fd024f0a0436edb8381e3388e52f08ce1acaef7b39fc4a72a5a1df05813128e03c429a90ab971ef37969a7
7
- data.tar.gz: cd710eb25983ce630ddfd87e816ab7c0f99264f78f2251c96393ebc32eba4b6c844a319c4f4b25113e46a1c4b2b48ff65a5f00a3a3f9d9b6601c4b71cb8c8e94
6
+ metadata.gz: 6f867a7d9a6cdef47a73c6d13b263b02e6622ff97282322c289fb46567548e6f58dd05588e7dd03e915183ed51ecd1532c9dd818452d0672521d1f43ede98d18
7
+ data.tar.gz: d55ba2258422781d317652cc712a349cbd43391aa9730ea1f1b79f7198c48cba24abb3956199278f796d76bb74e3bfa1c789e62eb5f930c47ff6d95d79282751
@@ -0,0 +1,5 @@
1
+ const lockfileParser = require("./lockfile-parser");
2
+
3
+ module.exports = {
4
+ parseLockfile: lockfileParser.parse,
5
+ };
@@ -0,0 +1,77 @@
1
+ /* PNPM-LOCK.YAML PARSER
2
+ *
3
+ * Inputs:
4
+ * - directory containing a pnpm-lock.yaml file
5
+ *
6
+ * Outputs:
7
+ * - JSON formatted information of dependencies (name, version, dependency-type)
8
+ */
9
+ const { readWantedLockfile } = require("@pnpm/lockfile-file");
10
+ const dependencyPath = require("@pnpm/dependency-path");
11
+
12
+ async function parse(directory) {
13
+ const lockfile = await readWantedLockfile(directory, {
14
+ ignoreIncompatible: true
15
+ });
16
+
17
+ return Object.entries(lockfile.packages ?? {})
18
+ .map(([depPath, pkgSnapshot]) => nameVerDevFromPkgSnapshot(depPath, pkgSnapshot, Object.values(lockfile.importers)))
19
+ }
20
+
21
+ function nameVerDevFromPkgSnapshot(depPath, pkgSnapshot, projectSnapshots) {
22
+ let name;
23
+ let version;
24
+
25
+ if (!pkgSnapshot.name) {
26
+ const pkgInfo = dependencyPath.parse(depPath);
27
+ name = pkgInfo.name;
28
+ version = pkgInfo.version;
29
+ } else {
30
+ name = pkgSnapshot.name;
31
+ version = pkgSnapshot.version;
32
+ }
33
+
34
+ let specifiers = [];
35
+ let aliased = false;
36
+
37
+ projectSnapshots.every(projectSnapshot => {
38
+ const projectSpecifiers = projectSnapshot.specifiers;
39
+
40
+ if (Object.values(projectSpecifiers).some(specifier => specifier.startsWith(`npm:${name}@`) || specifier == `npm:${name}`)) {
41
+ aliased = true;
42
+ return false;
43
+ }
44
+
45
+ currentSpecifier = projectSpecifiers[name];
46
+
47
+ if (!currentSpecifier) {
48
+ return true;
49
+ }
50
+
51
+ let specifierVersion = currentSpecifier.version;
52
+
53
+ if (!currentSpecifier.version) {
54
+ specifierVersion = projectSnapshot.dependencies?.[name] || projectSnapshot.devDependencies?.[name] || projectSnapshot.optionalDependencies?.[name]
55
+ }
56
+
57
+ if (
58
+ specifierVersion == version ||
59
+ specifierVersion.startsWith(`${version}_`) || // lockfileVersion 5.4
60
+ specifierVersion.startsWith(`${version}(`) // lockfileVersion 6.0
61
+ ) {
62
+ specifiers.push(currentSpecifier.specifier || currentSpecifier);
63
+ }
64
+
65
+ return true;
66
+ });
67
+
68
+ return {
69
+ name: name,
70
+ version: version,
71
+ dev: pkgSnapshot.dev,
72
+ specifiers: specifiers,
73
+ aliased: aliased
74
+ }
75
+ }
76
+
77
+ module.exports = { parse };