Skip to content

Conversation

@renatodellosso
Copy link
Contributor

No description provided.

@renatodellosso renatodellosso added the developer improvement Improve the codebase in non-user-facing ways label Dec 5, 2024
@renatodellosso renatodellosso self-assigned this Dec 5, 2024
.finally(() => {
if (location.href.includes("offline"))
location.href = `/offline/${props.compId}`;
else location.href = `/${teamSlug}/${seasonSlug}/${competitonSlug}`;

Check warning

Code scanning / CodeQL

Client-side URL redirect Medium

Untrusted URL redirection depends on a
user-provided value
.

Copilot Autofix

AI about 1 year ago

To fix the problem, we should avoid directly using user-controlled input for URL redirection. Instead, we can maintain a list of authorized redirects and choose from that list based on the user input. This ensures that only valid and safe URLs are used for redirection.

  1. Create a list of authorized paths that the application can redirect to.
  2. Validate the teamSlug, seasonSlug, and competitonSlug against this list before performing the redirection.
  3. If the values are not valid, redirect to a default safe page or show an error message.
Suggested changeset 1
pages/[teamSlug]/[seasonSlug]/[competitonSlug]/[reportId]/subjective.tsx

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/pages/[teamSlug]/[seasonSlug]/[competitonSlug]/[reportId]/subjective.tsx b/pages/[teamSlug]/[seasonSlug]/[competitonSlug]/[reportId]/subjective.tsx
--- a/pages/[teamSlug]/[seasonSlug]/[competitonSlug]/[reportId]/subjective.tsx
+++ b/pages/[teamSlug]/[seasonSlug]/[competitonSlug]/[reportId]/subjective.tsx
@@ -117,5 +117,14 @@
 			.finally(() => {
-				if (location.href.includes("offline"))
-					location.href = `/offline/${props.compId}`;
-				else location.href = `/${teamSlug}/${seasonSlug}/${competitonSlug}`;
+				const authorizedPaths = [
+					`/${teamSlug}/${seasonSlug}/${competitonSlug}`,
+					`/offline/${props.compId}`
+				];
+				const redirectTo = location.href.includes("offline")
+					? `/offline/${props.compId}`
+					: `/${teamSlug}/${seasonSlug}/${competitonSlug}`;
+				if (authorizedPaths.includes(redirectTo)) {
+					location.href = redirectTo;
+				} else {
+					location.href = '/error'; // Redirect to a safe error page
+				}
 			});
EOF
@@ -117,5 +117,14 @@
.finally(() => {
if (location.href.includes("offline"))
location.href = `/offline/${props.compId}`;
else location.href = `/${teamSlug}/${seasonSlug}/${competitonSlug}`;
const authorizedPaths = [
`/${teamSlug}/${seasonSlug}/${competitonSlug}`,
`/offline/${props.compId}`
];
const redirectTo = location.href.includes("offline")
? `/offline/${props.compId}`
: `/${teamSlug}/${seasonSlug}/${competitonSlug}`;
if (authorizedPaths.includes(redirectTo)) {
location.href = redirectTo;
} else {
location.href = '/error'; // Redirect to a safe error page
}
});
Copilot is powered by AI and may make mistakes. Always verify output.
highWaterMark: 256 * 1024,
});
res.writeHead(200, { "content-type": "image/*" });
var s = fs.createReadStream(process.env.IMAGE_UPLOAD_DIR + `/${filename}`, {

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.

Copilot Autofix

AI about 1 year ago

To fix the problem, we need to ensure that the constructed file path is contained within a safe root folder. We can achieve this by normalizing the path using path.resolve and then checking that the normalized path starts with the root folder. This will prevent path traversal attacks.

  1. Import the path module.
  2. Normalize the file path using path.resolve.
  3. Check that the normalized path starts with the root folder.
  4. If the check fails, return a 403 status code.
  5. If the check passes, proceed with reading the file.
Suggested changeset 1
pages/api/img/get.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/pages/api/img/get.ts b/pages/api/img/get.ts
--- a/pages/api/img/get.ts
+++ b/pages/api/img/get.ts
@@ -2,2 +2,3 @@
 import * as fs from "fs";
+import * as path from "path";
 
@@ -17,4 +18,11 @@
 
+		const rootDir = process.env.IMAGE_UPLOAD_DIR;
+		const filePath = path.resolve(rootDir, filename);
+
+		if (!filePath.startsWith(rootDir)) {
+			return res.status(403).send({ status: 403, message: "Forbidden" });
+		}
+
 		res.writeHead(200, { "content-type": "image/*" });
-		var s = fs.createReadStream(process.env.IMAGE_UPLOAD_DIR + `/${filename}`, {
+		var s = fs.createReadStream(filePath, {
 			highWaterMark: 256 * 1024,
EOF
@@ -2,2 +2,3 @@
import * as fs from "fs";
import * as path from "path";

@@ -17,4 +18,11 @@

const rootDir = process.env.IMAGE_UPLOAD_DIR;
const filePath = path.resolve(rootDir, filename);

if (!filePath.startsWith(rootDir)) {
return res.status(403).send({ status: 403, message: "Forbidden" });
}

res.writeHead(200, { "content-type": "image/*" });
var s = fs.createReadStream(process.env.IMAGE_UPLOAD_DIR + `/${filename}`, {
var s = fs.createReadStream(filePath, {
highWaterMark: 256 * 1024,
Copilot is powered by AI and may make mistakes. Always verify output.
} else {
return res.send({ status: 400, message: "Invalid Request" });
}
var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.

Copilot Autofix

AI about 1 year ago

To fix the problem, we need to ensure that the file paths derived from user input are properly validated and contained within a safe root directory. We can achieve this by normalizing the path using path.resolve and then checking that the normalized path starts with the intended root directory. This will prevent directory traversal attacks and ensure that files are only read and written within the allowed directory.

Suggested changeset 1
pages/api/img/upload.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/pages/api/img/upload.ts b/pages/api/img/upload.ts
--- a/pages/api/img/upload.ts
+++ b/pages/api/img/upload.ts
@@ -3,3 +3,3 @@
 import * as fs from "fs";
-
+import * as path from "path";
 export const config = {
@@ -26,9 +26,16 @@
 
+			const ROOT = process.env.IMAGE_UPLOAD_DIR;
 			var filetype = file.mimetype.split("image/")[1];
 			var filename = `/${file.newFilename}.${filetype}`;
-			console.log(process.env.IMAGE_UPLOAD_DIR + filename);
-			console.log(process.env.IMAGE_UPLOAD_DIR);
+			var filePath = path.resolve(ROOT, filename);
+
+			if (!filePath.startsWith(ROOT)) {
+				throw new Error("Invalid file path");
+			}
 
 			var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });
-			fs.writeFile(process.env.IMAGE_UPLOAD_DIR + filename, tempFile, (err) => {
+			fs.writeFile(filePath, tempFile, (err) => {
+				if (err) {
+					throw err;
+				}
 				res.send({ status: 200, filename: filename });
EOF
@@ -3,3 +3,3 @@
import * as fs from "fs";

import * as path from "path";
export const config = {
@@ -26,9 +26,16 @@

const ROOT = process.env.IMAGE_UPLOAD_DIR;
var filetype = file.mimetype.split("image/")[1];
var filename = `/${file.newFilename}.${filetype}`;
console.log(process.env.IMAGE_UPLOAD_DIR + filename);
console.log(process.env.IMAGE_UPLOAD_DIR);
var filePath = path.resolve(ROOT, filename);

if (!filePath.startsWith(ROOT)) {
throw new Error("Invalid file path");
}

var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });
fs.writeFile(process.env.IMAGE_UPLOAD_DIR + filename, tempFile, (err) => {
fs.writeFile(filePath, tempFile, (err) => {
if (err) {
throw err;
}
res.send({ status: 200, filename: filename });
Copilot is powered by AI and may make mistakes. Always verify output.
return res.send({ status: 400, message: "Invalid Request" });
}
var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });
fs.writeFile(process.env.IMAGE_UPLOAD_DIR + filename, tempFile, (err) => {

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.

Copilot Autofix

AI about 1 year ago

To fix the problem, we need to ensure that the constructed file path is contained within a safe root folder. We can achieve this by normalizing the path using path.resolve and then checking that the normalized path starts with the root folder. This will prevent directory traversal attacks.

  1. Import the path module.
  2. Normalize the constructed file path using path.resolve.
  3. Check that the normalized path starts with the root folder (process.env.IMAGE_UPLOAD_DIR).
  4. If the check fails, return an error response.
Suggested changeset 1
pages/api/img/upload.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/pages/api/img/upload.ts b/pages/api/img/upload.ts
--- a/pages/api/img/upload.ts
+++ b/pages/api/img/upload.ts
@@ -3,2 +3,3 @@
 import * as fs from "fs";
+import * as path from "path";
 
@@ -27,8 +28,15 @@
 			var filetype = file.mimetype.split("image/")[1];
-			var filename = `/${file.newFilename}.${filetype}`;
-			console.log(process.env.IMAGE_UPLOAD_DIR + filename);
-			console.log(process.env.IMAGE_UPLOAD_DIR);
+			var filename = `${file.newFilename}.${filetype}`;
+			var uploadDir = process.env.IMAGE_UPLOAD_DIR;
+			var filePath = path.resolve(uploadDir, filename);
+
+			if (!filePath.startsWith(uploadDir)) {
+				return res.send({ status: 403, message: "Forbidden" });
+			}
 
 			var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });
-			fs.writeFile(process.env.IMAGE_UPLOAD_DIR + filename, tempFile, (err) => {
+			fs.writeFile(filePath, tempFile, (err) => {
+				if (err) {
+					return res.send({ status: 500, message: err.message });
+				}
 				res.send({ status: 200, filename: filename });
EOF
@@ -3,2 +3,3 @@
import * as fs from "fs";
import * as path from "path";

@@ -27,8 +28,15 @@
var filetype = file.mimetype.split("image/")[1];
var filename = `/${file.newFilename}.${filetype}`;
console.log(process.env.IMAGE_UPLOAD_DIR + filename);
console.log(process.env.IMAGE_UPLOAD_DIR);
var filename = `${file.newFilename}.${filetype}`;
var uploadDir = process.env.IMAGE_UPLOAD_DIR;
var filePath = path.resolve(uploadDir, filename);

if (!filePath.startsWith(uploadDir)) {
return res.send({ status: 403, message: "Forbidden" });
}

var tempFile = fs.readFileSync(file.filepath, { encoding: "base64" });
fs.writeFile(process.env.IMAGE_UPLOAD_DIR + filename, tempFile, (err) => {
fs.writeFile(filePath, tempFile, (err) => {
if (err) {
return res.send({ status: 500, message: err.message });
}
res.send({ status: 200, filename: filename });
Copilot is powered by AI and may make mistakes. Always verify output.
Copy link
Contributor

@BanEvading BanEvading left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very Skibidi Code

Copy link
Contributor Author

@renatodellosso renatodellosso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

Copy link
Contributor

@Tr01ler Tr01ler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠞⠛⠉⢙⡛⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠋⠀⠀⠀⢰⠁⠀⠀⠉⢻⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠹⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠜⢹⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⡶⠶⠮⠭⠵⢖⠒⠿⢤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⡶⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠲⣄⡀⠀⠀⠀⠀⠀⣰⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠚⠿⡷⣄⣀⣴⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣠⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠪⣻⣄⠀⠀⠀⣀⣀⠤⠴⠒⠚⢋⣭⣟⣯⣍⠉⠓⠒⠦⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣼⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⡝⣧⠔⠋⠁⠀⣀⠤⠔⣶⣿⡿⠿⠿⠿⠍⠉⠒⠢⢤⣀⠈⠑⠦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡦⠤⢤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣞⣧⠤⠒⠉⠀⠀⠾⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢲⣴⣾⣷⢤⡀⠀⠀⠀⠀⠀⠀⠀
⢰⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠈⠙⠳⢦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠟⢿⣿⣧⠙⢦⠀⠀⠀⠀⠀⠀
⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣦⣄⡀⠀⠐⢄⠀⠀⠀⢻⡇⠀⠀⠀⠀⡠⢊⣭⣬⣭⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⡀⠀⠑⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣦⡀⠀⠑⢄⣀⢿⠇⠀⠀⠀⡜⣼⠟⠁⠀⠀⠉⢿⡄⠀⠀⠀⠀⣠⠤⠤⠤⣀⡀⠈⠙⡄⠀⠈⢆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣝⢦⡀⠀⣠⡞⠢⢄⠀⡜⣼⠁⣠⣴⣶⢦⡀⠀⢻⠀⠀⢀⣎⡴⠟⠛⠛⠶⣝⢦⠀⠘⡄⠀⠈⢧⠀⠀
⢢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢦⢻⡾⠋⠀⣀⣀⠁⠁⡇⢰⢿⣄⣿⣎⢷⠀⢸⡇⠀⢸⡝⢀⣤⣄⡀⠀⠙⢷⡀⠀⢱⠀⠀⠈⡇⠀
⠸⡆⠀⠀⠀⠀⠀⠀⠀⠀⡸⠀⠀⠈⠙⣳⢦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠟⣧⠀⢀⣀⣀⡉⠱⣿⣼⣆⢿⠻⣯⡞⠀⢸⡇⠀⢸⣷⣏⢙⣿⡻⡆⠀⠀⢳⠀⠀⠀⠀⠀⢸⡀
⠀⢳⡀⠀⠀⠀⠀⠀⠉⠚⠁⠀⠀⠀⠀⠀⠉⠻⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡏⠈⠁⠀⠀⠉⠢⠈⠛⢻⣿⠿⠛⠁⢀⣿⠇⠀⠈⣿⣿⢿⡟⣧⡷⠀⠀⢸⡄⠀⠀⠀⠀⠈⡇
⠀⠈⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⢧⡀⠀⠀⠀⠢⠤⠔⡽⠁⠚⠉⠉⠉⢗⢷⣄⡠⣀⢻⣆⣀⣠⡿⠋⠀⠀⠀⠈⢿⡷⠿⠟⠁⠀⠀⣼⠀⠀⠀⠀⠀⠀⢱
⠀⠀⠀⠻⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠻⡄⠀⢀⣀⡤⠞⠁⠀⠀⠀⠀⠀⠘⢦⡈⠁⠀⠀⠸⡟⠉⠀⠀⠀⠀⠀⠀⠀⠙⢦⣀⣤⡶⠟⠉⠙⠒⠀⠀⠀⠀⢘
⠀⠀⠀⠀⠈⠳⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡀⠀⡇⣿⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣤⡀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⢠⠞⠍⠠⠤⠒⠂⢄⠀⠀⠀⠀⠀⢸
⠀⠀⠀⠀⠀⠀⠈⠙⠲⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢀⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⡉⠓⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣉⡿⠓⠲⠄⠀⠀⠀⠀⡆
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠶⢤⣤⣄⣀⣠⣤⡤⠶⠛⣿⡀⠀⢢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣄⠀⠀⠉⠙⠒⠲⠤⠤⠤⣤⣤⡤⠖⠚⠁⠀⠀⠀⠀⠀⠀⠀⢰⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣷⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣦⣄⡀⠀⠀⠀⢀⣼⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣧⡀⠀⠙⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢫⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⡱⡀⠀⠀⠣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣔⢹⡉⢻⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡞⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣆⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠳⣥⣠⣹⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣕⢄⠀⠀⠈⠂⠀⠀⠀⠀⠀⠀⠀⠈⠓⠢⠌⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠃⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢷⡦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠋⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠺⢕⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠴⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠻⠤⢄⣀⣀⣀⣀⣀⣀⣠⠤⠴⠒⠊⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

@renatodellosso renatodellosso merged commit ba465f3 into main Dec 10, 2024
4 of 6 checks passed
@renatodellosso renatodellosso deleted the autoformatter branch December 10, 2024 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

developer improvement Improve the codebase in non-user-facing ways

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants