@code-pushup/js-packages-plugin 0.56.0 → 0.58.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/package.json +9 -7
- package/src/bin.js +6 -0
- package/src/bin.js.map +1 -0
- package/src/index.d.ts +2 -2
- package/src/index.js +3 -0
- package/src/index.js.map +1 -0
- package/src/lib/config.d.ts +4 -4
- package/src/lib/config.js +59 -0
- package/src/lib/config.js.map +1 -0
- package/src/lib/constants.d.ts +2 -2
- package/src/lib/constants.js +25 -0
- package/src/lib/constants.js.map +1 -0
- package/src/lib/js-packages-plugin.d.ts +1 -1
- package/src/lib/js-packages-plugin.js +101 -0
- package/src/lib/js-packages-plugin.js.map +1 -0
- package/src/lib/package-managers/constants.js +3 -0
- package/src/lib/package-managers/constants.js.map +1 -0
- package/src/lib/package-managers/derive-package-manager.d.ts +2 -2
- package/src/lib/package-managers/derive-package-manager.js +43 -0
- package/src/lib/package-managers/derive-package-manager.js.map +1 -0
- package/src/lib/package-managers/derive-yarn.js +16 -0
- package/src/lib/package-managers/derive-yarn.js.map +1 -0
- package/src/lib/package-managers/npm/audit-result.d.ts +2 -2
- package/src/lib/package-managers/npm/audit-result.js +65 -0
- package/src/lib/package-managers/npm/audit-result.js.map +1 -0
- package/src/lib/package-managers/npm/npm.d.ts +1 -1
- package/src/lib/package-managers/npm/npm.js +49 -0
- package/src/lib/package-managers/npm/npm.js.map +1 -0
- package/src/lib/package-managers/npm/outdated-result.d.ts +1 -1
- package/src/lib/package-managers/npm/outdated-result.js +16 -0
- package/src/lib/package-managers/npm/outdated-result.js.map +1 -0
- package/src/lib/package-managers/npm/types.d.ts +3 -3
- package/src/lib/package-managers/npm/types.js +2 -0
- package/src/lib/package-managers/npm/types.js.map +1 -0
- package/src/lib/package-managers/package-managers.d.ts +2 -2
- package/src/lib/package-managers/package-managers.js +11 -0
- package/src/lib/package-managers/package-managers.js.map +1 -0
- package/src/lib/package-managers/pnpm/audit-result.d.ts +1 -1
- package/src/lib/package-managers/pnpm/audit-result.js +34 -0
- package/src/lib/package-managers/pnpm/audit-result.js.map +1 -0
- package/src/lib/package-managers/pnpm/outdated-result.d.ts +1 -1
- package/src/lib/package-managers/pnpm/outdated-result.js +12 -0
- package/src/lib/package-managers/pnpm/outdated-result.js.map +1 -0
- package/src/lib/package-managers/pnpm/pnpm.d.ts +1 -1
- package/src/lib/package-managers/pnpm/pnpm.js +49 -0
- package/src/lib/package-managers/pnpm/pnpm.js.map +1 -0
- package/src/lib/package-managers/pnpm/types.d.ts +2 -2
- package/src/lib/package-managers/pnpm/types.js +2 -0
- package/src/lib/package-managers/pnpm/types.js.map +1 -0
- package/src/lib/package-managers/pnpm/utils.js +5 -0
- package/src/lib/package-managers/pnpm/utils.js.map +1 -0
- package/src/lib/package-managers/types.d.ts +3 -3
- package/src/lib/package-managers/types.js +2 -0
- package/src/lib/package-managers/types.js.map +1 -0
- package/src/lib/package-managers/yarn-classic/audit-result.d.ts +1 -1
- package/src/lib/package-managers/yarn-classic/audit-result.js +36 -0
- package/src/lib/package-managers/yarn-classic/audit-result.js.map +1 -0
- package/src/lib/package-managers/yarn-classic/constants.d.ts +2 -2
- package/src/lib/package-managers/yarn-classic/constants.js +14 -0
- package/src/lib/package-managers/yarn-classic/constants.js.map +1 -0
- package/src/lib/package-managers/yarn-classic/outdated-result.d.ts +1 -1
- package/src/lib/package-managers/yarn-classic/outdated-result.js +39 -0
- package/src/lib/package-managers/yarn-classic/outdated-result.js.map +1 -0
- package/src/lib/package-managers/yarn-classic/types.d.ts +1 -1
- package/src/lib/package-managers/yarn-classic/types.js +8 -0
- package/src/lib/package-managers/yarn-classic/types.js.map +1 -0
- package/src/lib/package-managers/yarn-classic/yarn-classic.d.ts +1 -1
- package/src/lib/package-managers/yarn-classic/yarn-classic.js +29 -0
- package/src/lib/package-managers/yarn-classic/yarn-classic.js.map +1 -0
- package/src/lib/package-managers/yarn-modern/audit-result.d.ts +1 -1
- package/src/lib/package-managers/yarn-modern/audit-result.js +25 -0
- package/src/lib/package-managers/yarn-modern/audit-result.js.map +1 -0
- package/src/lib/package-managers/yarn-modern/outdated-result.d.ts +1 -1
- package/src/lib/package-managers/yarn-modern/outdated-result.js +10 -0
- package/src/lib/package-managers/yarn-modern/outdated-result.js.map +1 -0
- package/src/lib/package-managers/yarn-modern/types.d.ts +2 -2
- package/src/lib/package-managers/yarn-modern/types.js +2 -0
- package/src/lib/package-managers/yarn-modern/types.js.map +1 -0
- package/src/lib/package-managers/yarn-modern/yarn-modern.d.ts +1 -1
- package/src/lib/package-managers/yarn-modern/yarn-modern.js +36 -0
- package/src/lib/package-managers/yarn-modern/yarn-modern.js.map +1 -0
- package/src/lib/runner/audit/constants.d.ts +1 -1
- package/src/lib/runner/audit/constants.js +10 -0
- package/src/lib/runner/audit/constants.js.map +1 -0
- package/src/lib/runner/audit/transform.d.ts +2 -2
- package/src/lib/runner/audit/transform.js +63 -0
- package/src/lib/runner/audit/transform.js.map +1 -0
- package/src/lib/runner/audit/types.d.ts +1 -1
- package/src/lib/runner/audit/types.js +2 -0
- package/src/lib/runner/audit/types.js.map +1 -0
- package/src/lib/runner/audit/utils.d.ts +1 -1
- package/src/lib/runner/audit/utils.js +4 -0
- package/src/lib/runner/audit/utils.js.map +1 -0
- package/src/lib/runner/index.d.ts +3 -3
- package/src/lib/runner/index.js +84 -0
- package/src/lib/runner/index.js.map +1 -0
- package/src/lib/runner/outdated/constants.js +13 -0
- package/src/lib/runner/outdated/constants.js.map +1 -0
- package/src/lib/runner/outdated/transform.d.ts +2 -2
- package/src/lib/runner/outdated/transform.js +60 -0
- package/src/lib/runner/outdated/transform.js.map +1 -0
- package/src/lib/runner/outdated/types.js +6 -0
- package/src/lib/runner/outdated/types.js.map +1 -0
- package/src/lib/runner/utils.d.ts +2 -2
- package/src/lib/runner/utils.js +56 -0
- package/src/lib/runner/utils.js.map +1 -0
- package/src/lib/utils.d.ts +3 -3
- package/src/lib/utils.js +17 -0
- package/src/lib/utils.js.map +1 -0
- package/bin.js +0 -1759
- package/index.js +0 -1651
- package/src/lib/package-managers/index.d.ts +0 -2
- package/src/lib/runner/constants.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-js-packages/src/lib/runner/audit/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CACrC,OAA0C;IAE1C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RunnerConfig } from '@code-pushup/models';
|
|
2
|
-
import { type FinalJSPackagesPluginConfig } from '../config';
|
|
1
|
+
import type { RunnerConfig, RunnerFilesPaths } from '@code-pushup/models';
|
|
2
|
+
import { type FinalJSPackagesPluginConfig } from '../config.js';
|
|
3
3
|
export declare function createRunnerConfig(scriptPath: string, config: FinalJSPackagesPluginConfig): Promise<RunnerConfig>;
|
|
4
|
-
export declare function executeRunner(): Promise<void>;
|
|
4
|
+
export declare function executeRunner({ runnerConfigPath, runnerOutputPath, }: RunnerFilesPaths): Promise<void>;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createRunnerFiles, ensureDirectoryExists, executeProcess, filePathToCliArg, isPromiseFulfilledResult, isPromiseRejectedResult, objectFromEntries, objectToCliArgs, readJsonFile, } from '@code-pushup/utils';
|
|
4
|
+
import { dependencyGroups, } from '../config.js';
|
|
5
|
+
import { dependencyGroupToLong } from '../constants.js';
|
|
6
|
+
import { packageManagers } from '../package-managers/package-managers.js';
|
|
7
|
+
import { auditResultToAuditOutput } from './audit/transform.js';
|
|
8
|
+
import { outdatedResultToAuditOutput } from './outdated/transform.js';
|
|
9
|
+
import { findAllPackageJson, getTotalDependencies } from './utils.js';
|
|
10
|
+
export async function createRunnerConfig(scriptPath, config) {
|
|
11
|
+
const { runnerConfigPath, runnerOutputPath } = await createRunnerFiles('js-packages', JSON.stringify(config));
|
|
12
|
+
return {
|
|
13
|
+
command: 'node',
|
|
14
|
+
args: [
|
|
15
|
+
filePathToCliArg(scriptPath),
|
|
16
|
+
...objectToCliArgs({ runnerConfigPath, runnerOutputPath }),
|
|
17
|
+
],
|
|
18
|
+
configFile: runnerConfigPath,
|
|
19
|
+
outputFile: runnerOutputPath,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export async function executeRunner({ runnerConfigPath, runnerOutputPath, }) {
|
|
23
|
+
const { packageManager, checks, auditLevelMapping, packageJsonPaths, dependencyGroups: depGroups, } = await readJsonFile(runnerConfigPath);
|
|
24
|
+
const auditResults = checks.includes('audit')
|
|
25
|
+
? await processAudit(packageManager, depGroups, auditLevelMapping)
|
|
26
|
+
: [];
|
|
27
|
+
const outdatedResults = checks.includes('outdated')
|
|
28
|
+
? await processOutdated(packageManager, depGroups, packageJsonPaths)
|
|
29
|
+
: [];
|
|
30
|
+
const checkResults = [...auditResults, ...outdatedResults];
|
|
31
|
+
await ensureDirectoryExists(path.dirname(runnerOutputPath));
|
|
32
|
+
await writeFile(runnerOutputPath, JSON.stringify(checkResults));
|
|
33
|
+
}
|
|
34
|
+
async function processOutdated(id, depGroups, packageJsonPaths) {
|
|
35
|
+
const pm = packageManagers[id];
|
|
36
|
+
const { stdout, stderr } = await executeProcess({
|
|
37
|
+
command: pm.command,
|
|
38
|
+
args: pm.outdated.commandArgs,
|
|
39
|
+
cwd: process.cwd(),
|
|
40
|
+
ignoreExitCode: true, // outdated returns exit code 1 when outdated dependencies are found
|
|
41
|
+
});
|
|
42
|
+
// Successful outdated check has empty stderr
|
|
43
|
+
if (stderr) {
|
|
44
|
+
throw new Error(`JS packages plugin: outdated error: ${stderr}`);
|
|
45
|
+
}
|
|
46
|
+
// Locate all package.json files in the repository if not provided
|
|
47
|
+
const finalPaths = Array.isArray(packageJsonPaths)
|
|
48
|
+
? packageJsonPaths
|
|
49
|
+
: await findAllPackageJson();
|
|
50
|
+
const depTotals = await getTotalDependencies(finalPaths);
|
|
51
|
+
const normalizedResult = pm.outdated.unifyResult(stdout);
|
|
52
|
+
return depGroups.map(depGroup => outdatedResultToAuditOutput(normalizedResult, id, depGroup, depTotals[dependencyGroupToLong[depGroup]]));
|
|
53
|
+
}
|
|
54
|
+
async function processAudit(id, depGroups, auditLevelMapping) {
|
|
55
|
+
const pm = packageManagers[id];
|
|
56
|
+
const supportedAuditDepGroups = pm.audit.supportedDepGroups ?? dependencyGroups;
|
|
57
|
+
const compatibleAuditDepGroups = depGroups.filter(group => supportedAuditDepGroups.includes(group));
|
|
58
|
+
const auditResults = await Promise.allSettled(compatibleAuditDepGroups.map(async (depGroup) => {
|
|
59
|
+
const { stdout, stderr } = await executeProcess({
|
|
60
|
+
command: pm.command,
|
|
61
|
+
args: pm.audit.getCommandArgs(depGroup),
|
|
62
|
+
cwd: process.cwd(),
|
|
63
|
+
ignoreExitCode: pm.audit.ignoreExitCode,
|
|
64
|
+
});
|
|
65
|
+
// Successful audit check has empty stderr
|
|
66
|
+
if (stderr) {
|
|
67
|
+
throw new Error(`JS packages plugin: audit error: ${stderr}`);
|
|
68
|
+
}
|
|
69
|
+
return [depGroup, pm.audit.unifyResult(stdout)];
|
|
70
|
+
}));
|
|
71
|
+
const rejected = auditResults.filter(isPromiseRejectedResult);
|
|
72
|
+
if (rejected.length > 0) {
|
|
73
|
+
rejected.forEach(result => {
|
|
74
|
+
console.error(result.reason);
|
|
75
|
+
});
|
|
76
|
+
throw new Error(`JS Packages plugin: Running ${pm.name} audit failed.`);
|
|
77
|
+
}
|
|
78
|
+
const fulfilled = objectFromEntries(auditResults.filter(isPromiseFulfilledResult).map(x => x.value));
|
|
79
|
+
const uniqueResults = pm.audit.postProcessResult?.(fulfilled) ?? fulfilled;
|
|
80
|
+
return compatibleAuditDepGroups.map(depGroup => auditResultToAuditOutput(
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
82
|
+
uniqueResults[depGroup], id, depGroup, auditLevelMapping));
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugin-js-packages/src/lib/runner/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { objectToKeys } from '@code-pushup/utils';
|
|
2
|
+
export const outdatedSeverity = {
|
|
3
|
+
major: 'error',
|
|
4
|
+
premajor: 'info',
|
|
5
|
+
minor: 'warning',
|
|
6
|
+
preminor: 'info',
|
|
7
|
+
patch: 'info',
|
|
8
|
+
prepatch: 'info',
|
|
9
|
+
prerelease: 'info',
|
|
10
|
+
};
|
|
11
|
+
// RELEASE_TYPES directly exported from semver don't work out of the box
|
|
12
|
+
export const RELEASE_TYPES = objectToKeys(outdatedSeverity);
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-js-packages/src/lib/runner/outdated/constants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAuC;IAClE,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuditOutput, Issue } from '@code-pushup/models';
|
|
2
|
-
import type { DependencyGroup, PackageManagerId } from '../../config';
|
|
3
|
-
import type { OutdatedResult, PackageVersion } from './types';
|
|
2
|
+
import type { DependencyGroup, PackageManagerId } from '../../config.js';
|
|
3
|
+
import type { OutdatedResult, PackageVersion } from './types.js';
|
|
4
4
|
export declare function outdatedResultToAuditOutput(result: OutdatedResult, packageManager: PackageManagerId, depGroup: DependencyGroup, totalDeps: number): AuditOutput;
|
|
5
5
|
export declare function calculateOutdatedScore(majorOutdated: number, totalDeps: number): number;
|
|
6
6
|
export declare function outdatedToDisplayValue(stats: PackageVersion): string;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { md } from 'build-md';
|
|
2
|
+
import { clean, diff, neq } from 'semver';
|
|
3
|
+
import { objectFromEntries, pluralize } from '@code-pushup/utils';
|
|
4
|
+
import { dependencyGroupToLong } from '../../constants.js';
|
|
5
|
+
import { RELEASE_TYPES, outdatedSeverity } from './constants.js';
|
|
6
|
+
export function outdatedResultToAuditOutput(result, packageManager, depGroup, totalDeps) {
|
|
7
|
+
const relevantDependencies = result.filter(dep => dep.type === dependencyGroupToLong[depGroup]);
|
|
8
|
+
const validDependencies = relevantDependencies
|
|
9
|
+
.map(dep => ({
|
|
10
|
+
...dep,
|
|
11
|
+
current: clean(dep.current),
|
|
12
|
+
latest: clean(dep.latest),
|
|
13
|
+
}))
|
|
14
|
+
.filter((dep) => dep.current != null && dep.latest != null);
|
|
15
|
+
const outdatedDependencies = validDependencies.filter(dep => neq(dep.current, dep.latest));
|
|
16
|
+
const outdatedStats = outdatedDependencies.reduce((acc, dep) => {
|
|
17
|
+
const outdatedLevel = diff(dep.current, dep.latest);
|
|
18
|
+
if (outdatedLevel == null) {
|
|
19
|
+
return acc;
|
|
20
|
+
}
|
|
21
|
+
return { ...acc, [outdatedLevel]: acc[outdatedLevel] + 1 };
|
|
22
|
+
}, objectFromEntries(RELEASE_TYPES.map(versionType => [versionType, 0])));
|
|
23
|
+
const issues = outdatedDependencies.length === 0
|
|
24
|
+
? []
|
|
25
|
+
: outdatedToIssues(outdatedDependencies);
|
|
26
|
+
return {
|
|
27
|
+
slug: `${packageManager}-outdated-${depGroup}`,
|
|
28
|
+
score: calculateOutdatedScore(outdatedStats.major, totalDeps),
|
|
29
|
+
value: outdatedDependencies.length,
|
|
30
|
+
displayValue: outdatedToDisplayValue(outdatedStats),
|
|
31
|
+
details: { issues },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function calculateOutdatedScore(majorOutdated, totalDeps) {
|
|
35
|
+
return totalDeps > 0 ? (totalDeps - majorOutdated) / totalDeps : 1;
|
|
36
|
+
}
|
|
37
|
+
export function outdatedToDisplayValue(stats) {
|
|
38
|
+
const total = Object.values(stats).reduce((acc, value) => acc + value, 0);
|
|
39
|
+
const versionBreakdown = RELEASE_TYPES.map(version => stats[version] > 0 ? `${stats[version]} ${version}` : '').filter(text => text !== '');
|
|
40
|
+
if (versionBreakdown.length === 0) {
|
|
41
|
+
return 'all dependencies are up to date';
|
|
42
|
+
}
|
|
43
|
+
if (versionBreakdown.length > 1) {
|
|
44
|
+
return `${total} outdated package versions (${versionBreakdown.join(', ')})`;
|
|
45
|
+
}
|
|
46
|
+
return `${versionBreakdown[0]} outdated package ${pluralize('version', total)}`;
|
|
47
|
+
}
|
|
48
|
+
export function outdatedToIssues(dependencies) {
|
|
49
|
+
return dependencies.map(dep => {
|
|
50
|
+
const { name, current, latest, url } = dep;
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
52
|
+
const outdatedLevel = diff(current, latest);
|
|
53
|
+
const packageReference = url == null ? md.code(name) : md.link(url, md.code(name));
|
|
54
|
+
return {
|
|
55
|
+
message: md `Package ${packageReference} requires a ${md.bold(outdatedLevel)} update from ${md.bold(current)} to ${md.bold(latest)}.`.toString(),
|
|
56
|
+
severity: outdatedSeverity[outdatedLevel],
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-js-packages/src/lib/runner/outdated/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-js-packages/src/lib/runner/outdated/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc;IACd,iBAAiB;IACjB,sBAAsB;CACd,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AuditResult, Vulnerability } from './audit/types';
|
|
2
|
-
import { type DependencyTotals } from './outdated/types';
|
|
1
|
+
import type { AuditResult, Vulnerability } from './audit/types.js';
|
|
2
|
+
import { type DependencyTotals } from './outdated/types.js';
|
|
3
3
|
export declare function filterAuditResult(result: AuditResult, key: keyof Vulnerability, referenceResult?: AuditResult): AuditResult;
|
|
4
4
|
export declare function findAllPackageJson(): Promise<string[]>;
|
|
5
5
|
export declare function getTotalDependencies(packageJsonPaths: string[]): Promise<DependencyTotals>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { crawlFileSystem, objectFromEntries, objectToKeys, readJsonFile, } from '@code-pushup/utils';
|
|
3
|
+
import { dependencyGroupLong, } from './outdated/types.js';
|
|
4
|
+
export function filterAuditResult(result, key, referenceResult) {
|
|
5
|
+
if (result.vulnerabilities.length === 0) {
|
|
6
|
+
return result;
|
|
7
|
+
}
|
|
8
|
+
const uniqueResult = result.vulnerabilities.reduce((acc, ref) => {
|
|
9
|
+
const matchReference = referenceResult ?? acc;
|
|
10
|
+
const isMatch = matchReference.vulnerabilities
|
|
11
|
+
.map(vulnerability => vulnerability[key])
|
|
12
|
+
.includes(ref[key]);
|
|
13
|
+
if (isMatch) {
|
|
14
|
+
return {
|
|
15
|
+
vulnerabilities: acc.vulnerabilities,
|
|
16
|
+
summary: {
|
|
17
|
+
...acc.summary,
|
|
18
|
+
[ref.severity]: acc.summary[ref.severity] - 1,
|
|
19
|
+
total: acc.summary.total - 1,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
vulnerabilities: [...acc.vulnerabilities, ref],
|
|
25
|
+
summary: acc.summary,
|
|
26
|
+
};
|
|
27
|
+
}, { vulnerabilities: [], summary: result.summary });
|
|
28
|
+
return {
|
|
29
|
+
vulnerabilities: uniqueResult.vulnerabilities,
|
|
30
|
+
summary: uniqueResult.summary,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// TODO: use .gitignore
|
|
34
|
+
export async function findAllPackageJson() {
|
|
35
|
+
return (await crawlFileSystem({
|
|
36
|
+
directory: '.',
|
|
37
|
+
pattern: /(^|[\\/])package\.json$/,
|
|
38
|
+
})).filter(filePath => !filePath.startsWith(`node_modules${path.sep}`) &&
|
|
39
|
+
!filePath.includes(`${path.sep}node_modules${path.sep}`) &&
|
|
40
|
+
!filePath.startsWith(`.nx${path.sep}`));
|
|
41
|
+
}
|
|
42
|
+
export async function getTotalDependencies(packageJsonPaths) {
|
|
43
|
+
const parsedDeps = await Promise.all(packageJsonPaths.map((readJsonFile)));
|
|
44
|
+
const mergedDeps = parsedDeps.reduce((acc, depMapper) => objectFromEntries(dependencyGroupLong.map(group => {
|
|
45
|
+
const deps = depMapper[group];
|
|
46
|
+
return [
|
|
47
|
+
group,
|
|
48
|
+
[...acc[group], ...(deps == null ? [] : objectToKeys(deps))],
|
|
49
|
+
];
|
|
50
|
+
})), { dependencies: [], devDependencies: [], optionalDependencies: [] });
|
|
51
|
+
return objectFromEntries(objectToKeys(mergedDeps).map(deps => [
|
|
52
|
+
deps,
|
|
53
|
+
new Set(mergedDeps[deps]).size,
|
|
54
|
+
]));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../packages/plugin-js-packages/src/lib/runner/utils.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type JSPackagesPluginConfig } from './config';
|
|
1
|
+
import { type JSPackagesPluginConfig } from './config.js';
|
|
2
2
|
export declare function normalizeConfig(config?: JSPackagesPluginConfig): Promise<{
|
|
3
|
-
packageManager: import("./package-managers").PackageManager;
|
|
3
|
+
packageManager: import("./package-managers/types.js").PackageManager;
|
|
4
4
|
checks: ("audit" | "outdated")[];
|
|
5
5
|
depGroups: ("prod" | "dev" | "optional")[];
|
|
6
|
-
auditLevelMapping: import("./config").AuditSeverity;
|
|
6
|
+
auditLevelMapping: import("./config.js").AuditSeverity;
|
|
7
7
|
packageJsonPaths: string[] | {
|
|
8
8
|
autoSearch: true;
|
|
9
9
|
};
|
package/src/lib/utils.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsPackagesPluginConfigSchema, } from './config.js';
|
|
2
|
+
import { derivePackageManager } from './package-managers/derive-package-manager.js';
|
|
3
|
+
import { packageManagers } from './package-managers/package-managers.js';
|
|
4
|
+
export async function normalizeConfig(config) {
|
|
5
|
+
const jsPackagesPluginConfig = jsPackagesPluginConfigSchema.parse(config ?? {});
|
|
6
|
+
const { packageManager, dependencyGroups: dependencyGroupsCfg = [], checks: checksCfg = [], ...jsPackagesPluginConfigRest } = jsPackagesPluginConfig;
|
|
7
|
+
const checks = [...new Set(checksCfg)];
|
|
8
|
+
const depGroups = [...new Set(dependencyGroupsCfg)];
|
|
9
|
+
const pm = packageManagers[packageManager ?? (await derivePackageManager())];
|
|
10
|
+
return {
|
|
11
|
+
...jsPackagesPluginConfigRest,
|
|
12
|
+
packageManager: pm,
|
|
13
|
+
checks,
|
|
14
|
+
depGroups,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/plugin-js-packages/src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAA+B;IACnE,MAAM,sBAAsB,GAAG,4BAA4B,CAAC,KAAK,CAC/D,MAAM,IAAI,EAAE,CACb,CAAC;IAEF,MAAM,EACJ,cAAc,EACd,gBAAgB,EAAE,mBAAmB,GAAG,EAAE,EAC1C,MAAM,EAAE,SAAS,GAAG,EAAE,EACtB,GAAG,0BAA0B,EAC9B,GAAG,sBAAsB,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,eAAe,CAAC,cAAc,IAAI,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,CAAC;IAE7E,OAAO;QACL,GAAG,0BAA0B;QAC7B,cAAc,EAAE,EAAE;QAClB,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC"}
|