@code-pushup/js-packages-plugin 0.96.1 → 0.98.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/js-packages-plugin",
3
- "version": "0.96.1",
3
+ "version": "0.98.0",
4
4
  "description": "Code PushUp plugin for JavaScript packages 🛡️",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-js-packages#readme",
@@ -37,11 +37,11 @@
37
37
  },
38
38
  "type": "module",
39
39
  "dependencies": {
40
- "@code-pushup/models": "0.96.1",
41
- "@code-pushup/utils": "0.96.1",
40
+ "@code-pushup/models": "0.98.0",
41
+ "@code-pushup/utils": "0.98.0",
42
+ "ansis": "^3.3.2",
42
43
  "build-md": "^0.4.1",
43
44
  "semver": "^7.6.0",
44
- "yargs": "^17.7.2",
45
45
  "zod": "^4.0.5"
46
46
  },
47
47
  "files": [
@@ -1,6 +1,8 @@
1
1
  import type { IssueSeverity } from '@code-pushup/models';
2
2
  import type { DependencyGroup, PackageAuditLevel } from './config.js';
3
3
  import type { DependencyGroupLong } from './runner/outdated/types.js';
4
+ export declare const JS_PACKAGES_PLUGIN_SLUG = "js-packages";
5
+ export declare const JS_PACKAGES_PLUGIN_TITLE = "JS packages";
4
6
  export declare const defaultAuditLevelMapping: Record<PackageAuditLevel, IssueSeverity>;
5
7
  export declare const dependencyGroupToLong: Record<DependencyGroup, DependencyGroupLong>;
6
8
  export declare const dependencyGroupWeights: Record<DependencyGroup, number>;
@@ -1,3 +1,5 @@
1
+ export const JS_PACKAGES_PLUGIN_SLUG = 'js-packages';
2
+ export const JS_PACKAGES_PLUGIN_TITLE = 'JS packages';
1
3
  export const defaultAuditLevelMapping = {
2
4
  critical: 'error',
3
5
  high: 'error',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACrE,wDAAwD;IACxD,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,CAAC;IACX,uDAAuD;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAoC;IAC7D,IAAI,EAAE,oEAAoE;IAC1E,GAAG,EAAE,uEAAuE;IAC5E,QAAQ,EACN,4EAA4E;CAC/E,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACrE,wDAAwD;IACxD,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,CAAC;IACX,uDAAuD;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAoC;IAC7D,IAAI,EAAE,oEAAoE;IAC1E,GAAG,EAAE,uEAAuE;IAC5E,QAAQ,EACN,4EAA4E;CAC/E,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const formatMetaLog: (message: string) => string;
@@ -0,0 +1,4 @@
1
+ import { pluginMetaLogFormatter } from '@code-pushup/utils';
2
+ import { JS_PACKAGES_PLUGIN_TITLE } from './constants.js';
3
+ export const formatMetaLog = pluginMetaLogFormatter(JS_PACKAGES_PLUGIN_TITLE);
4
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
+ import ansis from 'ansis';
1
2
  import { createRequire } from 'node:module';
2
- import path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
3
+ import { logger, pluralizeToken } from '@code-pushup/utils';
4
4
  import { dependencyGroups, } from './config.js';
5
- import { dependencyDocs, dependencyGroupWeights } from './constants.js';
5
+ import { JS_PACKAGES_PLUGIN_SLUG, JS_PACKAGES_PLUGIN_TITLE, dependencyDocs, dependencyGroupWeights, } from './constants.js';
6
+ import { formatMetaLog } from './format.js';
6
7
  import { packageManagers } from './package-managers/package-managers.js';
7
- import { createRunnerConfig } from './runner/index.js';
8
+ import { createRunnerFunction } from './runner/runner.js';
8
9
  import { normalizeConfig } from './utils.js';
9
10
  /**
10
11
  * Instantiates Code PushUp JS packages plugin for core config.
@@ -24,19 +25,21 @@ import { normalizeConfig } from './utils.js';
24
25
  */
25
26
  export async function jsPackagesPlugin(config) {
26
27
  const { packageManager, checks, depGroups, scoreTargets, ...jsPackagesPluginConfigRest } = await normalizeConfig(config);
27
- const runnerScriptPath = path.join(fileURLToPath(path.dirname(import.meta.url)), '..', 'bin.js');
28
28
  const packageJson = createRequire(import.meta.url)('../../package.json');
29
+ const audits = createAudits(packageManager.slug, checks, depGroups);
30
+ const groups = createGroups(packageManager.slug, checks, depGroups);
31
+ logger.info(formatMetaLog(`Created ${pluralizeToken('audit', audits.length)} and ${pluralizeToken('group', groups.length)} for ${ansis.bold(packageManager.name)} package manager`));
29
32
  return {
30
- slug: 'js-packages',
31
- title: 'JS Packages',
33
+ slug: JS_PACKAGES_PLUGIN_SLUG,
34
+ title: JS_PACKAGES_PLUGIN_TITLE,
32
35
  icon: packageManager.icon,
33
36
  description: 'This plugin runs audit to uncover vulnerabilities and lists outdated dependencies. It supports npm, yarn classic, yarn modern, and pnpm package managers.',
34
37
  docsUrl: packageManager.docs.homepage,
35
38
  packageName: packageJson.name,
36
39
  version: packageJson.version,
37
- audits: createAudits(packageManager.slug, checks, depGroups),
38
- groups: createGroups(packageManager.slug, checks, depGroups),
39
- runner: await createRunnerConfig(runnerScriptPath, {
40
+ audits,
41
+ groups,
42
+ runner: createRunnerFunction({
40
43
  ...jsPackagesPluginConfigRest,
41
44
  checks,
42
45
  packageManager: packageManager.slug,
@@ -1 +1 @@
1
- {"version":3,"file":"js-packages-plugin.js","sourceRoot":"","sources":["../../../src/lib/js-packages-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-packages-plugin.js","sourceRoot":"","sources":["../../../src/lib/js-packages-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { fileExists } from '@code-pushup/utils';
3
+ import { fileExists, logger } from '@code-pushup/utils';
4
+ import { formatMetaLog } from '../format.js';
4
5
  import { deriveYarnVersion } from './derive-yarn.js';
6
+ import { packageManagers } from './package-managers.js';
5
7
  export async function derivePackageManagerInPackageJson(currentDir = process.cwd()) {
6
8
  if (await fileExists(path.join(currentDir, 'package.json'))) {
7
9
  const content = JSON.parse((await readFile(path.join('package.json'))).toString());
@@ -23,21 +25,29 @@ export async function derivePackageManagerInPackageJson(currentDir = process.cwd
23
25
  export async function derivePackageManager(currentDir = process.cwd()) {
24
26
  const pkgManagerFromPackageJson = await derivePackageManagerInPackageJson(currentDir);
25
27
  if (pkgManagerFromPackageJson) {
28
+ logDerivedPackageManager(pkgManagerFromPackageJson, 'packageManager field in package.json');
26
29
  return pkgManagerFromPackageJson;
27
30
  }
28
31
  // Check for lock files
29
32
  if (await fileExists(path.join(currentDir, 'package-lock.json'))) {
33
+ logDerivedPackageManager('npm', 'existence of package-lock.json file');
30
34
  return 'npm';
31
35
  }
32
36
  else if (await fileExists(path.join(currentDir, 'pnpm-lock.yaml'))) {
37
+ logDerivedPackageManager('pnpm', 'existence of pnpm-lock.yaml file');
33
38
  return 'pnpm';
34
39
  }
35
40
  else if (await fileExists(path.join(currentDir, 'yarn.lock'))) {
36
41
  const yarnVersion = await deriveYarnVersion();
37
42
  if (yarnVersion) {
43
+ logDerivedPackageManager(yarnVersion, 'existence of yarn.lock file and yarn -v command');
38
44
  return yarnVersion;
39
45
  }
40
46
  }
41
47
  throw new Error('Could not detect package manager. Please provide it in the js-packages plugin config.');
42
48
  }
49
+ function logDerivedPackageManager(id, sourceDescription) {
50
+ const pm = packageManagers[id];
51
+ logger.info(formatMetaLog(`Inferred ${pm.name} package manager from ${sourceDescription}`));
52
+ }
43
53
  //# sourceMappingURL=derive-package-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive-package-manager.js","sourceRoot":"","sources":["../../../../src/lib/package-managers/derive-package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;IAE1B,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CACxB,CAAC;QACjC,MAAM,EAAE,cAAc,EAAE,kBAAkB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;IAE1B,MAAM,yBAAyB,GAC7B,MAAM,iCAAiC,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,yBAAyB,EAAE,CAAC;QAC9B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"derive-package-manager.js","sourceRoot":"","sources":["../../../../src/lib/package-managers/derive-package-manager.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const npmDependencyOptions = {
9
9
  };
10
10
  export const npmPackageManager = {
11
11
  slug: 'npm',
12
- name: 'NPM',
12
+ name: 'npm',
13
13
  command: 'npm',
14
14
  icon: 'npm',
15
15
  docs: {
@@ -8,7 +8,7 @@ const yarnModernEnvironmentOptions = {
8
8
  };
9
9
  export const yarnModernPackageManager = {
10
10
  slug: 'yarn-modern',
11
- name: 'yarn-modern',
11
+ name: 'Yarn v2+',
12
12
  command: 'yarn',
13
13
  icon: 'yarn',
14
14
  docs: {
@@ -1 +1 @@
1
- {"version":3,"file":"yarn-modern.js","sourceRoot":"","sources":["../../../../../src/lib/package-managers/yarn-modern/yarn-modern.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,uGAAuG;AACvG,MAAM,4BAA4B,GAAoC;IACpE,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,aAAa;IAClB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,QAAQ,EAAE,qCAAqC;QAC/C,KAAK,EAAE,mCAAmC;QAC1C,QAAQ,EAAE,kDAAkD;KAC7D;IACD,KAAK,EAAE;QACL,cAAc,EAAE,QAAQ,CAAC,EAAE;YACzB,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa;gBACb,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,QAAQ;aACT,CAAC;QACJ,CAAC;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,2DAA2D;QAChG,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,IAAI;KACrB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,UAAU;YACV,eAAe,EAAE,uDAAuD;YACxE,OAAO;YACP,QAAQ;SACT;QACD,WAAW,EAAE,yBAAyB;KACvC;CACF,CAAC"}
1
+ {"version":3,"file":"yarn-modern.js","sourceRoot":"","sources":["../../../../../src/lib/package-managers/yarn-modern/yarn-modern.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,uGAAuG;AACvG,MAAM,4BAA4B,GAAoC;IACpE,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,aAAa;IAClB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,QAAQ,EAAE,qCAAqC;QAC/C,KAAK,EAAE,mCAAmC;QAC1C,QAAQ,EAAE,kDAAkD;KAC7D;IACD,KAAK,EAAE;QACL,cAAc,EAAE,QAAQ,CAAC,EAAE;YACzB,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa;gBACb,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,QAAQ;aACT,CAAC;QACJ,CAAC;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,2DAA2D;QAChG,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,IAAI;KACrB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,UAAU;YACV,eAAe,EAAE,uDAAuD;YACxE,OAAO;YACP,QAAQ;SACT;QACD,WAAW,EAAE,yBAAyB;KACvC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { RunnerFunction } from '@code-pushup/models';
2
+ import { type FinalJSPackagesPluginConfig } from '../config.js';
3
+ export declare function createRunnerFunction(config: FinalJSPackagesPluginConfig): RunnerFunction;
@@ -0,0 +1,91 @@
1
+ import path from 'node:path';
2
+ import { asyncSequential, capitalize, executeProcess, formatAsciiTable, logger, objectFromEntries, objectToEntries, pluralizeToken, } from '@code-pushup/utils';
3
+ import { dependencyGroups, packageAuditLevels, } from '../config.js';
4
+ import { dependencyGroupToLong } from '../constants.js';
5
+ import { packageManagers } from '../package-managers/package-managers.js';
6
+ import { auditResultToAuditOutput } from './audit/transform.js';
7
+ import { outdatedResultToAuditOutput } from './outdated/transform.js';
8
+ import { getTotalDependencies } from './utils.js';
9
+ export function createRunnerFunction(config) {
10
+ return async () => {
11
+ const { packageManager, checks, auditLevelMapping, packageJsonPath, dependencyGroups: depGroups, } = config;
12
+ const auditResults = checks.includes('audit')
13
+ ? await processAudit(packageManager, depGroups, auditLevelMapping, packageJsonPath)
14
+ : [];
15
+ const outdatedResults = checks.includes('outdated')
16
+ ? await processOutdated(packageManager, depGroups, packageJsonPath)
17
+ : [];
18
+ return [...auditResults, ...outdatedResults];
19
+ };
20
+ }
21
+ async function processOutdated(id, depGroups, packageJsonPath) {
22
+ logger.info('Looking for outdated packages ...');
23
+ const pm = packageManagers[id];
24
+ const { stdout } = await executeProcess({
25
+ command: pm.command,
26
+ args: pm.outdated.commandArgs,
27
+ cwd: packageJsonPath ? path.dirname(packageJsonPath) : process.cwd(),
28
+ ignoreExitCode: true, // outdated returns exit code 1 when outdated dependencies are found
29
+ });
30
+ const normalizedResult = pm.outdated.unifyResult(stdout);
31
+ logger.info(`Detected ${pluralizeToken('outdated package', normalizedResult.length)} in total`);
32
+ const depTotals = await getTotalDependencies(packageJsonPath);
33
+ return depGroups.map(depGroup => outdatedResultToAuditOutput(normalizedResult, id, depGroup, depTotals[dependencyGroupToLong[depGroup]]));
34
+ }
35
+ async function processAudit(id, depGroups, auditLevelMapping, packageJsonPath) {
36
+ const pm = packageManagers[id];
37
+ const supportedAuditDepGroups = pm.audit.supportedDepGroups ?? dependencyGroups;
38
+ const compatibleAuditDepGroups = depGroups.filter(group => supportedAuditDepGroups.includes(group));
39
+ logger.info(`Auditing packages for ${pluralizeToken('dependency group', compatibleAuditDepGroups.length)} (${compatibleAuditDepGroups.join(', ')}) ...`);
40
+ const auditResults = await asyncSequential(compatibleAuditDepGroups, async (depGroup) => {
41
+ const { stdout } = await executeProcess({
42
+ command: pm.command,
43
+ args: pm.audit.getCommandArgs(depGroup),
44
+ cwd: packageJsonPath ? path.dirname(packageJsonPath) : process.cwd(),
45
+ ignoreExitCode: pm.audit.ignoreExitCode,
46
+ });
47
+ return [depGroup, pm.audit.unifyResult(stdout)];
48
+ });
49
+ const resultsMap = objectFromEntries(auditResults);
50
+ const uniqueResults = pm.audit.postProcessResult?.(resultsMap) ?? resultsMap;
51
+ logAuditSummary(uniqueResults);
52
+ return compatibleAuditDepGroups.map(depGroup => auditResultToAuditOutput(
53
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
54
+ uniqueResults[depGroup], id, depGroup, auditLevelMapping));
55
+ }
56
+ function logAuditSummary(results) {
57
+ const { totalCount, countsPerLevel } = aggregateAuditResults(results);
58
+ const formattedLevels = objectToEntries(countsPerLevel)
59
+ .filter(([, count]) => count > 0)
60
+ .map(([level, count]) => `${count} ${level}`)
61
+ .join(', ');
62
+ logger.info([
63
+ `Found ${pluralizeToken('vulnerability', totalCount)} in total`,
64
+ formattedLevels && `(${formattedLevels})`,
65
+ ]
66
+ .filter(Boolean)
67
+ .join(' '));
68
+ if (!logger.isVerbose()) {
69
+ return;
70
+ }
71
+ logger.debug(formatAsciiTable({
72
+ columns: [
73
+ { key: 'depGroup', label: 'Dep. group' },
74
+ ...[...packageAuditLevels, 'total'].map((level) => ({
75
+ key: level,
76
+ label: capitalize(level),
77
+ align: 'right',
78
+ })),
79
+ ],
80
+ rows: objectToEntries(results).map(([depGroup, result]) => ({
81
+ depGroup,
82
+ ...result?.summary,
83
+ })),
84
+ }));
85
+ }
86
+ function aggregateAuditResults(results) {
87
+ const totalCount = Object.values(results).reduce((acc, { vulnerabilities }) => acc + vulnerabilities.length, 0);
88
+ const countsPerLevel = Object.values(results).reduce((acc, { summary }) => objectFromEntries(packageAuditLevels.map(level => [level, acc[level] + summary[level]])), objectFromEntries(packageAuditLevels.map(level => [level, 0])));
89
+ return { totalCount, countsPerLevel };
90
+ }
91
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,UAAU,oBAAoB,CAClC,MAAmC;IAEnC,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EACJ,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAAE,SAAS,GAC5B,GAAG,MAAM,CAAC;QAEX,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,YAAY,CAChB,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,eAAe,CAChB;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjD,CAAC,CAAC,MAAM,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC;YACnE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,EAAoB,EACpB,SAA4B,EAC5B,eAAgC;IAEhC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAEjD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QACtC,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;QAC7B,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACpE,cAAc,EAAE,IAAI,EAAE,oEAAoE;KAC3F,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CACT,YAAY,cAAc,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CACnF,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAE9D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC9B,2BAA2B,CACzB,gBAAgB,EAChB,EAAE,EACF,QAAQ,EACR,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,EAAoB,EACpB,SAA4B,EAC5B,iBAAgC,EAChC,eAAgC;IAEhC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,uBAAuB,GAC3B,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,gBAAgB,CAAC;IAClD,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxD,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,cAAc,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,MAAM,CAAC,KAAK,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAC5I,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,wBAAwB,EACxB,KAAK,EAAE,QAAQ,EAA2C,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YACvC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpE,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc;SACxC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;IAE7E,eAAe,CAAC,aAAa,CAAC,CAAC;IAE/B,OAAO,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC7C,wBAAwB;IACtB,oEAAoE;IACpE,aAAa,CAAC,QAAQ,CAAE,EACxB,EAAE,EACF,QAAQ,EACR,iBAAiB,CAClB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAsD;IAEtD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC;SACpD,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;SAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,CAAC,IAAI,CACT;QACE,SAAS,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,WAAW;QAC/D,eAAe,IAAI,IAAI,eAAe,GAAG;KAC1C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,KAAK,CACV,gBAAgB,CAAC;QACf,OAAO,EAAE;YACP,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;YACxC,GAAG,CAAC,GAAG,kBAAkB,EAAE,OAAO,CAAC,CAAC,GAAG,CACrC,CAAC,KAAK,EAAqB,EAAE,CAAC,CAAC;gBAC7B,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;gBACxB,KAAK,EAAE,OAAO;aACf,CAAC,CACH;SACF;QACD,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAChC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAkB,EAAE,CAAC,CAAC;YACvC,QAAQ;YACR,GAAG,MAAM,EAAE,OAAO;SACnB,CAAC,CACH;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAsD;IAEtD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAC9C,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,EAC1D,CAAC,CACF,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAGlD,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CACnB,iBAAiB,CACf,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACtE,EACH,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAC/D,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { objectFromEntries, objectToKeys, readJsonFile, } from '@code-pushup/utils';
1
+ import path from 'node:path';
2
+ import { logger, objectFromEntries, objectToEntries, objectToKeys, pluralizeToken, readJsonFile, } from '@code-pushup/utils';
2
3
  import { dependencyGroupLong, } from './outdated/types.js';
3
4
  export function filterAuditResult(result, key, referenceResult) {
4
5
  if (result.vulnerabilities.length === 0) {
@@ -30,14 +31,24 @@ export function filterAuditResult(result, key, referenceResult) {
30
31
  };
31
32
  }
32
33
  export async function getTotalDependencies(packageJsonPath) {
33
- const parsedDeps = await readJsonFile(packageJsonPath);
34
- const mergedDeps = objectFromEntries(dependencyGroupLong.map(group => {
35
- const deps = parsedDeps[group];
36
- return [group, deps == null ? [] : objectToKeys(deps)];
37
- }));
38
- return objectFromEntries(objectToKeys(mergedDeps).map(deps => [
39
- deps,
40
- new Set(mergedDeps[deps]).size,
41
- ]));
34
+ const formattedPath = path.relative(process.cwd(), packageJsonPath);
35
+ return logger.task(`Counting direct dependencies in ${formattedPath}`, async () => {
36
+ const parsedDeps = await readJsonFile(packageJsonPath);
37
+ const mergedDeps = objectFromEntries(dependencyGroupLong.map(group => {
38
+ const deps = parsedDeps[group];
39
+ return [group, deps == null ? [] : objectToKeys(deps)];
40
+ }));
41
+ const depTotals = objectFromEntries(objectToKeys(mergedDeps).map(deps => [
42
+ deps,
43
+ new Set(mergedDeps[deps]).size,
44
+ ]));
45
+ const depTotal = Object.values(depTotals).reduce((acc, count) => acc + count, 0);
46
+ const groupsSummary = objectToEntries(depTotals)
47
+ .filter(([, count]) => count > 0)
48
+ .map(([group, count]) => `${count} ${group}`)
49
+ .join(', ');
50
+ const message = `Found ${pluralizeToken('direct dependency', depTotal)} in ${formattedPath} (${groupsSummary})`;
51
+ return { message, result: depTotals };
52
+ });
42
53
  }
43
54
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,GAAwB,EACxB,eAA6B;IAE7B,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,cAAc,GAAG,eAAe,IAAI,GAAG,CAAC;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe;aAC3C,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,OAAO,EAAE;oBACP,GAAG,GAAG,CAAC,OAAO;oBACd,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC7C,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;iBAC7B;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,eAAe,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC;YAC9C,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC;IACJ,CAAC,EACD,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,OAAO,EAAE,YAAY,CAAC,OAAO;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,eAAuB;IAEvB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAc,eAAe,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,iBAAiB,CAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,iBAAiB,CACtB,YAAY,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI;QACJ,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"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"}
package/src/bin.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/src/bin.js DELETED
@@ -1,6 +0,0 @@
1
- import process from 'node:process';
2
- import { Parser } from 'yargs/helpers';
3
- import { executeRunner } from './lib/runner/index.js';
4
- const { runnerConfigPath, runnerOutputPath } = Parser(process.argv);
5
- await executeRunner({ runnerConfigPath, runnerOutputPath });
6
- //# sourceMappingURL=bin.js.map
package/src/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,aAAa,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { RunnerConfig, RunnerFilesPaths } from '@code-pushup/models';
2
- import { type FinalJSPackagesPluginConfig } from '../config.js';
3
- export declare function createRunnerConfig(scriptPath: string, config: FinalJSPackagesPluginConfig): Promise<RunnerConfig>;
4
- export declare function executeRunner({ runnerConfigPath, runnerOutputPath, }: RunnerFilesPaths): Promise<void>;
@@ -1,65 +0,0 @@
1
- import { writeFile } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { asyncSequential, createRunnerFiles, ensureDirectoryExists, executeProcess, filePathToCliArg, 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 { 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, packageJsonPath, dependencyGroups: depGroups, } = await readJsonFile(runnerConfigPath);
24
- const auditResults = checks.includes('audit')
25
- ? await processAudit(packageManager, depGroups, auditLevelMapping, packageJsonPath)
26
- : [];
27
- const outdatedResults = checks.includes('outdated')
28
- ? await processOutdated(packageManager, depGroups, packageJsonPath)
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, packageJsonPath) {
35
- const pm = packageManagers[id];
36
- const { stdout } = await executeProcess({
37
- command: pm.command,
38
- args: pm.outdated.commandArgs,
39
- cwd: packageJsonPath ? path.dirname(packageJsonPath) : process.cwd(),
40
- ignoreExitCode: true, // outdated returns exit code 1 when outdated dependencies are found
41
- });
42
- const depTotals = await getTotalDependencies(packageJsonPath);
43
- const normalizedResult = pm.outdated.unifyResult(stdout);
44
- return depGroups.map(depGroup => outdatedResultToAuditOutput(normalizedResult, id, depGroup, depTotals[dependencyGroupToLong[depGroup]]));
45
- }
46
- async function processAudit(id, depGroups, auditLevelMapping, packageJsonPath) {
47
- const pm = packageManagers[id];
48
- const supportedAuditDepGroups = pm.audit.supportedDepGroups ?? dependencyGroups;
49
- const compatibleAuditDepGroups = depGroups.filter(group => supportedAuditDepGroups.includes(group));
50
- const auditResults = await asyncSequential(compatibleAuditDepGroups, async (depGroup) => {
51
- const { stdout } = await executeProcess({
52
- command: pm.command,
53
- args: pm.audit.getCommandArgs(depGroup),
54
- cwd: packageJsonPath ? path.dirname(packageJsonPath) : process.cwd(),
55
- ignoreExitCode: pm.audit.ignoreExitCode,
56
- });
57
- return [depGroup, pm.audit.unifyResult(stdout)];
58
- });
59
- const resultsMap = objectFromEntries(auditResults);
60
- const uniqueResults = pm.audit.postProcessResult?.(resultsMap) ?? resultsMap;
61
- return compatibleAuditDepGroups.map(depGroup => auditResultToAuditOutput(
62
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
- uniqueResults[depGroup], id, depGroup, auditLevelMapping));
64
- }
65
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAML,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,MAAmC;IAEnC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,iBAAiB,CACpE,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,MAAM;QACf,IAAI,EAAE;YACJ,gBAAgB,CAAC,UAAU,CAAC;YAC5B,GAAG,eAAe,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;SAC3D;QACD,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,gBAAgB;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,gBAAgB,EAChB,gBAAgB,GACC;IACjB,MAAM,EACJ,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAAE,SAAS,GAC5B,GAAG,MAAM,YAAY,CAA8B,gBAAgB,CAAC,CAAC;IAEtE,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,MAAM,YAAY,CAChB,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,eAAe,CAChB;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjD,CAAC,CAAC,MAAM,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC;QACnE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;IAE3D,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,EAAoB,EACpB,SAA4B,EAC5B,eAAgC;IAEhC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QACtC,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW;QAC7B,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACpE,cAAc,EAAE,IAAI,EAAE,oEAAoE;KAC3F,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC9B,2BAA2B,CACzB,gBAAgB,EAChB,EAAE,EACF,QAAQ,EACR,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAC3C,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,EAAoB,EACpB,SAA4B,EAC5B,iBAAgC,EAChC,eAAgC;IAEhC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,uBAAuB,GAC3B,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,gBAAgB,CAAC;IAClD,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxD,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,wBAAwB,EACxB,KAAK,EAAE,QAAQ,EAA2C,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YACvC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpE,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc;SACxC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;IAE7E,OAAO,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC7C,wBAAwB;IACtB,oEAAoE;IACpE,aAAa,CAAC,QAAQ,CAAE,EACxB,EAAE,EACF,QAAQ,EACR,iBAAiB,CAClB,CACF,CAAC;AACJ,CAAC"}