@@ -24375,6 +24375,25 @@ function processDependencies(rootInfo, root, packageMap, prefix) {
2437524375 }
2437624376}
2437724377
24378+ // node_modules/lockparse/lib/traverse.js
24379+ var visitorKeys = [
24380+ ["dependency", "dependencies"],
24381+ ["devDependency", "devDependencies"],
24382+ ["peerDependency", "peerDependencies"],
24383+ ["optionalDependency", "optionalDependencies"]
24384+ ];
24385+ function traverse(node, visitor) {
24386+ for (const [visitorKey, nodeKey] of visitorKeys) {
24387+ if (visitor[visitorKey]) {
24388+ for (const dep of node[nodeKey]) {
24389+ if (visitor[visitorKey](dep, node) !== false) {
24390+ traverse(dep, visitor);
24391+ }
24392+ }
24393+ }
24394+ }
24395+ }
24396+
2437824397// node_modules/lockparse/lib/main.js
2437924398var typeMap = {
2438024399 "package-lock.json": "npm",
@@ -24878,9 +24897,30 @@ function formatBytes(bytes) {
2487824897}
2487924898
2488024899// src/checks/dependency-size.ts
24881- async function scanForDependencySize(messages, threshold, currentDeps, baseDeps) {
24900+ async function scanForDependencySize(messages, threshold, currentDeps, baseDeps, currentLockFile ) {
2488224901 const newVersions = [];
2488324902 const removedVersions = [];
24903+ const skippedVersions = /* @__PURE__ */ new Map();
24904+ const allOptionalVersions = /* @__PURE__ */ new Map();
24905+ for (const pkg of currentLockFile.packages) {
24906+ traverse(pkg, {
24907+ optionalDependency: (node) => {
24908+ const entry = allOptionalVersions.get(node.name) ?? /* @__PURE__ */ new Set();
24909+ entry.add(node.version);
24910+ allOptionalVersions.set(node.name, entry);
24911+ }
24912+ });
24913+ }
24914+ for (const [pkg, versions] of allOptionalVersions) {
24915+ for (const version of versions) {
24916+ const pkgMeta = await fetchPackageMetadata(pkg, version);
24917+ if (pkgMeta && (pkgMeta.os && pkgMeta.os.length > 0 && !pkgMeta.os.includes("linux") || pkgMeta.cpu && pkgMeta.cpu.length > 0 && !pkgMeta.cpu.includes("x64"))) {
24918+ const entry = skippedVersions.get(pkg) ?? /* @__PURE__ */ new Set();
24919+ entry.add(version);
24920+ skippedVersions.set(pkg, entry);
24921+ }
24922+ }
24923+ }
2488424924 for (const [packageName, currentVersionSet] of currentDeps) {
2488524925 const baseVersionSet = baseDeps.get(packageName);
2488624926 for (const version of currentVersionSet) {
@@ -25113,7 +25153,13 @@ async function run() {
2511325153 baseDeps
2511425154 );
2511525155 scanForDuplicates(messages, duplicateThreshold, currentDeps, lockfilePath);
25116- await scanForDependencySize(messages, sizeThreshold, currentDeps, baseDeps);
25156+ await scanForDependencySize(
25157+ messages,
25158+ sizeThreshold,
25159+ currentDeps,
25160+ baseDeps,
25161+ parsedCurrentLock
25162+ );
2511725163 await scanForProvenance(messages, currentDeps, baseDeps);
2511825164 const basePackagesPattern = core7.getInput("base-packages");
2511925165 const sourcePackagesPattern = core7.getInput("source-packages");
0 commit comments