Skip to content

Conversation

@BioPhoton
Copy link
Collaborator

@BioPhoton BioPhoton commented Jul 7, 2025

Bundle Stats Plugin PoC Implementation

Fine-grained bundle size tracking for your builds
This plugin enables advanced bundle stats capabilities to avoiding unwanted size increase.


📝 Related Issue

👉 #1015 – Bundle Stats Plugin Architecture Discussion

NOTE:
This PoC PR serves as an initial implementation to validate the proposed architecture and core functionality.
The final implementation will be delivered in smaller, focused PRs to ensure clarity, better review ability, and incremental improvements.

Examples

Features

Legend:

  • Tested - 🧪
  • Documented/Planned - 📖
  • Implemented - 👩‍💻

Todos:

  • use generic type PluginArtefactOptions to models
  • merge plugin and audit level configs. 📖 👩‍💻 🧪
  • 📊 Stats Unification - 📖 👩‍💻 🧪
    • esbuild - 📖 👩‍💻 🧪
    • webpack - 📖
    • rsbuild - 📖
    • vite - 📖
    • roldown - 📖
  • 🎯 Selection - 📖 👩‍💻 🧪
    • strategy - 📖 👩‍💻 🧪
  • 📏 Scoring - 📖 👩‍💻 🧪
    • Total Size - 📖 👩‍💻 🧪
    • Penalty - 📖 👩‍💻 🧪
      • Too small - 📖 👩‍💻 🧪
      • Too big - 📖 👩‍💻 🧪
      • Blacklisted - 📖 👩‍💻 🧪
  • 🧠 Insights Table - 📖 👩‍💻
    • Good strategy for accurate "byte picking" - 📖 👩‍💻
    • Grouping - 📖 👩‍💻
    • Remaining Bytes - 📖 👩‍💻
  • 🌲 Artefact Tree - 📖 👩‍💻
    • Pruning - 📖 👩‍💻
    • Grouping - 📖 👩‍💻
    • Formatting - 📖 👩‍💻

✅ MVP State

The final implementation is delivered in the following PR's:

  • utils
  • runner
    • unify logic
    • selection
    • scoring
  • plugin
  • docs
  • e2e
  • runner optional
    • artefact tree
    • insights table

@github-actions github-actions bot added 📖 Project documentation improvements or additions to the project documentation 🔬 testing writing tests 🛠️ tooling labels Jul 7, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2025

Code PushUp

🤨 Code PushUp report has both improvements and regressions – compared current commit 34fcb41 with previous commit 7daf201.

🕵️ See full comparison in Code PushUp portal 🔍

🏷️ Categories

🏷️ Category ⭐ Previous score ⭐ Current score 🔄 Score change
Code style 🟢 100 🟡 85 ↓ −15.3
Type Safety 🟢 100 🟡 89 ↓ −11.1
Bug prevention 🟢 100 🟡 90 ↓ −10.2
Documentation 🔴 23 🔴 15 ↓ −7.6
Code coverage 🟢 90 🟡 87 ↓ −3.5
Performance 🔴 31 🔴 29 ↓ −1.6
Updates 🟡 77 🟡 77 ↑ +0.1
Security 🔴 0 🔴 0
Accessibility 🟢 92 🟢 92
Best Practices 🟢 100 🟢 100
SEO 🟡 61 🟡 61
Miscellaneous 🟢 100 🟢 100
👍 1 group improved, 👎 12 groups regressed, 👍 4 audits improved, 👎 62 audits regressed, 14 audits changed without impacting score

🗃️ Groups

🔌 Plugin 🗃️ Group ⭐ Previous score ⭐ Current score 🔄 Score change
ESLint No Mutations (functional) 🟢 100 🔴 0 ↓ −100
ESLint No Statements (functional) 🟢 100 🔴 0 ↓ −100
ESLint Stylistic (functional) 🟢 100 🔴 0 ↓ −100
TypeScript Problems 🟢 100 🟡 67 ↓ −33.3
ESLint Helpful warnings (import) 🟢 100 🟡 75 ↓ −25
ESLint Style guide (import) 🟢 100 🟡 80 ↓ −20
ESLint Suggestions 🟢 100 🟡 85 ↓ −15.3
ESLint Static analysis (import) 🟢 100 🟡 88 ↓ −12.5
JSDoc coverage Documentation coverage 🔴 23 🔴 15 ↓ −7.6
ESLint Problems 🟢 100 🟢 93 ↓ −7.4
Code coverage Code coverage metrics 🟢 90 🟡 87 ↓ −3.5
Lighthouse Performance 🔴 31 🔴 29 ↓ −1.6
JS Packages NPM outdated dependencies 🟡 77 🟡 77 ↑ +0.1

