@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.
Files changed (34) hide show
  1. package/dist/class/TopPackages.class.d.ts +10 -0
  2. package/dist/class/TopPackages.class.d.ts.map +1 -0
  3. package/dist/class/TopPackages.class.js +36 -0
  4. package/dist/class/TopPackages.class.js.map +1 -0
  5. package/dist/data/top-packages.json +50000 -0
  6. package/dist/depWalker.d.ts.map +1 -1
  7. package/dist/depWalker.js +23 -19
  8. package/dist/depWalker.js.map +1 -1
  9. package/dist/i18n/english.d.ts +1 -0
  10. package/dist/i18n/english.js +4 -1
  11. package/dist/i18n/english.js.map +1 -1
  12. package/dist/i18n/french.d.ts +1 -0
  13. package/dist/i18n/french.js +4 -1
  14. package/dist/i18n/french.js.map +1 -1
  15. package/dist/registry/NpmRegistryProvider.d.ts +54 -0
  16. package/dist/registry/NpmRegistryProvider.d.ts.map +1 -0
  17. package/dist/registry/NpmRegistryProvider.js +80 -0
  18. package/dist/registry/NpmRegistryProvider.js.map +1 -0
  19. package/dist/registry/PackumentExtractor.d.ts +14 -0
  20. package/dist/registry/PackumentExtractor.d.ts.map +1 -0
  21. package/dist/registry/PackumentExtractor.js +70 -0
  22. package/dist/registry/PackumentExtractor.js.map +1 -0
  23. package/dist/registry/fetchNpmAvatars.d.ts +3 -0
  24. package/dist/registry/fetchNpmAvatars.d.ts.map +1 -0
  25. package/dist/registry/fetchNpmAvatars.js +48 -0
  26. package/dist/registry/fetchNpmAvatars.js.map +1 -0
  27. package/dist/utils/warnings.d.ts.map +1 -1
  28. package/dist/utils/warnings.js +9 -1
  29. package/dist/utils/warnings.js.map +1 -1
  30. package/package.json +8 -7
  31. package/dist/npmRegistry.d.ts +0 -9
  32. package/dist/npmRegistry.d.ts.map +0 -1
  33. package/dist/npmRegistry.js +0 -127
  34. package/dist/npmRegistry.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"npmRegistry.js","sourceRoot":"","sources":["../src/npmRegistry.ts"],"names":[],"mappings":"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"}