@nodesecure/scanner 6.10.0 → 6.12.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.
- package/dist/class/TopPackages.class.d.ts +10 -0
- package/dist/class/TopPackages.class.d.ts.map +1 -0
- package/dist/class/TopPackages.class.js +36 -0
- package/dist/class/TopPackages.class.js.map +1 -0
- package/dist/data/top-packages.json +50000 -0
- package/dist/depWalker.d.ts.map +1 -1
- package/dist/depWalker.js +23 -19
- package/dist/depWalker.js.map +1 -1
- package/dist/i18n/english.d.ts +1 -0
- package/dist/i18n/english.js +4 -1
- package/dist/i18n/english.js.map +1 -1
- package/dist/i18n/french.d.ts +1 -0
- package/dist/i18n/french.js +4 -1
- package/dist/i18n/french.js.map +1 -1
- package/dist/registry/NpmRegistryProvider.d.ts +54 -0
- package/dist/registry/NpmRegistryProvider.d.ts.map +1 -0
- package/dist/registry/NpmRegistryProvider.js +80 -0
- package/dist/registry/NpmRegistryProvider.js.map +1 -0
- package/dist/registry/PackumentExtractor.d.ts +14 -0
- package/dist/registry/PackumentExtractor.d.ts.map +1 -0
- package/dist/registry/PackumentExtractor.js +70 -0
- package/dist/registry/PackumentExtractor.js.map +1 -0
- package/dist/registry/fetchNpmAvatars.d.ts +3 -0
- package/dist/registry/fetchNpmAvatars.d.ts.map +1 -0
- package/dist/registry/fetchNpmAvatars.js +48 -0
- package/dist/registry/fetchNpmAvatars.js.map +1 -0
- package/dist/utils/warnings.d.ts.map +1 -1
- package/dist/utils/warnings.js +9 -1
- package/dist/utils/warnings.js.map +1 -1
- package/package.json +8 -7
- package/dist/npmRegistry.d.ts +0 -9
- package/dist/npmRegistry.d.ts.map +0 -1
- package/dist/npmRegistry.js +0 -127
- package/dist/npmRegistry.js.map +0 -1
package/dist/npmRegistry.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
// Import Third-party Dependencies
|
|
2
|
-
import semver from "semver";
|
|
3
|
-
import * as npmRegistrySDK from "@nodesecure/npm-registry-sdk";
|
|
4
|
-
import { packageJSONIntegrityHash } from "@nodesecure/mama";
|
|
5
|
-
// Import Internal Dependencies
|
|
6
|
-
import { getLinks } from "./utils/index.js";
|
|
7
|
-
import { Logger } from "./class/logger.class.js";
|
|
8
|
-
export async function manifestMetadata(name, version, dependency) {
|
|
9
|
-
try {
|
|
10
|
-
const pkgVersion = await npmRegistrySDK.packumentVersion(name, version);
|
|
11
|
-
const integrity = packageJSONIntegrityHash(pkgVersion, {
|
|
12
|
-
isFromRemoteRegistry: true
|
|
13
|
-
});
|
|
14
|
-
Object.assign(dependency.versions[version], {
|
|
15
|
-
links: getLinks(pkgVersion)
|
|
16
|
-
});
|
|
17
|
-
dependency.metadata.integrity[version] = integrity;
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
// Ignore
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export async function packageMetadata(name, version, options) {
|
|
24
|
-
const { dependency, logger } = options;
|
|
25
|
-
const spec = `${name}:${version}`;
|
|
26
|
-
try {
|
|
27
|
-
const pkg = await npmRegistrySDK.packument(name);
|
|
28
|
-
const oneYearFromToday = new Date();
|
|
29
|
-
oneYearFromToday.setFullYear(oneYearFromToday.getFullYear() - 1);
|
|
30
|
-
const lastVersion = pkg["dist-tags"].latest;
|
|
31
|
-
const lastUpdateAt = new Date(pkg.time[lastVersion]);
|
|
32
|
-
const metadata = {
|
|
33
|
-
author: pkg.author ?? null,
|
|
34
|
-
homepage: pkg.homepage || null,
|
|
35
|
-
publishedCount: Object.values(pkg.versions).length,
|
|
36
|
-
lastVersion,
|
|
37
|
-
lastUpdateAt,
|
|
38
|
-
hasReceivedUpdateInOneYear: !(oneYearFromToday > lastUpdateAt),
|
|
39
|
-
hasManyPublishers: false,
|
|
40
|
-
hasChangedAuthor: false,
|
|
41
|
-
maintainers: pkg.maintainers ?? [],
|
|
42
|
-
publishers: [],
|
|
43
|
-
integrity: {}
|
|
44
|
-
};
|
|
45
|
-
const isOutdated = semver.neq(version, lastVersion);
|
|
46
|
-
const dependencyVersion = dependency.versions[version];
|
|
47
|
-
const flags = dependencyVersion.flags;
|
|
48
|
-
if (isOutdated) {
|
|
49
|
-
flags.push("isOutdated");
|
|
50
|
-
}
|
|
51
|
-
const publishers = new Set();
|
|
52
|
-
let searchForMaintainersInVersions = metadata.maintainers.length === 0;
|
|
53
|
-
for (const ver of Object.values(pkg.versions).reverse()) {
|
|
54
|
-
if (spec === `${ver.name}:${ver.version}`) {
|
|
55
|
-
if ("deprecated" in ver && !flags.includes("isDeprecated")) {
|
|
56
|
-
flags.push("isDeprecated");
|
|
57
|
-
dependencyVersion.deprecated = ver.deprecated;
|
|
58
|
-
}
|
|
59
|
-
metadata.integrity[ver.version] = packageJSONIntegrityHash(ver, { isFromRemoteRegistry: true });
|
|
60
|
-
}
|
|
61
|
-
const { _npmUser = null, version, maintainers = [] } = ver;
|
|
62
|
-
if (_npmUser !== null) {
|
|
63
|
-
const authorName = metadata.author?.name ?? null;
|
|
64
|
-
if (authorName === null) {
|
|
65
|
-
metadata.author = _npmUser;
|
|
66
|
-
}
|
|
67
|
-
else if (authorName !== null && _npmUser.name !== authorName) {
|
|
68
|
-
metadata.hasManyPublishers = true;
|
|
69
|
-
}
|
|
70
|
-
if (!publishers.has(_npmUser.name)) {
|
|
71
|
-
publishers.add(_npmUser.name);
|
|
72
|
-
metadata.publishers.push({
|
|
73
|
-
..._npmUser,
|
|
74
|
-
version,
|
|
75
|
-
at: new Date(pkg.time[version]).toISOString()
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (searchForMaintainersInVersions) {
|
|
80
|
-
metadata.maintainers.push(...maintainers);
|
|
81
|
-
searchForMaintainersInVersions = false;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
await addNpmAvatar(metadata);
|
|
85
|
-
Object.assign(dependency.versions[version], { links: getLinks(pkg.versions[version]) });
|
|
86
|
-
dependency.metadata = metadata;
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
// ignore
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
logger.tick("registry");
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async function addNpmAvatar(metadata) {
|
|
96
|
-
const contributors = [
|
|
97
|
-
...metadata.maintainers,
|
|
98
|
-
...metadata.publishers
|
|
99
|
-
];
|
|
100
|
-
if (metadata.author !== null) {
|
|
101
|
-
contributors.push(metadata.author);
|
|
102
|
-
}
|
|
103
|
-
const emailToAvatar = {};
|
|
104
|
-
const promises = contributors.map((contributor) => {
|
|
105
|
-
if (contributor.email && emailToAvatar[contributor.email]) {
|
|
106
|
-
contributor.npmAvatar = emailToAvatar[contributor.email];
|
|
107
|
-
return Promise.resolve();
|
|
108
|
-
}
|
|
109
|
-
return npmRegistrySDK.user(contributor.name, { perPage: 1 })
|
|
110
|
-
.then((profile) => {
|
|
111
|
-
contributor.npmAvatar = profile.avatars.small;
|
|
112
|
-
if (contributor.email && contributor.npmAvatar) {
|
|
113
|
-
emailToAvatar[contributor.email] = contributor.npmAvatar;
|
|
114
|
-
}
|
|
115
|
-
}).catch(() => {
|
|
116
|
-
contributor.npmAvatar = undefined;
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
await Promise.all(promises);
|
|
120
|
-
// back fill npmAvatar if any name property was not npm username in first pass
|
|
121
|
-
for (const contributor of contributors) {
|
|
122
|
-
if (!contributor.npmAvatar && contributor.email && emailToAvatar[contributor.email]) {
|
|
123
|
-
contributor.npmAvatar = emailToAvatar[contributor.email];
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=npmRegistry.js.map
|
package/dist/npmRegistry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"npmRegistry.js","sourceRoot":"","sources":["../src/npmRegistry.ts"],"names":[],"mappings":"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"}
|