8 other groups are unchanged.

🛡️ Audits

🔌 Plugin 🛡️ Audit 📏 Previous value 📏 Current value 🔄 Value change
ESLint Enforce treating data as immutable. 🟩 passed 🟥 109 errors ↑ +∞ %
ESLint Disallow imperative loops. 🟩 passed 🟥 70 warnings ↑ +∞ %
ESLint Enforce consistent brace style for all control statements 🟩 passed 🟥 61 warnings ↑ +∞ %
ESLint Enforce the style of numeric separators by correctly grouping digits. 🟩 passed 🟥 56 warnings ↑ +∞ %
ESLint Disallow mutable variables. 🟩 passed 🟥 38 warnings ↑ +∞ %
ESLint Disallow unused variables 🟩 passed 🟥 24 errors ↑ +∞ %
ESLint Enforce type definitions to consistently use either interface or type 🟩 passed 🟥 19 warnings ↑ +∞ %
ESLint Enforce a maximum number of lines of code in a function 🟩 passed 🟥 16 warnings ↑ +∞ %
ESLint Disallow non-null assertions using the ! postfix operator 🟩 passed 🟥 15 errors ↑ +∞ %
ESLint Enforce a maximum depth that blocks can be nested 🟩 passed 🟥 12 warnings ↑ +∞ %
ESLint enforce the style of file extensions in import declarations 🟩 passed 🟥 12 errors ↑ +∞ %
ESLint Disallow the use of console 🟩 passed 🟥 10 warnings ↑ +∞ %
ESLint Disallow the any type 🟩 passed 🟥 7 errors ↑ +∞ %
ESLint Disallow duplicate module imports 🟩 passed 🟥 7 warnings ↑ +∞ %
ESLint Forbid repeated import of the same module in multiple places. 🟩 passed 🟥 6 warnings ↑ +∞ %
ESLint Require consistently using either T[] or Array<T> for arrays 🟩 passed 🟥 6 warnings ↑ +∞ %
ESLint Forbid any invalid exports, i.e. re-export of the same name. 🟩 passed 🟥 5 errors ↑ +∞ %
ESLint Collection and array contents should be used 🟩 passed 🟥 5 errors ↑ +∞ %
ESLint Checks dependencies in project's package.json for version mismatches 🟩 passed 🟥 5 errors ↑ +∞ %
ESLint Collapsible "if" statements should be merged 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Do not use a for loop that can be replaced with a for-of loop. 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Disallow if statements as the only statement in if blocks without else. 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Disallow negated conditions. 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Disallow useless fallback when spreading in object literals. 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Require braces around arrow function bodies 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Enforce a maximum number of lines per file 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Disallow number literals with zero fractions or dangling dots. 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint Enforce a maximum cyclomatic complexity allowed in a program 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint Require for-in loops to include an if statement 🟩 passed 🟥 3 errors ↑ +∞ %
ESLint Enforce using a particular method signature syntax 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint Enforce consistent usage of type assertions 🟩 passed 🟥 3 errors ↑ +∞ %
ESLint Prefer property signatures over method signatures. 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint Replaces x => f(x) with just f. 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint disallow conditional expects 🟩 passed 🟥 3 warnings ↑ +∞ %
TypeScript Semantic errors 🟩 passed 🟥 2 errors ↑ +∞ %
ESLint Require const declarations for variables that are never reassigned after declared 🟩 passed 🟥 2 errors ↑ +∞ %
ESLint Enforce explicitly comparing the length or size property of a value. 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Enforce combining multiple Array#push() into one call. 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Prefer .at() method for index access and String#charAt(). 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Enforce throwing TypeError in type checking conditions. 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Require or disallow method and property shorthand syntax for object literals 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Require template literals instead of string concatenation 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers 🟩 passed 🟥 2 warnings ↑ +∞ %
ESLint Forbid a module from importing a module with a dependency path back to itself. 🟩 passed 🟥 2 errors ↑ +∞ %
ESLint Functions should not have identical implementations 🟩 passed 🟥 1 error ↑ +∞ %
ESLint Return of boolean expressions should not be wrapped into an "if-then-else" statement 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow empty files. 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item. 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow reassigning function parameters 🟩 passed 🟥 1 error ↑ +∞ %
ESLint Disallow initializing variables to undefined 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow renaming import, export, and destructured assignments to the same name 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Enforce a maximum number of parameters in function definitions 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow variable declarations from shadowing variables declared in the outer scope 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint disallow unsupported Node.js built-in APIs on the specified version 🟩 passed 🟥 1 error ↑ +∞ %
ESLint Checks dependencies in project's package.json for version mismatches 🟩 passed 🟥 1 error ↑ +∞ %
JSDoc coverage Interfaces coverage 🟩 0 undocumented interfaces 🟥 18 undocumented interfaces ↑ +∞ %
Lighthouse Avoids enormous network payloads 🟨 Total size was 2,706 KiB 🟩 Total size was 2,662 KiB ↓ −1.6 %
Lighthouse First Contentful Paint 🟥 3.2 s 🟥 3.6 s ↑ +13.1 %
Code coverage Line coverage 🟨 86.8 % 🟨 77 % ↓ −11.3 %
JSDoc coverage Functions coverage 🟥 516 undocumented functions 🟥 576 undocumented functions ↑ +11.6 %
Lighthouse Speed Index 🟥 8.6 s 🟥 9.3 s ↑ +7.3 %
Code coverage Function coverage 🟩 93.1 % 🟨 89.2 % ↓ −4.2 %
JSDoc coverage Variables coverage 🟥 224 undocumented variables 🟥 239 undocumented variables ↑ +6.7 %
JSDoc coverage Types coverage 🟥 235 undocumented types 🟥 305 undocumented types ↑ +29.8 %
JS Packages Outdated NPM dev dependencies. 🟨 55 outdated package versions (30 major, 21 minor, 4 patch) 🟨 56 outdated package versions (30 major, 21 minor, 5 patch) ↑ +1.8 %
Code coverage Branch coverage 🟨 85 % 🟨 84.6 % ↓ −0.5 %
Lighthouse Uses efficient cache policy on static assets 🟨 31 resources found 🟨 31 resources found ↑ +0.1 %
Lighthouse Metrics 🟩 100% 🟩 100% ↑ +4.2 %
Lighthouse Time to Interactive 🟥 19.6 s 🟥 20.4 s ↑ +4.2 %
Lighthouse JavaScript execution time 🟥 10.7 s 🟥 10.0 s ↓ −6.7 %
Lighthouse Total Blocking Time 🟥 6,870 ms 🟥 7,270 ms ↑ +5.8 %
Lighthouse Largest Contentful Paint 🟥 13.4 s 🟥 13.0 s ↓ −2.8 %
Lighthouse Minimizes main-thread work 🟥 21.5 s 🟥 21.2 s ↓ −1.7 %
Lighthouse Server Backend Latencies 🟩 1,570 ms 🟩 1,220 ms ↓ −21.9 %
Lighthouse Max Potential First Input Delay 🟥 2,360 ms 🟥 2,220 ms ↓ −6 %
Lighthouse Initial server response time was short 🟩 Root document took 520 ms 🟩 Root document took 460 ms ↓ −11.2 %
Lighthouse Network Round Trip Times 🟩 70 ms 🟩 110 ms ↑ +59.3 %
Lighthouse Reduce unused CSS 🟥 Potential savings of 102 KiB 🟥 Potential savings of 102 KiB ↓ −2.2 %
Lighthouse Reduce unused JavaScript 🟥 Potential savings of 549 KiB 🟥 Potential savings of 549 KiB ↓ −1.3 %
Lighthouse Remove duplicate modules in JavaScript bundles 🟥 Potential savings of 92 KiB 🟥 Potential savings of 103 KiB ↓ −3.2 %

