@@ -24237,7 +24237,7 @@ async function fetchPackageMetadata(packageName, version) {
2423724237 metaCache.set(cacheKey, result);
2423824238 return result;
2423924239}
24240- async function calculateTotalDependencySizeIncrease(newVersions) {
24240+ async function calculateTotalDependencySizeIncrease(newVersions, removedVersions ) {
2424124241 let totalSize = 0;
2424224242 const processedPackages = /* @__PURE__ */ new Set();
2424324243 const packageSizes = /* @__PURE__ */ new Map();
@@ -24259,6 +24259,26 @@ async function calculateTotalDependencySizeIncrease(newVersions) {
2425924259 return null;
2426024260 }
2426124261 }
24262+ for (const dep of removedVersions) {
24263+ const packageKey = `${dep.name}@${dep.version}`;
24264+ if (processedPackages.has(packageKey)) {
24265+ continue;
24266+ }
24267+ try {
24268+ const metadata = await fetchPackageMetadata(dep.name, dep.version);
24269+ if (!metadata || metadata.dist?.unpackedSize === void 0) {
24270+ return null;
24271+ }
24272+ totalSize -= metadata.dist.unpackedSize;
24273+ packageSizes.set(packageKey, -metadata.dist.unpackedSize);
24274+ processedPackages.add(packageKey);
24275+ core2.info(
24276+ `Subtracted ${metadata.dist.unpackedSize} bytes for ${packageKey}`
24277+ );
24278+ } catch {
24279+ return null;
24280+ }
24281+ }
2426224282 return { totalSize, packageSizes };
2426324283}
2426424284var dependencyTypeMap = {
@@ -24548,12 +24568,42 @@ function formatBytes(bytes) {
2454824568}
2454924569
2455024570// src/checks/dependency-size.ts
24551- async function scanForDependencySize(messages, threshold, newVersions) {
24552- if (newVersions.length === 0) {
24571+ async function scanForDependencySize(messages, threshold, currentDeps, baseDeps) {
24572+ const newVersions = [];
24573+ const removedVersions = [];
24574+ for (const [packageName, currentVersionSet] of currentDeps) {
24575+ const baseVersionSet = baseDeps.get(packageName);
24576+ for (const version of currentVersionSet) {
24577+ if (!baseVersionSet || !baseVersionSet.has(version)) {
24578+ newVersions.push({
24579+ name: packageName,
24580+ version,
24581+ isNewPackage: !baseVersionSet
24582+ });
24583+ }
24584+ }
24585+ }
24586+ for (const [packageName, baseVersionSet] of baseDeps) {
24587+ const currentVersionSet = currentDeps.get(packageName);
24588+ for (const version of baseVersionSet) {
24589+ if (!currentVersionSet || !currentVersionSet.has(version)) {
24590+ removedVersions.push({
24591+ name: packageName,
24592+ version
24593+ });
24594+ }
24595+ }
24596+ }
24597+ core5.info(`Found ${newVersions.length} new package versions`);
24598+ core5.info(`Found ${removedVersions.length} removed package versions.`);
24599+ if (newVersions.length === 0 && removedVersions.length === 0) {
2455324600 return;
2455424601 }
2455524602 try {
24556- const sizeData = await calculateTotalDependencySizeIncrease(newVersions);
24603+ const sizeData = await calculateTotalDependencySizeIncrease(
24604+ newVersions,
24605+ removedVersions
24606+ );
2455724607 if (sizeData !== null && sizeData.totalSize >= threshold) {
2455824608 const packageRows = Array.from(sizeData.packageSizes.entries()).sort(([, a], [, b]) => b - a).map(([pkg, size]) => `| ${pkg} | ${formatBytes(size)} |`).join("\n");
2455924609 messages.push(
@@ -24728,21 +24778,7 @@ async function run() {
2472824778 baseDeps
2472924779 );
2473024780 scanForDuplicates(messages, duplicateThreshold, currentDeps, lockfilePath);
24731- const newVersions = [];
24732- for (const [packageName, currentVersionSet] of currentDeps) {
24733- const baseVersionSet = baseDeps.get(packageName);
24734- for (const version of currentVersionSet) {
24735- if (!baseVersionSet || !baseVersionSet.has(version)) {
24736- newVersions.push({
24737- name: packageName,
24738- version,
24739- isNewPackage: !baseVersionSet
24740- });
24741- }
24742- }
24743- }
24744- core7.info(`Found ${newVersions.length} new package versions`);
24745- await scanForDependencySize(messages, sizeThreshold, newVersions);
24781+ await scanForDependencySize(messages, sizeThreshold, currentDeps, baseDeps);
2474624782 await scanForProvenance(messages, currentDeps, baseDeps);
2474724783 const basePackagesPattern = core7.getInput("base-packages");
2474824784 const sourcePackagesPattern = core7.getInput("source-packages");
0 commit comments