530 other audits are unchanged.

BioPhoton and others added 12 commits July 24, 2025 03:20
# Conflicts:
#	package-lock.json
#	package.json
#	packages/cli/project.json
#	packages/models/src/lib/configuration.ts
#	packages/utils/src/index.ts
# Conflicts:
#	nx.json
#	package-lock.json
#	package.json
#	packages/models/src/index.ts
#	packages/models/src/lib/configuration.ts
@nx-cloud
Copy link

nx-cloud bot commented Dec 3, 2025

View your CI Pipeline Execution ↗ for commit e72dfac

Command Status Duration Result
nx run ci:code-pushup -- merge-diffs --files=/h... ✅ Succeeded 5s View ↗
nx run-many --targets=code-pushup --parallel=fa... ✅ Succeeded 1m 26s View ↗
nx run-many --targets=code-pushup --parallel=fa... ✅ Succeeded 12m 40s View ↗
nx run-many -t unit-test,int-test ✅ Succeeded 49s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-05 13:58:30 UTC

}

export function normalizePathForMatching(path: string): string {
return path.replace(/\.\.\//g, '').replace(/^\/+/, '');

Check failure

Code scanning / CodeQL

Incomplete multi-character sanitization High

This string may still contain
../
, which may cause a path injection vulnerability.

Copilot Autofix

AI about 24 hours ago

The best way to fix this specific issue is to ensure that all instances of "../" are removed even when they may reappear due to the replacement operation. This can be done by repeatedly applying the replace operation until no more substitutions are made. This strategy guarantees that every instance is removed, regardless of how many instances may appear or overlap.

The changes needed:

  • In file packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts, modify the implementation of normalizePathForMatching() (lines 71-73) to repeatedly apply .replace(/\.\.\//g, '') in a loop until the output stabilizes.
  • No extra imports or dependencies are required – plain TypeScript is sufficient.

Suggested changeset 1
packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts b/packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts
--- a/packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts
+++ b/packages/plugin-bundle-stats/src/lib/runner/audits/details/grouping.ts
@@ -69,7 +69,13 @@
 }
 
 export function normalizePathForMatching(path: string): string {
-  return path.replace(/\.\.\//g, '').replace(/^\/+/, '');
+  let sanitized = path;
+  let previous;
+  do {
+    previous = sanitized;
+    sanitized = sanitized.replace(/\.\.\//g, '');
+  } while (sanitized !== previous);
+  return sanitized.replace(/^\/+/, '');
 }
 
 /**
EOF
@@ -69,7 +69,13 @@
}

export function normalizePathForMatching(path: string): string {
return path.replace(/\.\.\//g, '').replace(/^\/+/, '');
let sanitized = path;
let previous;
do {
previous = sanitized;
sanitized = sanitized.replace(/\.\.\//g, '');
} while (sanitized !== previous);
return sanitized.replace(/^\/+/, '');
}

/**
Copilot is powered by AI and may make mistakes. Always verify output.
@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

Dependency Review Summary

The full dependency review summary is too large to display here. Please download the artifact named "dependency-review-summary" to view the complete report.

View full job summary

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 5, 2025

Open in StackBlitz

@code-pushup/ci

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/ci@1024

@code-pushup/cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/cli@1024

@code-pushup/core

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/core@1024

@code-pushup/create-cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/create-cli@1024

@code-pushup/models

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models@1024

@code-pushup/nx-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1024

@code-pushup/axe-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/axe-plugin@1024

@code-pushup/bundle-stats-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/bundle-stats-plugin@1024

@code-pushup/coverage-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/coverage-plugin@1024

@code-pushup/eslint-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/eslint-plugin@1024

@code-pushup/js-packages-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/js-packages-plugin@1024

@code-pushup/jsdocs-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/jsdocs-plugin@1024

@code-pushup/lighthouse-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/lighthouse-plugin@1024

@code-pushup/typescript-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/typescript-plugin@1024

@code-pushup/utils

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@1024

commit: e72dfac

@github-actions
Copy link
Contributor

github-actions bot commented Dec 5, 2025

Code PushUp

😟 Code PushUp report has regressed – compared current commit ce663db with previous commit f74d2dd.

💼 Project utils

😟 Code PushUp report has regressed.

🕵️ See full comparison in Code PushUp portal 🔍

🏷️ Category ⭐ Previous score ⭐ Current score 🔄 Score change
Code coverage 🟢 94 🟢 94 ↓ −0.5
Documentation 🔴 38 🔴 38 ↓ −0.1

4 other categories are unchanged.

👎 2 groups regressed, 👎 3 audits regressed

🗃️ Groups

🔌 Plugin 🗃️ Group ⭐ Previous score ⭐ Current score 🔄 Score change
Code coverage Code coverage metrics 🟢 94 🟢 94 ↓ −0.5
JSDoc coverage Documentation coverage 🔴 38 🔴 38 ↓ −0.1

13 other groups are unchanged.

🛡️ Audits

🔌 Plugin 🛡️ Audit 📏 Previous value 📏 Current value 🔄 Value change
Code coverage Function coverage 🟩 95.3 % 🟩 94.4 % ↓ −0.9 %
Code coverage Line coverage 🟩 97 % 🟩 96.8 % ↓ −0.1 %
JSDoc coverage Functions coverage 🟥 236 undocumented functions 🟥 239 undocumented functions ↑ +1.3 %

440 other audits are unchanged.


13 other projects are unchanged.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 5, 2025

Code PushUp

🤨 Code PushUp report has both improvements and regressions – compared current commit ce663db with previous commit f74d2dd.

🕵️ See full comparison in Code PushUp portal 🔍

🏷️ Categories

🏷️ Category ⭐ Previous score ⭐ Current score 🔄 Score change
Code style 🟢 100 🟢 93 ↓ −7.5
Code coverage 🟡 89 🟡 86 ↓ −2.9
Performance 🔴 44 🔴 42 ↓ −1.9
Bug prevention 🟡 67 🟡 65 ↓ −1.2
Documentation 🔴 35 🔴 36 ↑ +0.9
Updates 🟡 71 🟡 71 ↑ +0.1
Security 🔴 43 🔴 43
Type Safety 🟡 56 🟡 56
Miscellaneous 🟡 67 🟡 67
Accessibility 🟢 92 🟢 92
Best Practices 🟢 100 🟢 100
SEO 🟢 92 🟢 92
👍 2 groups improved, 👎 9 groups regressed, 👍 5 audits improved, 👎 35 audits regressed, 14 audits changed without impacting score

🗃️ Groups

🔌 Plugin 🗃️ Group ⭐ Previous score ⭐ Current score 🔄 Score change
ESLint No Mutations (functional) 🟢 100 🔴 0 ↓ −100
ESLint No Statements (functional) 🟢 100 🔴 0 ↓ −100
ESLint Stylistic (functional) 🟢 100 🟡 50 ↓ −50
ESLint Helpful warnings (import) 🟢 100 🟡 75 ↓ −25
ESLint Static analysis (import) 🟢 100 🟡 88 ↓ −12.5
ESLint Suggestions 🟢 100 🟢 93 ↓ −7.5
ESLint Problems 🟢 100 🟢 95 ↓ −4.7
Code coverage Code coverage metrics 🟡 89 🟡 86 ↓ −2.9
Lighthouse Performance 🔴 44 🔴 42 ↓ −1.9
JSDoc coverage Documentation coverage 🔴 35 🔴 36 ↑ +0.9
JS Packages NPM outdated dependencies 🟡 71 🟡 71 ↑ +0.1

12 other groups are unchanged.

🛡️ Audits

🔌 Plugin 🛡️ Audit 📏 Previous value 📏 Current value 🔄 Value change
Lighthouse Initial server response time was short 🟥 Root document took 790 ms 🟩 Root document took 560 ms ↓ −29.5 %
ESLint Enforce treating data as immutable. 🟩 passed 🟥 116 errors ↑ +∞ %
ESLint Disallow imperative loops. 🟩 passed 🟥 81 warnings ↑ +∞ %
ESLint Disallow mutable variables. 🟩 passed 🟥 32 warnings ↑ +∞ %
ESLint Disallow unused variables 🟩 passed 🟥 24 errors ↑ +∞ %
ESLint Disallow non-null assertions using the ! postfix operator 🟩 passed 🟥 18 errors ↑ +∞ %
ESLint Enforce a maximum number of lines of code in a function 🟩 passed 🟥 17 warnings ↑ +∞ %
ESLint Disallow the use of console 🟩 passed 🟥 14 warnings ↑ +∞ %
ESLint Enforce a maximum depth that blocks can be nested 🟩 passed 🟥 10 warnings ↑ +∞ %
ESLint Disallow the any type 🟩 passed 🟥 9 errors ↑ +∞ %
ESLint Forbid any invalid exports, i.e. re-export of the same name. 🟩 passed 🟥 7 errors ↑ +∞ %
ESLint Collection and array contents should be used 🟩 passed 🟥 5 errors ↑ +∞ %
ESLint Enforce a maximum number of lines per file 🟩 passed 🟥 5 warnings ↑ +∞ %
ESLint Enforce a maximum cyclomatic complexity allowed in a program 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Disallow duplicate module imports 🟩 passed 🟥 4 warnings ↑ +∞ %
ESLint Require for-in loops to include an if statement 🟩 passed 🟥 3 errors ↑ +∞ %
ESLint Enforce consistent usage of type assertions 🟩 passed 🟥 3 errors ↑ +∞ %
ESLint Replaces x => f(x) with just f. 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint disallow conditional expects 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint disallow disabled tests 🟩 passed 🟥 3 warnings ↑ +∞ %
ESLint Forbid a module from importing a module with a dependency path back to itself. 🟩 passed 🟥 2 errors ↑ +∞ %
ESLint String literals should not be duplicated 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Functions should not have identical implementations 🟩 passed 🟥 1 error ↑ +∞ %
ESLint Return of boolean expressions should not be wrapped into an "if-then-else" statement 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Enforce combining multiple Array#push() into one call. 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow reassigning function parameters 🟩 passed 🟥 1 error ↑ +∞ %
ESLint Enforce a maximum number of parameters in function definitions 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Disallow variable declarations from shadowing variables declared in the outer scope 🟩 passed 🟥 1 warning ↑ +∞ %
ESLint Checks dependencies in project's package.json for version mismatches 🟩 passed 🟥 1 error ↑ +∞ %
Code coverage Line coverage 🟨 84.7 % 🟨 76.6 % ↓ −9.5 %
Lighthouse Speed Index 🟥 6.7 s 🟥 7.1 s ↑ +6.5 %
JSDoc coverage Functions coverage 🟥 561 undocumented functions 🟥 622 undocumented functions ↑ +10.9 %
Lighthouse Total Blocking Time 🟥 800 ms 🟥 880 ms ↑ +9.7 %
Code coverage Function coverage 🟩 90.3 % 🟨 87.2 % ↓ −3.4 %
Lighthouse Time to Interactive 🟥 13.0 s 🟥 12.5 s ↓ −4.1 %
JSDoc coverage Variables coverage 🟥 246 undocumented variables 🟥 259 undocumented variables ↑ +5.3 %
JSDoc coverage Types coverage 🟥 241 undocumented types 🟥 333 undocumented types ↑ +38.2 %
Lighthouse First Contentful Paint 🟥 3.2 s 🟥 3.3 s ↑ +0.8 %
Code coverage Branch coverage 🟨 87.3 % 🟨 86.4 % ↓ −1 %
JS Packages Outdated NPM dev dependencies. 🟨 59 outdated package versions (34 major, 19 minor, 6 patch) 🟨 59 outdated package versions (34 major, 19 minor, 6 patch)  +0 %
Lighthouse Avoids enormous network payloads 🟩 Total size was 2,032 KiB 🟩 Total size was 2,023 KiB ↓ −0.4 %
Lighthouse Server Backend Latencies 🟩 1,760 ms 🟩 1,230 ms ↓ −30.3 %
Lighthouse Metrics 🟩 100% 🟩 100% ↓ −4.1 %
Lighthouse Minimizes main-thread work 🟥 7.5 s 🟥 7.2 s ↓ −5 %
Lighthouse Uses efficient cache policy on static assets 🟨 32 resources found 🟨 32 resources found ↓ −0.1 %
Lighthouse Max Potential First Input Delay 🟥 840 ms 🟥 1,060 ms ↑ +25.6 %
Lighthouse JavaScript execution time 🟥 2.9 s 🟥 2.9 s ↓ −3.1 %
Lighthouse Reduce unused JavaScript 🟥 Potential savings of 186 KiB 🟥 Potential savings of 186 KiB ↑ +9.6 %
Lighthouse Largest Contentful Paint 🟥 11.6 s 🟥 11.5 s ↓ −0.6 %
Lighthouse Reduce unused CSS 🟥 Potential savings of 105 KiB 🟥 Potential savings of 105 KiB ↓ −10.4 %
Lighthouse Remove duplicate modules in JavaScript bundles 🟥 Potential savings of 104 KiB 🟥 Potential savings of 104 KiB ↓ −10 %
TypeScript Syntax errors 🟥 5 errors 🟥 9 errors ↑ +80 %
TypeScript Semantic errors 🟥 2623 errors 🟥 2627 errors ↑ +0.2 %
Lighthouse Network Round Trip Times 🟩 50 ms 🟩 50 ms ↓ −8.1 %

624 other audits are unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📖 Project documentation improvements or additions to the project documentation 🔬 testing writing tests 🛠️ tooling 🧩 utils

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants