From aac9a81fa3d081b607328a092b6b7eaa420c0422 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Fri, 20 Sep 2024 17:05:18 +0530 Subject: [PATCH 01/77] Fixed broken YouTube playlist downloader in Drifty GUI (#632) * fix(GUI): Fixed broken youtube playlist downloader * fix(GUI): Fixed broken youtube playlist downloader support by centralizing file download data and removing redundant calls to fetch download data * style: format codebase * chore: Fixed linter issues * fix: Fixed CoderabbitAI's reviews and github-advanced-security bot's warnings * chore: Fixed linter issues * style: format codebase --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CLI/src/main/java/backend/FileDownloader.java | 185 ++++-------- .../main/java/backend/ProgressBarThread.java | 12 +- CLI/src/main/java/cli/support/Constants.java | 5 - CLI/src/main/java/cli/utils/Utility.java | 97 +----- CLI/src/main/java/main/Drifty_CLI.java | 284 +++++++----------- .../META-INF/native-image/reflect-config.json | 6 + .../native-image/resource-config.json | 4 - Core/src/main/java/init/Environment.java | 19 +- Core/src/main/java/preferences/Clear.java | 4 + Core/src/main/java/preferences/Get.java | 20 ++ Core/src/main/java/preferences/Labels.java | 1 + Core/src/main/java/preferences/Set.java | 25 ++ Core/src/main/java/support/Constants.java | 16 +- .../java/support/DownloadConfiguration.java | 278 +++++++++++++++++ Core/src/main/java/support/Job.java | 69 ++--- Core/src/main/java/support/JobHistory.java | 2 +- .../src/main/java}/support/Jobs.java | 7 +- Core/src/main/java/utils/Logger.java | 21 +- Core/src/main/java/utils/Utility.java | 209 +++++++++---- GUI/src/main/java/backend/FileDownloader.java | 100 ++---- GUI/src/main/java/gui/preferences/Clear.java | 4 - GUI/src/main/java/gui/preferences/Get.java | 25 -- GUI/src/main/java/gui/preferences/Labels.java | 2 +- GUI/src/main/java/gui/preferences/Set.java | 21 -- GUI/src/main/java/gui/support/Colors.java | 5 +- .../gui/support/GUIDownloadConfiguration.java | 26 ++ .../main/java/gui/utils/MessageBroker.java | 7 +- GUI/src/main/java/main/Drifty_GUI.java | 6 +- GUI/src/main/java/ui/ConfirmationDialog.java | 4 +- .../main/java/ui/FileMetadataRetriever.java | 58 ++++ GUI/src/main/java/ui/GetFilename.java | 203 ------------- GUI/src/main/java/ui/Theme.java | 20 +- GUI/src/main/java/ui/UIController.java | 244 +++++---------- .../META-INF/native-image/reflect-config.json | 9 + 34 files changed, 953 insertions(+), 1045 deletions(-) create mode 100644 Core/src/main/java/support/DownloadConfiguration.java rename {GUI/src/main/java/gui => Core/src/main/java}/support/Jobs.java (91%) create mode 100644 GUI/src/main/java/gui/support/GUIDownloadConfiguration.java create mode 100644 GUI/src/main/java/ui/FileMetadataRetriever.java delete mode 100644 GUI/src/main/java/ui/GetFilename.java diff --git a/CLI/src/main/java/backend/FileDownloader.java b/CLI/src/main/java/backend/FileDownloader.java index b14edadcd..b7dc82c89 100644 --- a/CLI/src/main/java/backend/FileDownloader.java +++ b/CLI/src/main/java/backend/FileDownloader.java @@ -2,8 +2,10 @@ import cli.utils.Utility; import init.Environment; +import properties.LinkType; import properties.Program; import support.DownloadMetrics; +import support.Job; import utils.MessageBroker; import java.io.*; @@ -11,54 +13,40 @@ import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import static cli.support.Constants.*; -import static properties.Program.YT_DLP; -import static utils.Utility.*; +import static utils.Utility.sleep; public class FileDownloader implements Runnable { private static final MessageBroker M = Environment.getMessageBroker(); + private final Job job; private final DownloadMetrics downloadMetrics; private final int numberOfThreads; private final long threadMaxDataSize; private final String dir; - private final boolean isSpotifySong; - private String fileName; private final String link; + private final Path directoryPath; + private final LinkType linkType; + private String fileName; private URL url; - public FileDownloader(String link, String fileName, String dir, boolean isSpotifySong) { - link = link.replace('\\', '/'); - if (!(link.startsWith("http://") || link.startsWith("https://"))) { - link = "https://" + link; - } - if (link.startsWith("https://github.com/") || (link.startsWith("http://github.com/"))) { - if (!link.endsWith("?raw=true")) { - link = link + "?raw=true"; - } - } - this.isSpotifySong = isSpotifySong; - this.link = link; - this.fileName = fileName; - this.dir = dir; + public FileDownloader(Job job) { + this.job = job; + this.link = job.getDownloadLink(); + this.linkType = LinkType.getLinkType(link); + this.fileName = job.getFilename(); + this.dir = job.getDir(); + this.directoryPath = Paths.get(dir); this.downloadMetrics = new DownloadMetrics(); this.numberOfThreads = downloadMetrics.getThreadCount(); this.threadMaxDataSize = downloadMetrics.getMultiThreadingThreshold(); downloadMetrics.setMultithreading(false); } - public String getDir() { - if (dir.endsWith(File.separator)) { - return dir; - } else { - return dir + File.separator; - } - } - private void downloadFile() { try { ReadableByteChannel readableByteChannel; @@ -77,7 +65,6 @@ private void downloadFile() { File file; for (int i = 0; i < numberOfThreads; i++) { file = Files.createTempFile(fileName.hashCode() + String.valueOf(i), ".tmp").toFile(); - file.deleteOnExit(); // Deletes temporary file when JVM exits fileOut = new FileOutputStream(file); start = i == 0 ? 0 : ((i * partSize) + 1); // The start of the range of bytes to be downloaded by the thread end = (numberOfThreads - 1) == i ? totalSize : ((i * partSize) + partSize); // The end of the range of bytes to be downloaded by the thread @@ -88,18 +75,21 @@ private void downloadFile() { downloaderThreads.add(downloader); tempFiles.add(file); } - ProgressBarThread progressBarThread = new ProgressBarThread(fileOutputStreams, partSizes, fileName, getDir(), totalSize, downloadMetrics); + ProgressBarThread progressBarThread = new ProgressBarThread(fileOutputStreams, partSizes, fileName, dir, totalSize, downloadMetrics); progressBarThread.start(); M.msgDownloadInfo(String.format(DOWNLOADING_F, fileName)); // check if all the files are downloaded while (!mergeDownloadedFileParts(fileOutputStreams, partSizes, downloaderThreads, tempFiles)) { sleep(500); } + for (File tempFile : tempFiles) { + Files.deleteIfExists(tempFile.toPath()); + } } else { InputStream urlStream = url.openStream(); readableByteChannel = Channels.newChannel(urlStream); - FileOutputStream fos = new FileOutputStream(getDir() + fileName); - ProgressBarThread progressBarThread = new ProgressBarThread(fos, totalSize, fileName, getDir(), downloadMetrics); + FileOutputStream fos = new FileOutputStream(directoryPath.resolve(fileName).toFile()); + ProgressBarThread progressBarThread = new ProgressBarThread(fos, totalSize, fileName, dir, downloadMetrics); progressBarThread.start(); M.msgDownloadInfo(String.format(DOWNLOADING_F, fileName)); fos.getChannel().transferFrom(readableByteChannel, 0, Long.MAX_VALUE); @@ -107,12 +97,12 @@ private void downloadFile() { urlStream.close(); } downloadMetrics.setActive(false); - // keep the main thread from closing the IO for a short amount of time so UI thread can finish and give output + // keep the main thread from closing the IO for a short amount of time so the UI thread can finish and give output Utility.sleep(1800); } catch (SecurityException e) { - M.msgDownloadError("Write access to \"" + dir + fileName + "\" denied !"); + M.msgDownloadError("Write access to the download directory is DENIED! " + e.getMessage()); } catch (FileNotFoundException fileNotFoundException) { - M.msgDownloadError(FILE_NOT_FOUND); + M.msgDownloadError(FILE_NOT_FOUND_ERROR); } catch (IOException e) { M.msgDownloadError(FAILED_TO_DOWNLOAD_CONTENTS + e.getMessage()); } @@ -121,41 +111,47 @@ private void downloadFile() { } } - public void downloadFromYouTube() { - String outputFileName = Objects.requireNonNullElse(fileName, DEFAULT_FILENAME); - String fileDownloadMessage; - if (outputFileName.equals(DEFAULT_FILENAME)) { - fileDownloadMessage = "the YouTube Video"; - } else { - fileDownloadMessage = outputFileName; - } - M.msgDownloadInfo("Trying to download \"" + fileDownloadMessage + "\" ..."); - ProcessBuilder processBuilder = new ProcessBuilder(Program.get(YT_DLP), "--quiet", "--progress", "-P", dir, link, "-o", outputFileName, "-f", (isSpotifySong ? "bestaudio" : "mp4")); + private void downloadYoutubeOrInstagram(boolean isSpotifySong) { + String[] fullCommand = new String[]{Program.get(Program.YT_DLP), "--quiet", "--progress", "-P", dir, link, "-o", fileName, "-f", (isSpotifySong ? "bestaudio" : "mp4")}; + ProcessBuilder processBuilder = new ProcessBuilder(fullCommand); processBuilder.inheritIO(); - M.msgDownloadInfo(String.format(DOWNLOADING_F, fileDownloadMessage)); - int exitValueOfYtDlp = -1; + M.msgDownloadInfo(String.format(DOWNLOADING_F, fileName)); + Process process; + int exitValueOfYtDlp = 1; try { - Process ytDlp = processBuilder.start(); - ytDlp.waitFor(); - exitValueOfYtDlp = ytDlp.exitValue(); + process = processBuilder.start(); + process.waitFor(); + exitValueOfYtDlp = process.exitValue(); } catch (IOException e) { - M.msgDownloadError("An I/O error occurred while initialising YouTube video downloader! " + e.getMessage()); - } catch (InterruptedException e) { - M.msgDownloadError("The YouTube video download process was interrupted by user! " + e.getMessage()); + M.msgDownloadError("Failed to start download process for \"" + fileName + "\""); + } catch (Exception e) { + String msg = e.getMessage(); + String[] messageArray = msg.split(","); + if (messageArray.length >= 1 && messageArray[0].toLowerCase().trim().replaceAll(" ", "").contains("cannotrunprogram")) { // If yt-dlp program is not marked as executable + M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE_ERROR); + } else if (messageArray.length >= 1 && "permissiondenied".equals(messageArray[1].toLowerCase().trim().replaceAll(" ", ""))) { // If a private YouTube / Instagram video is asked to be downloaded + M.msgDownloadError(PERMISSION_DENIED_ERROR); + } else if ("videounavailable".equals(messageArray[0].toLowerCase().trim().replaceAll(" ", ""))) { // If YouTube / Instagram video is unavailable + M.msgDownloadError(VIDEO_UNAVAILABLE_ERROR); + } else { + M.msgDownloadError("An Unknown Error occurred! " + e.getMessage()); + } } if (exitValueOfYtDlp == 0) { - M.msgDownloadInfo(String.format(SUCCESSFULLY_DOWNLOADED_F, fileDownloadMessage)); + M.msgDownloadInfo(String.format(SUCCESSFULLY_DOWNLOADED_F, fileName)); if (isSpotifySong) { - M.msgDownloadInfo("Converting to mp3..."); - String conversionProcessMessage = convertToMp3(Paths.get(dir, fileName).toAbsolutePath()); + M.msgDownloadInfo("Converting to mp3 ..."); + String conversionProcessMessage = utils.Utility.convertToMp3(directoryPath.resolve(fileName).toAbsolutePath()); if (conversionProcessMessage.contains("Failed")) { M.msgDownloadError(conversionProcessMessage); } else { - M.msgDownloadInfo(conversionProcessMessage); + M.msgDownloadInfo("Successfully converted to mp3!"); } } } else if (exitValueOfYtDlp == 1) { - M.msgDownloadError(String.format(FAILED_TO_DOWNLOAD_F, fileDownloadMessage)); + M.msgDownloadError(String.format(FAILED_TO_DOWNLOAD_F, fileName)); + } else { + M.msgDownloadError("An Unknown Error occurred! Exit code: " + exitValueOfYtDlp); } } @@ -179,18 +175,18 @@ public boolean mergeDownloadedFileParts(List fileOutputStreams } // check if it is merged-able if (completed == numberOfThreads) { - fileOutputStream = new FileOutputStream(getDir() + fileName); - long position = 0; - for (int i = 0; i < numberOfThreads; i++) { - File f = tempFiles.get(i); - FileInputStream fs = new FileInputStream(f); - ReadableByteChannel rbs = Channels.newChannel(fs); - fileOutputStream.getChannel().transferFrom(rbs, position, f.length()); - position += f.length(); - fs.close(); - rbs.close(); + try (FileOutputStream fos = new FileOutputStream(directoryPath.resolve(fileName).toFile())) { + long position = 0; + for (int i = 0; i < numberOfThreads; i++) { + File f = tempFiles.get(i); + FileInputStream fs = new FileInputStream(f); + ReadableByteChannel rbs = Channels.newChannel(fs); + fos.getChannel().transferFrom(rbs, position, f.length()); + position += f.length(); + fs.close(); + rbs.close(); + } } - fileOutputStream.close(); return true; } return false; @@ -198,37 +194,10 @@ public boolean mergeDownloadedFileParts(List fileOutputStreams @Override public void run() { - boolean isYouTubeLink = isYoutube(link); - boolean isInstagramLink = isInstagram(link); try { // If the link is of a YouTube or Instagram video, then the following block of code will execute. - if (isYouTubeLink || isInstagramLink) { - try { - if (isYouTubeLink) { - downloadFromYouTube(); - } else { - downloadFromInstagram(); - } - } catch (InterruptedException e) { - M.msgDownloadError(USER_INTERRUPTION); - } catch (Exception e) { - if (isYouTubeLink) { - M.msgDownloadError(YOUTUBE_DOWNLOAD_FAILED); - } else { - M.msgDownloadError(INSTAGRAM_DOWNLOAD_FAILED); - } - String msg = e.getMessage(); - String[] messageArray = msg.split(","); - if (messageArray.length >= 1 && messageArray[0].toLowerCase().trim().replaceAll(" ", "").contains("cannotrunprogram")) { // If yt-dlp program is not marked as executable - M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE); - } else if (messageArray.length >= 1 && "permissiondenied".equals(messageArray[1].toLowerCase().trim().replaceAll(" ", ""))) { // If a private YouTube / Instagram video is asked to be downloaded - M.msgDownloadError(PERMISSION_DENIED); - } else if ("videounavailable".equals(messageArray[0].toLowerCase().trim().replaceAll(" ", ""))) { // If YouTube / Instagram video is unavailable - M.msgDownloadError(VIDEO_UNAVAILABLE); - } else { - M.msgDownloadError("An Unknown Error occurred! " + e.getMessage()); - } - } + if (linkType.equals(LinkType.YOUTUBE) || linkType.equals(LinkType.INSTAGRAM)) { + downloadYoutubeOrInstagram(LinkType.getLinkType(job.getSourceLink()).equals(LinkType.SPOTIFY)); } else { url = new URI(link).toURL(); URLConnection openConnection = url.openConnection(); @@ -250,26 +219,4 @@ public void run() { M.msgDownloadError(String.format(FAILED_CONNECTION_F, url)); } } - - private void downloadFromInstagram() throws InterruptedException, IOException { - String outputFileName = Objects.requireNonNullElse(fileName, DEFAULT_FILENAME); - String fileDownloadMessage; - if (outputFileName.equals(DEFAULT_FILENAME)) { - fileDownloadMessage = "the Instagram Video"; - } else { - fileDownloadMessage = outputFileName; - } - M.msgDownloadInfo("Trying to download \"" + fileDownloadMessage + "\" ..."); - ProcessBuilder processBuilder = new ProcessBuilder(Program.get(YT_DLP), "--quiet", "--progress", "-P", dir, link, "-o", outputFileName); // The command line arguments tell `yt-dlp` to download the video and to save it to the specified directory. - processBuilder.inheritIO(); - M.msgDownloadInfo(String.format(DOWNLOADING_F, fileDownloadMessage)); - Process instagramDownloadProcess = processBuilder.start(); // Starts the download process - instagramDownloadProcess.waitFor(); - int exitStatus = instagramDownloadProcess.exitValue(); - if (exitStatus == 0) { - M.msgDownloadInfo(String.format(SUCCESSFULLY_DOWNLOADED_F, fileDownloadMessage)); - } else if (exitStatus == 1) { - M.msgDownloadError(String.format(FAILED_TO_DOWNLOAD_F, fileDownloadMessage)); - } - } } diff --git a/CLI/src/main/java/backend/ProgressBarThread.java b/CLI/src/main/java/backend/ProgressBarThread.java index 45985d667..0ed84e95d 100644 --- a/CLI/src/main/java/backend/ProgressBarThread.java +++ b/CLI/src/main/java/backend/ProgressBarThread.java @@ -8,6 +8,7 @@ import java.io.FileOutputStream; import java.io.IOException; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -150,14 +151,15 @@ private String generateProgressBar() { private void cleanup() { downloadMetrics.setProgressPercent(0f); + String path = Paths.get(dir).resolve(fileName).toAbsolutePath().toString(); if (isMultiThreadedDownloading) { String sizeWithUnit = UnitConverter.format(totalDownloadedBytes, 2); - System.out.println(); - M.msgDownloadInfo(SUCCESSFULLY_DOWNLOADED + fileName + OF_SIZE + sizeWithUnit + " at " + dir + fileName); + System.out.print("\r"); + M.msgDownloadInfo(String.format(SUCCESSFULLY_DOWNLOADED_F, fileName) + OF_SIZE + sizeWithUnit + " at \"" + path + "\""); } else if (downloadedBytes == totalDownloadedBytes) { String sizeWithUnit = UnitConverter.format(downloadedBytes, 2); - System.out.println(); - M.msgDownloadInfo(SUCCESSFULLY_DOWNLOADED + fileName + OF_SIZE + sizeWithUnit + " at " + dir + fileName); + System.out.print("\r"); + M.msgDownloadInfo(String.format(SUCCESSFULLY_DOWNLOADED_F, fileName) + OF_SIZE + sizeWithUnit + " at \"" + path + "\""); } else { System.out.println(); M.msgDownloadError(DOWNLOAD_FAILED); @@ -209,7 +211,7 @@ public void run() { } } } catch (IOException e) { - M.msgDownloadError("Error while downloading " + fileName + " : " + e.getMessage()); + M.msgDownloadError("Error while downloading \"" + fileName + "\" : " + e.getMessage()); } finally { downloading = downloadMetrics.isActive(); } diff --git a/CLI/src/main/java/cli/support/Constants.java b/CLI/src/main/java/cli/support/Constants.java index cef32bd13..bfb03b90a 100644 --- a/CLI/src/main/java/cli/support/Constants.java +++ b/CLI/src/main/java/cli/support/Constants.java @@ -32,12 +32,7 @@ public class Constants extends support.Constants { public static final String BANNER_BORDER = "===================================================================="; public static final String FAILED_TO_DOWNLOAD_CONTENTS = "Failed to download the contents ! "; public static final String FAILED_READING_STREAM = "Failed to get I/O operations channel to read from the data stream !"; - public static final String DEFAULT_FILENAME = "%(title)s.%(ext)s"; - public static final String SUCCESSFULLY_DOWNLOADED = "Successfully downloaded "; public static final String OF_SIZE = " of size "; public static final String DOWNLOAD_FAILED = "Download failed!"; - public static final String USER_INTERRUPTION = "User interrupted while downloading the YouTube/Instagram Video!"; - public static final String YOUTUBE_DOWNLOAD_FAILED = "Failed to download YouTube video!"; - public static final String INSTAGRAM_DOWNLOAD_FAILED = "Failed to download Instagram video!"; public static final String ENTER_Y_OR_N = "Please enter Y for yes and N for no!"; } diff --git a/CLI/src/main/java/cli/utils/Utility.java b/CLI/src/main/java/cli/utils/Utility.java index 331c3546f..c2cd4d50a 100644 --- a/CLI/src/main/java/cli/utils/Utility.java +++ b/CLI/src/main/java/cli/utils/Utility.java @@ -1,62 +1,26 @@ package cli.utils; import cli.init.Environment; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; -import java.util.*; +import java.util.Scanner; -import static cli.support.Constants.*; +import static cli.support.Constants.ENTER_Y_OR_N; public class Utility extends utils.Utility { private static final Scanner SC = ScannerFactory.getInstance(); - public static String findFilenameInLink(String link) { - String filename = ""; - if (isInstagram(link) || isYoutube(link)) { - LinkedList linkMetadataList = Utility.getYtDlpMetadata(link); - for (String json : Objects.requireNonNull(linkMetadataList)) { - filename = Utility.getFilenameFromJson(json); - } - if (filename.isEmpty()) { - msgBroker.msgFilenameError("Filename detection failed: No filename found in metadata!"); - return null; - } - } else { - // Example: "example.com/file.txt" prints "Filename detected: file.txt" - // example.com/file.json -> file.json - String file = link.substring(link.lastIndexOf("/") + 1); - if (file.isEmpty()) { - msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - return null; - } - int index = file.lastIndexOf("."); - if (index < 0) { - msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - return null; - } - String extension = file.substring(index); - // edge case 1: "example.com/." - if (extension.length() == 1) { - msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - return null; - } - // file.png?width=200 -> file.png - filename = file.split("([?])")[0]; - msgBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + filename + "\""); - } - return filename; - } - - public boolean yesNoValidation(String input, String printMessage) { + public boolean yesNoValidation(String input, String printMessage, boolean isWarning) { while (input.isEmpty()) { Environment.getMessageBroker().msgInputError(ENTER_Y_OR_N, true); msgBroker.msgLogError(ENTER_Y_OR_N); - Environment.getMessageBroker().msgInputInfo(printMessage, false); + if (isWarning) { + Environment.getMessageBroker().msgHistoryWarning(printMessage, false); + } else { + Environment.getMessageBroker().msgInputInfo(printMessage, false); + } input = SC.nextLine().toLowerCase(); } char choice = input.charAt(0); @@ -67,49 +31,14 @@ public boolean yesNoValidation(String input, String printMessage) { } else { Environment.getMessageBroker().msgInputError("Invalid input!", true); msgBroker.msgLogError("Invalid input!"); - Environment.getMessageBroker().msgInputInfo(printMessage, false); - input = SC.nextLine().toLowerCase(); - return yesNoValidation(input, printMessage); - } - } - - public static String getSpotifyDownloadLink(String spotifyMetadataJson) { - JsonObject jsonObject = JsonParser.parseString(spotifyMetadataJson).getAsJsonObject(); - String songName = jsonObject.get("songName").getAsString(); - int duration = jsonObject.get("duration").getAsInt(); - JsonArray artists = jsonObject.get("artists").getAsJsonArray(); - ArrayList artistNames = new ArrayList<>(artists.size()); - for (int i = 0; i < artists.size(); i++) { - artistNames.add(artists.get(i).getAsString()); - } - String query = (String.join(", ", artistNames) + " - " + songName).toLowerCase(); - ArrayList> searchResults = getYoutubeSearchResults(query, true); - boolean searchedWithFilters = true; - if (searchResults == null) { - msgBroker.msgLogError("Failed to get search results for the song with filters! Trying without filters ..."); - searchResults = getYoutubeSearchResults(query, false); - searchedWithFilters = false; - if (searchResults == null) { - msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); - return null; - } - } - String matchedId = getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); - if (matchedId.isEmpty()) { - if (searchedWithFilters) { - msgBroker.msgLogError("Failed to get a matching video ID for the song with filters! Trying without filters ..."); - searchResults = getYoutubeSearchResults(query, false); - matchedId = getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); - if (matchedId.isEmpty()) { - msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); - return null; - } + if (isWarning) { + Environment.getMessageBroker().msgHistoryWarning(printMessage, false); } else { - msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); - return null; + Environment.getMessageBroker().msgInputInfo(printMessage, false); } + input = SC.nextLine().toLowerCase(); + return yesNoValidation(input, printMessage, isWarning); } - return "https://www.youtube.com/watch?v=" + matchedId; } public static Yaml getYamlParser() { diff --git a/CLI/src/main/java/main/Drifty_CLI.java b/CLI/src/main/java/main/Drifty_CLI.java index c5609029e..75ed0e359 100644 --- a/CLI/src/main/java/main/Drifty_CLI.java +++ b/CLI/src/main/java/main/Drifty_CLI.java @@ -6,15 +6,14 @@ import cli.utils.MessageBroker; import cli.utils.ScannerFactory; import cli.utils.Utility; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import org.apache.commons.io.FileUtils; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.error.YAMLException; import preferences.AppSettings; +import properties.LinkType; import properties.MessageType; import properties.OS; import properties.Program; +import support.DownloadConfiguration; import support.Job; import support.JobHistory; import updater.UpdateChecker; @@ -23,20 +22,22 @@ import java.io.*; import java.net.URI; import java.net.URISyntaxException; -import java.nio.charset.Charset; import java.nio.file.*; import java.util.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import static cli.support.Constants.*; -import static cli.utils.Utility.*; +import static cli.utils.Utility.isURL; +import static cli.utils.Utility.sleep; public class Drifty_CLI { public static final Logger LOGGER = Logger.getInstance(); protected static final Scanner SC = ScannerFactory.getInstance(); protected static JobHistory jobHistory; - protected static boolean isYoutubeURL; - protected static boolean isInstagramLink; - protected static boolean isSpotifyLink; + private static LinkType linkType; private static MessageBroker messageBroker; private static String link; private static String downloadsFolder; @@ -62,8 +63,6 @@ public static void main(String[] args) { printBanner(); if (args.length > 0) { link = null; - String name = null; - String location = null; for (int i = 0; i < args.length; i++) { switch (args[i]) { case HELP_FLAG, HELP_FLAG_SHORT -> { @@ -72,7 +71,7 @@ public static void main(String[] args) { } case NAME_FLAG, NAME_FLAG_SHORT -> { if (i + 1 < args.length) { - name = args[i + 1]; + fileName = args[i + 1]; i++; // Skip the next iteration as we have already processed this argument } else { messageBroker.msgInitError("No filename specified!"); @@ -81,7 +80,7 @@ public static void main(String[] args) { } case LOCATION_FLAG, LOCATION_FLAG_SHORT -> { if (i + 1 < args.length) { - location = args[i + 1]; + downloadsFolder = args[i + 1]; i++; // Skip the next iteration as we have already processed this argument } else { messageBroker.msgInitError("No download directory specified!"); @@ -143,7 +142,7 @@ public static void main(String[] args) { if ("all".equalsIgnoreCase(args[i + 1])) { messageBroker.msgInputInfo(REMOVE_ALL_URL_CONFIRMATION, false); String choiceString = SC.nextLine().toLowerCase(); - boolean choice = utility.yesNoValidation(choiceString, REMOVE_ALL_URL_CONFIRMATION); + boolean choice = utility.yesNoValidation(choiceString, REMOVE_ALL_URL_CONFIRMATION, false); if (choice) { removeAllUrls(); } @@ -183,6 +182,10 @@ public static void main(String[] args) { } } if (!batchDownloading) { + if (link == null) { + messageBroker.msgInitError("No URL specified! Exiting..."); + Environment.terminate(1); + } boolean isUrlValid; if (Utility.isURL(link)) { isUrlValid = Utility.isLinkValid(link); @@ -191,39 +194,12 @@ public static void main(String[] args) { messageBroker.msgLinkError(INVALID_LINK); } if (isUrlValid) { - isYoutubeURL = isYoutube(link); - isInstagramLink = isInstagram(link); - isSpotifyLink = isSpotify(link); - downloadsFolder = location; + linkType = LinkType.getLinkType(link); downloadsFolder = getProperDownloadsFolder(downloadsFolder); - if ((name == null) && (fileName == null || fileName.isEmpty())) { - if (isSpotifyLink && link.contains("playlist")) { - handleSpotifyPlaylist(); - } else { - if (isInstagram(link)) { - link = formatInstagramLink(link); - } - messageBroker.msgFilenameInfo("Retrieving filename from link..."); - HashMap spotifyMetadata; - if (isSpotifyLink) { - spotifyMetadata = Utility.getSpotifySongMetadata(link); - if (spotifyMetadata != null && !spotifyMetadata.isEmpty()) { - fileName = spotifyMetadata.get("name").toString() + ".webm"; - messageBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + fileName + "\""); - } else { - messageBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - } - } else { - fileName = findFilenameInLink(link); - } - if (fileName != null && !fileName.isEmpty()) { - verifyJobAndDownload(false); - } - } + if (linkType.equals(LinkType.SPOTIFY) && link.contains("playlist")) { + handleSpotifyPlaylist(); } else { - fileName = name; - messageBroker.msgFilenameInfo("Filename provided : " + fileName); - verifyJobAndDownload(false); + verifyJobAndDownload(); } } } @@ -235,12 +211,11 @@ public static void main(String[] args) { messageBroker.msgInputInfo("Select download option :", true); messageBroker.msgInputInfo("\t1. Batch Download (Download Multiple files)", true); messageBroker.msgInputInfo("\t2. Single File Download (Download One file at a time)", true); - int choice = SC.nextInt(); - if (choice == 1) { + String choice = SC.nextLine().strip(); + if ("1".equals(choice)) { batchDownloading = true; messageBroker.msgInputInfo("Enter the path to the YAML data file : ", false); - batchDownloadingFile = SC.next(); - SC.nextLine(); + batchDownloadingFile = SC.nextLine().split(" ")[0]; if (!(batchDownloadingFile.endsWith(".yml") || batchDownloadingFile.endsWith(".yaml"))) { messageBroker.msgBatchError("The data file should be a YAML file!"); } else { @@ -250,7 +225,7 @@ public static void main(String[] args) { batchDownloader(); break; } - } else if (choice == 2) { + } else if ("2".equals(choice)) { batchDownloading = false; break; } else { @@ -259,8 +234,7 @@ public static void main(String[] args) { } if (!batchDownloading) { messageBroker.msgInputInfo(ENTER_FILE_LINK, false); - link = SC.next().strip(); - SC.nextLine(); + link = SC.nextLine().strip(); messageBroker.msgInputInfo("Validating link...", true); if (Utility.isURL(link)) { Utility.isLinkValid(link); @@ -268,47 +242,23 @@ public static void main(String[] args) { messageBroker.msgLinkError(INVALID_LINK); continue; } + linkType = LinkType.getLinkType(link); messageBroker.msgInputInfo("Download directory (\".\" for default or \"L\" for " + AppSettings.GET.lastDownloadFolder() + ") : ", false); - downloadsFolder = SC.next().strip(); + downloadsFolder = SC.nextLine().split(" ")[0]; downloadsFolder = getProperDownloadsFolder(downloadsFolder); - isYoutubeURL = isYoutube(link); - isInstagramLink = isInstagram(link); - isSpotifyLink = isSpotify(link); - if (isSpotifyLink) { - if (link.contains("playlist")) { - handleSpotifyPlaylist(); - } else { - messageBroker.msgFilenameInfo("Retrieving filename from link..."); - HashMap spotifyMetadata = Utility.getSpotifySongMetadata(link); - if (spotifyMetadata != null && !spotifyMetadata.isEmpty()) { - fileName = spotifyMetadata.get("songName").toString() + ".webm"; - messageBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + fileName + "\""); - } else { - messageBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - } - if (fileName != null && !fileName.isEmpty()) { - verifyJobAndDownload(true); - } - } + if (linkType.equals(LinkType.SPOTIFY) && link.contains("playlist")) { + handleSpotifyPlaylist(); } else { - if (isInstagram(link)) { - link = formatInstagramLink(link); - } - messageBroker.msgFilenameInfo("Retrieving filename from link..."); - fileName = findFilenameInLink(link); - if (fileName != null && !fileName.isEmpty()) { - verifyJobAndDownload(true); - } else { - messageBroker.msgFilenameError("Failed to retrieve filename from link!"); - } + verifyJobAndDownload(); } } messageBroker.msgInputInfo(QUIT_OR_CONTINUE, true); - String choice = SC.next().toLowerCase().strip(); + String choice = SC.nextLine().split(" ")[0].toLowerCase(); if ("q".equals(choice)) { LOGGER.log(MessageType.INFO, CLI_APPLICATION_TERMINATED); break; } + fileName = null; printBanner(); } Environment.terminate(0); @@ -354,7 +304,7 @@ private static void handleUpdateAvailable(boolean askForInstallingUpdate) { private static boolean getUserConfirmation() { messageBroker.msgUpdateInfo("Do you want to download the update? (Enter Y for yes and N for no) : "); String choiceString = SC.nextLine().toLowerCase(); - return utility.yesNoValidation(choiceString, "Do you want to download the update? (Enter Y for yes and N for no) : "); + return utility.yesNoValidation(choiceString, "Do you want to download the update? (Enter Y for yes and N for no) : ", false); } private static void downloadAndUpdate() { @@ -394,7 +344,7 @@ private static boolean downloadUpdate() { File tmpFolder = Files.createTempDirectory("Drifty").toFile(); tmpFolder.deleteOnExit(); File latestExecutableFile = Paths.get(tmpFolder.getPath()).resolve(currentExecutableFile.getName()).toFile(); - FileDownloader downloader = new FileDownloader(updateURL.toString(), currentExecutableFile.getName(), tmpFolder.toString(), false); + FileDownloader downloader = new FileDownloader(new Job(updateURL.toString(), tmpFolder.toString(), currentExecutableFile.getName(), updateURL.toString())); downloader.run(); if (latestExecutableFile.exists() && latestExecutableFile.isFile() && latestExecutableFile.length() > 0) { // If the latest executable was successfully downloaded, set the executable permission and execute the update. @@ -432,21 +382,26 @@ private static void printVersion() { private static void handleSpotifyPlaylist() { messageBroker.msgFilenameInfo("Retrieving the number of tracks in the playlist..."); - ArrayList> playlistMetadata = Utility.getSpotifyPlaylistMetadata(link); - if (!batchDownloading) { - SC.nextLine(); // To remove 'whitespace' from input buffer. The whitespace will not be present in the input buffer if the user is using batch downloading because only yml file is parsed but no user input is taken. + DownloadConfiguration config = new DownloadConfiguration(link, downloadsFolder, null); + try (ExecutorService executor = Executors.newSingleThreadExecutor()) { + Future future = executor.submit(config::fetchFileData); + future.get(); + } catch (ExecutionException e) { + messageBroker.msgLinkError("Failed to retrieve spotify playlist metadata! " + e.getMessage()); + } catch (InterruptedException e) { + messageBroker.msgLinkError("User interrupted the process of retrieving spotify playlist metadata! " + e.getMessage()); } - if (playlistMetadata != null && !playlistMetadata.isEmpty()) { - for (HashMap songMetadata : playlistMetadata) { + ArrayList> playlistData = config.getFileData(); + if (playlistData != null && !playlistData.isEmpty()) { + int numberOfTracks = playlistData.size(); + for (HashMap songData : playlistData) { messageBroker.msgStyleInfo(BANNER_BORDER); - messageBroker.msgLinkInfo("[" + (playlistMetadata.indexOf(songMetadata) + 1) + "/" + playlistMetadata.size() + "] " + "Processing link : " + songMetadata.get("link")); - link = songMetadata.get("link").toString(); - fileName = cleanFilename(songMetadata.get("songName").toString()) + ".webm"; + link = songData.get("link").toString(); + messageBroker.msgLinkInfo("[" + (playlistData.indexOf(songData) + 1) + "/" + numberOfTracks + "] " + "Processing link : " + link); + fileName = songData.get("filename").toString(); + String downloadLink = songData.get("downloadLink").toString(); messageBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + fileName + "\""); - songMetadata.remove("link"); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String songMetadataJson = gson.toJson(songMetadata); - checkHistoryAndDownload(new Job(link, downloadsFolder, fileName, songMetadataJson, false), false); + checkHistoryAndDownload(new Job(link, downloadsFolder, fileName, downloadLink)); } } else { messageBroker.msgLinkError("Failed to retrieve playlist metadata!"); @@ -515,9 +470,7 @@ private static void batchDownloader() { messageBroker.msgLinkError("Invalid URL : " + link); continue; } - isYoutubeURL = isYoutube(link); - isInstagramLink = isInstagram(link); - isSpotifyLink = isSpotify(link); + linkType = LinkType.getLinkType(link); if (".".equals(downloadsFolder)) { downloadsFolder = Utility.getHomeDownloadFolder(); } else if ("L".equalsIgnoreCase(downloadsFolder)) { @@ -531,32 +484,11 @@ private static void batchDownloader() { } if (data.containsKey("fileNames") && !data.get("fileNames").get(i).isEmpty()) { fileName = data.get("fileNames").get(i); - } else { - if (isSpotifyLink && link.contains("playlist")) { - fileName = null; - } else { - if (isInstagram(link)) { - link = formatInstagramLink(link); - } - messageBroker.msgFilenameInfo("Retrieving filename from link..."); - if (isSpotifyLink) { - HashMap spotifyMetadata = Utility.getSpotifySongMetadata(link); - if (spotifyMetadata != null && !spotifyMetadata.isEmpty()) { - fileName = spotifyMetadata.get("songName").toString() + ".webm"; - messageBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + fileName + "\""); - } else { - fileName = cleanFilename("Unknown_Filename_") + randomString(15) + ".webm"; - messageBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - } - } else { - fileName = findFilenameInLink(link); - } - } } - if (isSpotifyLink && link.contains("playlist")) { + if (linkType.equals(LinkType.SPOTIFY) && link.contains("playlist")) { handleSpotifyPlaylist(); - } else if (fileName != null && !fileName.isEmpty()) { - verifyJobAndDownload(false); + } else { + verifyJobAndDownload(); } } } catch (IOException e) { @@ -573,23 +505,22 @@ private static void batchDownloader() { } } - private static void renameFilenameIfRequired(boolean removeInputBufferFirst) { // Asks the user if the detected filename is to be used or not. If not, then the user is asked to enter a filename. - if ((fileName == null || (fileName.isEmpty())) && (!isYoutubeURL && !isInstagramLink && !isSpotifyLink)) { + private static void renameFilenameIfRequired() { // Asks the user if the detected filename is to be used or not. If not, then the user is asked to enter a filename. + if ((fileName == null || (fileName.isEmpty())) && linkType.equals(LinkType.OTHER)) { messageBroker.msgInputInfo(ENTER_FILE_NAME_WITH_EXTENSION, false); - if (removeInputBufferFirst) { - SC.nextLine(); - } fileName = SC.nextLine(); } else { messageBroker.msgInputInfo("Would you like to use this filename? (Enter Y for yes and N for no) : ", false); - if (removeInputBufferFirst) { - SC.nextLine(); // To remove 'whitespace' from input buffer. The whitespace will not be present in the input buffer if the user is using batch downloading because only yml file is parsed but no user input is taken. - } String choiceString = SC.nextLine().toLowerCase(); - boolean choice = utility.yesNoValidation(choiceString, "Would you like to use this filename? (Enter Y for yes and N for no) : "); + boolean choice = utility.yesNoValidation(choiceString, "Would you like to use this filename? (Enter Y for yes and N for no) : ", false); if (!choice) { messageBroker.msgInputInfo(ENTER_FILE_NAME_WITH_EXTENSION, false); - fileName = SC.nextLine(); + String tempFileName = SC.nextLine(); + if (tempFileName.isEmpty()) { + messageBroker.msgFilenameError("No filename specified! Using the detected filename."); + } else { + fileName = tempFileName; + } } } } @@ -657,29 +588,44 @@ public static void printBanner() { System.out.println(ANSI_PURPLE + BANNER_BORDER + ANSI_RESET); } - private static void verifyJobAndDownload(boolean removeInputBufferFirst) { - Job job; - if (isSpotifyLink) { - File spotifyMetadataFile = Program.getJsonDataPath().resolve("spotify-metadata.json").toFile(); - if (spotifyMetadataFile.exists()) { - try { - String json = FileUtils.readFileToString(spotifyMetadataFile, Charset.defaultCharset()); - job = new Job(link, downloadsFolder, fileName, json, false); - } catch (IOException e) { - messageBroker.msgFilenameError("Failed to read Spotify metadata file! " + e.getMessage()); - return; + private static void verifyJobAndDownload() { + DownloadConfiguration config = new DownloadConfiguration(link, downloadsFolder, fileName); + config.sanitizeLink(); + messageBroker.msgFilenameInfo("Retrieving file data..."); + try (ExecutorService executor = Executors.newSingleThreadExecutor()) { + Future future = executor.submit(config::fetchFileData); + future.get(); + } catch (ExecutionException e) { + messageBroker.msgLinkError("Failed to retrieve file metadata! " + e.getMessage()); + } catch (InterruptedException e) { + messageBroker.msgLinkError("User interrupted the process of retrieving file metadata! " + e.getMessage()); + } + if (config.getStatusCode() != 0) { + messageBroker.msgLinkError("Failed to fetch file data!"); + return; + } + ArrayList> fileData = config.getFileData(); + if (fileData != null && !fileData.isEmpty()) { + for (HashMap data : fileData) { + link = data.get("link").toString(); + fileName = data.get("filename").toString(); + String downloadLink = null; + if (data.containsKey("downloadLink")) { + downloadLink = data.get("downloadLink").toString(); } - } else { - messageBroker.msgFilenameError("Spotify metadata file not found!"); - return; + if (fileData.size() > 1) { + messageBroker.msgStyleInfo(BANNER_BORDER); + messageBroker.msgLinkInfo("[" + (fileData.indexOf(data) + 1) + "/" + fileData.size() + "] " + "Processing link : " + link); + } + messageBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + fileName + "\""); + checkHistoryAndDownload(new Job(link, downloadsFolder, fileName, downloadLink)); } } else { - job = new Job(link, downloadsFolder, fileName, false); + checkHistoryAndDownload(new Job(link, downloadsFolder, fileName, null)); } - checkHistoryAndDownload(job, removeInputBufferFirst); } - private static void checkHistoryAndDownload(Job job, boolean removeInputBufferFirst) { + private static void checkHistoryAndDownload(Job job) { boolean doesFileExist = job.fileExists(); boolean hasHistory = jobHistory.exists(link); boolean fileExistsHasHistory = doesFileExist && hasHistory; @@ -687,47 +633,37 @@ private static void checkHistoryAndDownload(Job job, boolean removeInputBufferFi if (fileExistsNoHistory) { fileName = Utility.renameFile(fileName, downloadsFolder); messageBroker.msgHistoryWarning(String.format(MSG_FILE_EXISTS_NO_HISTORY + "\n", job.getFilename(), job.getDir(), fileName), false); - renameFilenameIfRequired(true); - if (isSpotifyLink) { - messageBroker.msgDownloadInfo("Trying to get download link for \"" + link + "\""); - link = Utility.getSpotifyDownloadLink(job.getSpotifyMetadataJson()); - } + renameFilenameIfRequired(); if (link != null) { - job = new Job(link, downloadsFolder, fileName, false); + job = new Job(link, downloadsFolder, fileName, null); jobHistory.addJob(job, true); - FileDownloader downloader = new FileDownloader(link, fileName, downloadsFolder, isSpotifyLink); + FileDownloader downloader = new FileDownloader(job); downloader.run(); } } else if (fileExistsHasHistory) { messageBroker.msgHistoryWarning(String.format(MSG_FILE_EXISTS_HAS_HISTORY, job.getFilename(), job.getDir()), false); - if (removeInputBufferFirst) { - SC.nextLine(); - } String choiceString = SC.nextLine().toLowerCase(); - boolean choice = utility.yesNoValidation(choiceString, String.format(MSG_FILE_EXISTS_HAS_HISTORY, job.getFilename(), job.getDir())); + boolean choice = utility.yesNoValidation(choiceString, String.format(MSG_FILE_EXISTS_HAS_HISTORY, job.getFilename(), job.getDir()), true); if (choice) { fileName = Utility.renameFile(fileName, downloadsFolder); messageBroker.msgFilenameInfo("New file name : " + fileName); - renameFilenameIfRequired(false); - if (isSpotifyLink) { - link = Utility.getSpotifyDownloadLink(link); - } + renameFilenameIfRequired(); if (link != null) { - job = new Job(link, downloadsFolder, fileName, false); + job = new Job(link, downloadsFolder, fileName, null); jobHistory.addJob(job, true); - FileDownloader downloader = new FileDownloader(link, fileName, downloadsFolder, isSpotifyLink); + FileDownloader downloader = new FileDownloader(job); downloader.run(); } + } else { + messageBroker.msgHistoryWarning("Download cancelled!", false); + System.out.println(); } } else { jobHistory.addJob(job, true); - renameFilenameIfRequired(removeInputBufferFirst); - if (isSpotifyLink) { - messageBroker.msgDownloadInfo("Trying to get download link for \"" + link + "\""); - link = Utility.getSpotifyDownloadLink(job.getSpotifyMetadataJson()); - } + renameFilenameIfRequired(); if (link != null) { - FileDownloader downloader = new FileDownloader(link, fileName, downloadsFolder, isSpotifyLink); + job = new Job(link, downloadsFolder, fileName, job.getDownloadLink()); + FileDownloader downloader = new FileDownloader(job); downloader.run(); } } @@ -766,7 +702,7 @@ private static String normalizeUrl(String urlString) { } private static void ensureYamlFileExists() { - // Check if the links queue file exists, and create it if it doesn't + // Check if the links queue file exists and create it if it doesn't File yamlFile = new File(yamlFilePath); messageBroker.msgLogInfo("Checking if links queue file (" + yamlFilePath + ") exists..."); if (!yamlFile.exists()) { diff --git a/CLI/src/main/resources/META-INF/native-image/reflect-config.json b/CLI/src/main/resources/META-INF/native-image/reflect-config.json index cbcb4727b..50b8ea042 100644 --- a/CLI/src/main/resources/META-INF/native-image/reflect-config.json +++ b/CLI/src/main/resources/META-INF/native-image/reflect-config.json @@ -64,6 +64,9 @@ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl", "methods":[{"name":"","parameterTypes":[] }] }, +{ + "name":"java.beans.Introspector" +}, { "name":"java.lang.Class", "methods":[{"name":"getRecordComponents","parameterTypes":[] }, {"name":"isRecord","parameterTypes":[] }] @@ -103,6 +106,9 @@ { "name":"java.sql.Date" }, +{ + "name":"java.sql.Timestamp" +}, { "name":"java.util.Date" }, diff --git a/CLI/src/main/resources/META-INF/native-image/resource-config.json b/CLI/src/main/resources/META-INF/native-image/resource-config.json index c60492f05..b24032db0 100644 --- a/CLI/src/main/resources/META-INF/native-image/resource-config.json +++ b/CLI/src/main/resources/META-INF/native-image/resource-config.json @@ -18,10 +18,6 @@ "pattern":"\\QMETA-INF/services/javax.xml.parsers.DocumentBuilderFactory\\E" }, { "pattern":"\\QMETA-INF/services/javax.xml.transform.TransformerFactory\\E" - }, { - "pattern":"\\Qffmpeg\\E" - }, { - "pattern":"\\Qyt-dlp\\E" }, { "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt72b/nfkc.nrm\\E" }, { diff --git a/Core/src/main/java/init/Environment.java b/Core/src/main/java/init/Environment.java index 7708c040e..36fc84d3b 100644 --- a/Core/src/main/java/init/Environment.java +++ b/Core/src/main/java/init/Environment.java @@ -21,7 +21,7 @@ import static properties.Program.YT_DLP; public class Environment { - private static MessageBroker msgBroker = Environment.getMessageBroker(); + private static MessageBroker msgBroker; private static boolean isAdministrator; /* @@ -31,9 +31,10 @@ public class Environment { Finally, it updates yt-dlp if it has not been updated in the last 24 hours. */ public static void initializeEnvironment() { + msgBroker = Environment.getMessageBroker(); msgBroker.msgLogInfo("OS : " + OS.getOSName()); - Utility.initializeUtility(); // Lazy initialization of the MessageBroker in Utility class isAdministrator = hasAdminPrivileges(); + Utility.initializeUtility(); // Lazy initialization of the MessageBroker in Utility class new Thread(() -> AppSettings.SET.driftyUpdateAvailable(UpdateChecker.isUpdateAvailable())).start(); ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(Utility.setSpotifyAccessToken(), 0, 3480, java.util.concurrent.TimeUnit.SECONDS); // Thread to refresh Spotify access token every 58 minutes @@ -117,27 +118,19 @@ public static boolean isYtDLPUpdated() { public static boolean hasAdminPrivileges() { try { - msgBroker.msgLogInfo("Determining current executable folder path..."); Path currentExecutableFolderPath = Paths.get(Utility.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent(); - msgBroker.msgLogInfo("Current executable folder path: " + currentExecutableFolderPath); - Path adminTestFilePath = currentExecutableFolderPath.resolve("adminTestFile.txt"); - msgBroker.msgLogInfo("Creating test file at: " + adminTestFilePath); Files.createFile(adminTestFilePath); - - msgBroker.msgLogInfo("Deleting test file at: " + adminTestFilePath); Files.deleteIfExists(adminTestFilePath); - - msgBroker.msgLogInfo("Admin privileges confirmed."); return true; } catch (URISyntaxException e) { - msgBroker.msgInitError("Failed to get the current executable path! " + e.getMessage()); + System.out.println("Failed to get the current executable path! " + e.getMessage()); return false; } catch (AccessDeniedException e) { - msgBroker.msgInitError("You are not running Drifty as an administrator! " + e.getMessage()); + System.out.println("You are not running Drifty as an administrator! " + e.getMessage()); return false; } catch (IOException e) { - msgBroker.msgInitError("Failed to create a file in the current executable folder! " + e.getMessage()); + System.out.println("Failed to create a file in the current executable folder! " + e.getMessage()); return false; } } diff --git a/Core/src/main/java/preferences/Clear.java b/Core/src/main/java/preferences/Clear.java index 51d107df2..d4cef47b6 100644 --- a/Core/src/main/java/preferences/Clear.java +++ b/Core/src/main/java/preferences/Clear.java @@ -58,4 +58,8 @@ public void latestDriftyVersionTag() { public void driftyUpdateAvailable() { preferences.remove(DRIFTY_UPDATE_AVAILABLE); } + + public void jobs() { + preferences.remove(JOBS); + } } diff --git a/Core/src/main/java/preferences/Get.java b/Core/src/main/java/preferences/Get.java index 77c2f5b04..7c2f21a38 100644 --- a/Core/src/main/java/preferences/Get.java +++ b/Core/src/main/java/preferences/Get.java @@ -7,9 +7,11 @@ import org.hildan.fxgson.FxGson; import properties.Program; import support.JobHistory; +import support.Jobs; import utils.Utility; import javax.crypto.*; +import java.io.FileNotFoundException; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Path; @@ -20,6 +22,7 @@ import java.util.prefs.Preferences; import static preferences.Labels.*; +import static properties.Program.JOB_FILE; import static properties.Program.JOB_HISTORY_FILE; public class Get { @@ -121,4 +124,21 @@ public String latestDriftyVersionTag() { public boolean driftyUpdateAvailable() { return preferences.getBoolean(DRIFTY_UPDATE_AVAILABLE, false); } + + public Jobs jobs() { + GsonBuilder gsonBuilder = new GsonBuilder(); + Gson gson = FxGson.addFxSupport(gsonBuilder).setPrettyPrinting().create(); + Path jobBatchFile = Paths.get(Program.get(JOB_FILE)); + try { + String json = FileUtils.readFileToString(jobBatchFile.toFile(), Charset.defaultCharset()); + if (json != null && !json.isEmpty()) { + return gson.fromJson(json, Jobs.class); + } + } catch (FileNotFoundException e) { + Environment.getMessageBroker().msgLogInfo("Job file not found: " + jobBatchFile); + } catch (IOException e) { + Environment.getMessageBroker().msgLogError("Failed to read job file: " + jobBatchFile); + } + return new Jobs(); + } } diff --git a/Core/src/main/java/preferences/Labels.java b/Core/src/main/java/preferences/Labels.java index 23809afc0..6f501462b 100644 --- a/Core/src/main/java/preferences/Labels.java +++ b/Core/src/main/java/preferences/Labels.java @@ -16,4 +16,5 @@ public interface Labels { String LAST_DRIFTY_UPDATE_TIME = "LAST_DRIFTY_UPDATE_TIME"; String EARLY_ACCESS = "EARLY_ACCESS"; String DRIFTY_UPDATE_AVAILABLE = "DRIFTY_UPDATE_AVAILABLE"; + String JOBS = "JOBS"; } diff --git a/Core/src/main/java/preferences/Set.java b/Core/src/main/java/preferences/Set.java index b37e9dc41..71f4e213d 100644 --- a/Core/src/main/java/preferences/Set.java +++ b/Core/src/main/java/preferences/Set.java @@ -7,6 +7,7 @@ import org.hildan.fxgson.FxGson; import properties.Program; import support.JobHistory; +import support.Jobs; import javax.crypto.*; import java.io.IOException; @@ -19,6 +20,7 @@ import java.util.prefs.Preferences; import static preferences.Labels.*; +import static properties.Program.JOB_FILE; import static properties.Program.JOB_HISTORY_FILE; public class Set { @@ -124,4 +126,27 @@ public void driftyUpdateAvailable(boolean isUpdateAvailable) { AppSettings.CLEAR.driftyUpdateAvailable(); preferences.putBoolean(DRIFTY_UPDATE_AVAILABLE, isUpdateAvailable); } + + public void jobs(Jobs jobs) { + String serializedJobs = serializeJobs(jobs); + writeJobsToFile(serializedJobs); + } + + private String serializeJobs(Jobs jobs) { + GsonBuilder gsonBuilder = new GsonBuilder(); + Gson gson = FxGson.addFxSupport(gsonBuilder).setPrettyPrinting().create(); + return gson.toJson(jobs); + } + + private void writeJobsToFile(String serializedJobs) { + AppSettings.CLEAR.jobs(); + Path jobBatchFile = Paths.get(Program.get(JOB_FILE)); + try { + FileUtils.writeStringToFile(jobBatchFile.toFile(), serializedJobs, Charset.defaultCharset()); + } catch (IOException e) { + String errorMessage = "Failed to write jobs to file: " + e.getMessage(); + Environment.getMessageBroker().msgInitError(errorMessage); + throw new RuntimeException(errorMessage, e); + } + } } diff --git a/Core/src/main/java/support/Constants.java b/Core/src/main/java/support/Constants.java index a92cf37c5..75a3fce3d 100644 --- a/Core/src/main/java/support/Constants.java +++ b/Core/src/main/java/support/Constants.java @@ -14,15 +14,15 @@ public class Constants { public static final String INVALID_LINK = "Link is invalid! Please check the link and try again."; public static final String FILENAME_DETECTION_ERROR = "Failed to detect the filename! A default name will be used instead."; public static final String TRYING_TO_AUTO_DETECT_DOWNLOADS_FOLDER = "Trying to automatically detect default Downloads folder..."; - public static final String FAILED_TO_RETRIEVE_DEFAULT_DOWNLOAD_FOLDER = "Failed to retrieve default download folder!"; + public static final String FAILED_TO_RETRIEVE_DEFAULT_DOWNLOAD_FOLDER_ERROR = "Failed to retrieve default download folder!"; public static final String FOLDER_DETECTED = "Default download folder detected : "; public static final String FILENAME_DETECTED = "Filename detected : "; - public static final String FAILED_TO_CREATE_LOG = "Failed to create log : "; - public static final String FAILED_TO_CLEAR_LOG = "Failed to clear Log contents !"; - public static final String FILE_NOT_FOUND = "An error occurred! Requested file does not exist, please check the url."; - public static final String VIDEO_UNAVAILABLE = "The requested video is unavailable, it has been deleted from the platform."; - public static final String PERMISSION_DENIED = "You do not have access to download the video, permission is denied."; - public static final String DRIFTY_COMPONENT_NOT_EXECUTABLE = "A Drifty component (yt-dlp) is not marked as executable."; + public static final String FAILED_TO_CREATE_LOG_ERROR = "Failed to create log : "; + public static final String FAILED_TO_CLEAR_LOG_ERROR = "Failed to clear Log contents !"; + public static final String FILE_NOT_FOUND_ERROR = "An error occurred! Requested file does not exist, please check the url."; + public static final String VIDEO_UNAVAILABLE_ERROR = "The requested video is unavailable, it has been deleted from the platform."; + public static final String PERMISSION_DENIED_ERROR = "You do not have access to download the video, permission is denied."; + public static final String DRIFTY_COMPONENT_NOT_EXECUTABLE_ERROR = "A Drifty component (yt-dlp) is not marked as executable."; public static final String USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"; public static final long ONE_DAY = 86400000; // Value of one day (24 Hours) in milliseconds public static URL updateURL; @@ -43,6 +43,6 @@ public class Constants { */ public static final String DOWNLOADING_F = "Downloading \"%s\" ..."; public static final String FAILED_CONNECTION_F = "Failed to connect to %s!"; - public static final String SUCCESSFULLY_DOWNLOADED_F = "Successfully downloaded %s!"; + public static final String SUCCESSFULLY_DOWNLOADED_F = "Successfully downloaded \"%s\""; public static final String FAILED_TO_DOWNLOAD_F = "Failed to download %s!"; } diff --git a/Core/src/main/java/support/DownloadConfiguration.java b/Core/src/main/java/support/DownloadConfiguration.java new file mode 100644 index 000000000..0e2c658db --- /dev/null +++ b/Core/src/main/java/support/DownloadConfiguration.java @@ -0,0 +1,278 @@ +package support; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import init.Environment; +import preferences.AppSettings; +import properties.LinkType; +import properties.Mode; +import utils.MessageBroker; +import utils.Utility; + +import java.util.*; +import java.util.concurrent.*; + +import static utils.Utility.cleanFilename; +import static utils.Utility.randomString; + +public class DownloadConfiguration { + private final String directory; + private final ArrayList> fileData; + private final LinkType linkType; + private final String filename; + private final MessageBroker msgBroker = Environment.getMessageBroker(); + private String link; + private int fileCount; + private int filesProcessed; + private int statusCode; + + public DownloadConfiguration(String link, String directory, String filename) { + this.link = link; + this.directory = directory; + this.filename = filename; + this.linkType = LinkType.getLinkType(link); + this.fileData = new ArrayList<>(); + } + + public void sanitizeLink() { + link = link.trim(); + link = link.replace('\\', '/'); + link = link.replaceFirst("^(?!https?:)", "https://"); + if (link.startsWith("https://github.com/") || (link.startsWith("http://github.com/"))) { + if (!link.endsWith("?raw=true")) { + link = link + "?raw=true"; + } + } + if (this.linkType.equals(LinkType.INSTAGRAM)) { + this.link = Utility.formatInstagramLink(link); + } + } + + public int fetchFileData() { + return switch (this.linkType) { + case YOUTUBE -> processYouTubeLink(); + case SPOTIFY -> processSpotifyLink(); + case INSTAGRAM -> processInstagramLink(); + default -> processFileLink(); + }; + } + + private int processYouTubeLink() { + String jsonString = Utility.getYtDlpMetadata(link); + if (jsonString == null || jsonString.isEmpty()) { + msgBroker.msgLogError("Failed to process Youtube Link"); + statusCode = -1; + return -1; + } + JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); + if (link.contains("playlist")) { + JsonArray entries = jsonObject.get("entries").getAsJsonArray(); + fileCount = entries.size(); + for (JsonElement entry : entries) { + if (Mode.isCLI()) { + System.out.print("\r[" + (filesProcessed + 1) + "/" + fileCount + "] Processing Youtube Playlist..."); + } + JsonObject entryObject = entry.getAsJsonObject(); + String videoLink = entryObject.get("url").getAsString(); + String videoTitle = cleanFilename(entryObject.get("title").getAsString()); + if (videoTitle.isEmpty()) { + videoTitle = "Unknown_YouTube_Video_".concat(randomString(5)); + } + String detectedFilename = videoTitle.concat(".mp4"); + HashMap data = new HashMap<>(); + data.put("link", videoLink); + data.put("filename", detectedFilename); + data.put("directory", this.directory); + fileData.add(data); + filesProcessed++; + } + if (Mode.isCLI()) { + System.out.println("\rYoutube Playlist processed successfully"); + } else { + msgBroker.msgLinkInfo("Youtube Playlist processed successfully"); + } + } else { + msgBroker.msgLinkInfo("Processing Youtube Video..."); + fileCount = 1; + HashMap data = new HashMap<>(); + String videoTitle = cleanFilename(jsonObject.get("title").getAsString()); + if (videoTitle.isEmpty()) { + videoTitle = "Unknown_YouTube_Video_".concat(randomString(5)); + } + String detectedFilename = videoTitle.concat(".mp4"); + data.put("link", link); + data.put("filename", this.filename == null ? detectedFilename : this.filename); + data.put("directory", this.directory); + fileData.add(data); + filesProcessed++; + msgBroker.msgLinkInfo("Youtube Video processed successfully"); + } + if (fileData.isEmpty()) { + statusCode = -1; + return -1; + } else { + statusCode = 0; + return 0; + } + } + + private int processSpotifyLink() { + if (link.contains("playlist")) { + ArrayList> playlistMetadata = Utility.getSpotifyPlaylistMetadata(link); + if (playlistMetadata != null && !playlistMetadata.isEmpty()) { + fileCount = playlistMetadata.size(); + ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); + if (Mode.isGUI()) { + executor.scheduleAtFixedRate(this::updateJobList, 1500, 600, TimeUnit.MILLISECONDS); + } + for (HashMap songMetadata : playlistMetadata) { + if (Mode.isCLI()) { + System.out.print("\r[" + filesProcessed + "/" + fileCount + "] Processing Spotify Playlist..."); + } else { + msgBroker.msgLinkInfo("[" + filesProcessed + "/" + fileCount + "] Processing Spotify Playlist..."); + } + HashMap data = Utility.getSpotifySongDownloadData(songMetadata, this.directory); + if (data == null) { + msgBroker.msgLogError("Failed to process Spotify Playlist"); + filesProcessed++; + statusCode = -1; + return -1; + } + fileData.add(data); + filesProcessed++; + } + if (Mode.isCLI()) { + System.out.println("\rSpotify Playlist processed successfully"); + } else { + msgBroker.msgLinkInfo("Spotify Playlist processed successfully"); + } + if (Mode.isGUI()) { + executor.shutdown(); + } + } + } else { + HashMap songMetadata = Utility.getSpotifySongMetadata(link); + fileCount = 1; + if (songMetadata != null && !songMetadata.isEmpty()) { + msgBroker.msgLinkInfo("Processing Spotify Song..."); + HashMap data = Utility.getSpotifySongDownloadData(songMetadata, this.directory); + if (data == null) { + msgBroker.msgLogError("Failed to process Spotify Song"); + filesProcessed++; + statusCode = -1; + return -1; + } + if (this.filename != null) { + data.put("filename", this.filename); + } + fileData.add(data); + filesProcessed++; + msgBroker.msgLinkInfo("Spotify Song processed successfully"); + } + } + if (fileData.isEmpty()) { + statusCode = -1; + return -1; + } else { + statusCode = 0; + return 0; + } + } + + private int processInstagramLink() { + String jsonString = Utility.getYtDlpMetadata(link); + fileCount = 1; + if (jsonString != null && !jsonString.isEmpty()) { + msgBroker.msgLinkInfo("Processing Instagram Post..."); + JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); + HashMap data = new HashMap<>(); + String instagramVideoName = cleanFilename(jsonObject.get("title").getAsString()); + if (instagramVideoName.isEmpty()) { + instagramVideoName = "Unknown_Instagram_Video_".concat(randomString(5)); + } + String detectedFilename = instagramVideoName.concat(".").concat(jsonObject.get("ext").getAsString()); + data.put("link", link); + data.put("filename", this.filename == null ? detectedFilename : this.filename); + data.put("directory", this.directory); + fileData.add(data); + filesProcessed++; + msgBroker.msgLinkInfo("Instagram Post processed successfully"); + } + if (fileData.isEmpty()) { + statusCode = -1; + return -1; + } else { + statusCode = 0; + return 0; + } + } + + private int processFileLink() { + msgBroker.msgLinkInfo("Processing File Link..."); + fileCount = 1; + HashMap data = new HashMap<>(); + String detectedFilename = cleanFilename(Utility.extractFilenameFromURL(link)); + if (detectedFilename.isEmpty()) { + detectedFilename = "Unknown_File_".concat(randomString(5)); + } + data.put("link", link); + data.put("filename", this.filename == null ? detectedFilename : this.filename); + data.put("directory", this.directory); + fileData.add(data); + filesProcessed++; + msgBroker.msgLinkInfo("File Link processed successfully"); + if (fileData.isEmpty()) { + statusCode = -1; + return -1; + } else { + statusCode = 0; + return 0; + } + } + + public void updateJobList() { + Map distinctJobList = new ConcurrentHashMap<>(); + for (Job job : AppSettings.GET.jobs().jobList()) { + distinctJobList.put(job.hashCode(), job); + } + if (fileData.isEmpty()) { + return; + } + for (HashMap data : fileData) { + String link = data.get("link").toString(); + String filename = data.get("filename").toString(); + String directory = data.get("directory").toString(); + Job job; + if (linkType.equals(LinkType.SPOTIFY)) { + String downloadLink = data.get("downloadLink").toString(); + job = new Job(link, directory, filename, downloadLink); + } else { + job = new Job(link, directory, filename, null); + } + distinctJobList.put(job.hashCode(), job); + } + AppSettings.GET.jobs().setList(new ConcurrentLinkedDeque<>(distinctJobList.values())); + } + + public String getLink() { + return link; + } + + public int getFileCount() { + return fileCount; + } + + public int getFilesProcessed() { + return filesProcessed; + } + + public ArrayList> getFileData() { + return fileData; + } + + public int getStatusCode() { + return statusCode; + } +} diff --git a/Core/src/main/java/support/Job.java b/Core/src/main/java/support/Job.java index 968f20f8c..2fb0483d1 100644 --- a/Core/src/main/java/support/Job.java +++ b/Core/src/main/java/support/Job.java @@ -1,85 +1,78 @@ package support; import java.io.File; -import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Objects; public class Job { private final String link; private final String dir; private final String filename; - private String spotifyMetadataJson; - private boolean repeatDownload; + private final String downloadLink; - public Job(String link, String dir, String filename, boolean repeatDownload) { + public Job(String link, String dir, String filename, String downloadLink) { this.link = link; + this.downloadLink = downloadLink; this.dir = dir; this.filename = filename; - this.repeatDownload = repeatDownload; - } - - public Job(String link, String dir, String filename, String spotifyMetadataJson, boolean repeatDownload) { - this.link = link; - this.dir = dir; - this.filename = filename; - this.repeatDownload = repeatDownload; - this.spotifyMetadataJson = spotifyMetadataJson; - } - - public Job(String link, String dir) { - this.link = link; - this.dir = dir; - this.filename = getName(); - } - - public boolean matches(Job otherJob) { - return otherJob.getLink().equals(link) && otherJob.getDir().equals(dir) && otherJob.getFilename().equals(filename); } public boolean matchesLink(Job job) { - return job.getLink().equals(link); + return job.getSourceLink().equals(link); } public boolean matchesLink(String link) { return this.link.equals(link); } - public String getLink() { + public String getSourceLink() { return link; } + public String getDownloadLink() { + if (downloadLink != null) { + return downloadLink; + } + if (link != null) { + return link; + } + throw new IllegalStateException("Both link and downloadLink are null"); + } + public String getDir() { return dir; } public String getFilename() { - return this.filename; + return filename; } public File getFile() { - return Paths.get(dir, filename).toFile(); + return Paths.get(dir).resolve(filename).toFile(); } public boolean fileExists() { - Path path = Paths.get(dir, filename); - return path.toFile().exists(); + return getFile().exists(); } - private String getName() { - String[] nameParts = link.split("/"); - return nameParts[nameParts.length - 1]; - } - - public String getSpotifyMetadataJson() { - return spotifyMetadataJson; + @Override + public boolean equals(Object obj) { + if (obj instanceof Job job) { + return Objects.equals(job.getSourceLink(), link) && + Objects.equals(job.getDir(), dir) && + Objects.equals(job.getFilename(), filename); + } + return false; } - public boolean repeatOK() { - return repeatDownload; + @Override + public int hashCode() { + return Objects.hash(link, dir, filename); } @Override public String toString() { + // This method returns only the filename, else the hashCodes will appear in the ListView return filename; } } diff --git a/Core/src/main/java/support/JobHistory.java b/Core/src/main/java/support/JobHistory.java index 6ad216c7e..ebe162d77 100644 --- a/Core/src/main/java/support/JobHistory.java +++ b/Core/src/main/java/support/JobHistory.java @@ -34,7 +34,7 @@ public void clear() { public boolean exists(String link) { for (Job job : jobHistoryList) { - if (job.getLink().equals(link)) { + if (job.getSourceLink().equals(link)) { return true; } } diff --git a/GUI/src/main/java/gui/support/Jobs.java b/Core/src/main/java/support/Jobs.java similarity index 91% rename from GUI/src/main/java/gui/support/Jobs.java rename to Core/src/main/java/support/Jobs.java index 5384c5a0b..0fae9294d 100644 --- a/GUI/src/main/java/gui/support/Jobs.java +++ b/Core/src/main/java/support/Jobs.java @@ -1,7 +1,6 @@ -package gui.support; +package support; -import gui.preferences.AppSettings; -import support.Job; +import preferences.AppSettings; import java.util.concurrent.ConcurrentLinkedDeque; @@ -21,7 +20,7 @@ public ConcurrentLinkedDeque jobList() { public void add(Job newJob) { for (Job job : jobList) { - if (job.matches(newJob)) { + if (job.equals(newJob)) { return; } } diff --git a/Core/src/main/java/utils/Logger.java b/Core/src/main/java/utils/Logger.java index cba944236..b0072b51d 100644 --- a/Core/src/main/java/utils/Logger.java +++ b/Core/src/main/java/utils/Logger.java @@ -10,8 +10,8 @@ import java.text.SimpleDateFormat; import java.util.Calendar; -import static support.Constants.FAILED_TO_CLEAR_LOG; -import static support.Constants.FAILED_TO_CREATE_LOG; +import static support.Constants.FAILED_TO_CLEAR_LOG_ERROR; +import static support.Constants.FAILED_TO_CREATE_LOG_ERROR; public final class Logger { boolean isLogEmpty; @@ -33,12 +33,13 @@ private Logger() { } private File determineLogFile() { - if (!Environment.isAdministrator()) { - try { - return Files.createTempFile(logFilename.split("\\.")[0], ".log").toFile(); - } catch (IOException e) { - System.err.println(FAILED_TO_CREATE_LOG + logFilename); - } + if (Environment.hasAdminPrivileges()) { + return new File(logFilename); // Log file will be created in the same directory as the executable + } + try { + return Files.createTempFile(logFilename.split("\\.")[0], ".log").toFile(); // Log file will be created in the temp directory + } catch (IOException e) { + System.err.println(FAILED_TO_CREATE_LOG_ERROR + logFilename); } return new File(logFilename); } @@ -64,7 +65,7 @@ private void clearLog() { isLogEmpty = true; logWriter.write(""); } catch (IOException e) { - System.err.println(FAILED_TO_CLEAR_LOG); + System.err.println(FAILED_TO_CLEAR_LOG_ERROR); } } @@ -77,7 +78,7 @@ public void log(MessageType messageType, String logMessage) { isLogEmpty = true; logWriter.println(dateAndTime + " " + messageType.toString() + " - " + logMessage); } catch (IOException e) { - System.err.println(FAILED_TO_CREATE_LOG + logMessage); + System.err.println(FAILED_TO_CREATE_LOG_ERROR + logMessage); } } } diff --git a/Core/src/main/java/utils/Utility.java b/Core/src/main/java/utils/Utility.java index 78066a689..1b108f4b1 100644 --- a/Core/src/main/java/utils/Utility.java +++ b/Core/src/main/java/utils/Utility.java @@ -5,7 +5,6 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.text.StringEscapeUtils; -import org.hildan.fxgson.FxGson; import preferences.AppSettings; import properties.MessageCategory; import properties.Mode; @@ -38,6 +37,7 @@ public class Utility { private static final Random RANDOM_GENERATOR = new Random(System.currentTimeMillis()); protected static MessageBroker msgBroker; private static boolean interrupted; + private static String ytDlpErrorMessage; public static void initializeUtility() { // Lazy initialization of the MessageBroker as it might be null when the Environment MessageBroker is not set @@ -59,10 +59,6 @@ public static boolean isSpotify(String url) { return url.matches(pattern); } - public static boolean isExtractableLink(String link) { - return isYoutube(link) || isInstagram(link) || isSpotify(link); - } - public static boolean isOffline() { try { URL projectWebsite = URI.create(DRIFTY_WEBSITE_URL).toURL(); @@ -137,9 +133,8 @@ public static URL getUpdateURL() throws MalformedURLException, URISyntaxExceptio return updateURL; } - public static LinkedList getYtDlpMetadata(String link) { + public static String getYtDlpMetadata(String link) { try { - LinkedList list = new LinkedList<>(); File driftyJsonFolder = Program.getJsonDataPath().toFile(); if (driftyJsonFolder.exists() && driftyJsonFolder.isDirectory()) { FileUtils.forceDelete(driftyJsonFolder); // Deletes the previously generated temporary directory for Drifty @@ -164,20 +159,21 @@ public static LinkedList getYtDlpMetadata(String link) { return null; } File[] files = driftyJsonFolder.listFiles(); + String linkMetadata; if (files != null) { for (File file : files) { if ("yt-metadata.info.json".equals(file.getName())) { - String linkMetadata = FileUtils.readFileToString(file, Charset.defaultCharset()); - list.addLast(linkMetadata); + linkMetadata = FileUtils.readFileToString(file, Charset.defaultCharset()); + FileUtils.forceDelete(driftyJsonFolder); // delete the metadata files of Drifty from the config directory + return linkMetadata; } } - FileUtils.forceDelete(driftyJsonFolder); // delete the metadata files of Drifty from the config directory } - return list; } catch (IOException e) { msgBroker.msgLinkError("Failed to perform I/O operations on link metadata! " + e.getMessage()); return null; } + return null; } public static String getHomeDownloadFolder() { @@ -191,21 +187,13 @@ public static String getHomeDownloadFolder() { } if (downloadsFolder.equals(FileSystems.getDefault().getSeparator())) { downloadsFolder = System.getProperty("user.home"); - msgBroker.msgDirError(FAILED_TO_RETRIEVE_DEFAULT_DOWNLOAD_FOLDER); + msgBroker.msgDirError(FAILED_TO_RETRIEVE_DEFAULT_DOWNLOAD_FOLDER_ERROR); } else { msgBroker.msgDirInfo(FOLDER_DETECTED + downloadsFolder); } return downloadsFolder; } - public static String makePretty(String json) { - // The regex strings won't match unless the json string is converted to pretty format - GsonBuilder g = new GsonBuilder(); - Gson gson = FxGson.addFxSupport(g).setPrettyPrinting().create(); - JsonElement element = JsonParser.parseString(json); - return gson.toJson(element); - } - public static String renameFile(String filename, String dir) { Path path = Paths.get(dir, filename); String newFilename = filename; @@ -223,22 +211,6 @@ public static String renameFile(String filename, String dir) { return newFilename; } - public static String getFilenameFromJson(String jsonString) { - String json = makePretty(jsonString); - String filename; - String regexFilename = "(\"title\": \")(.+)(\",)"; - Pattern p = Pattern.compile(regexFilename); - Matcher m = p.matcher(json); - if (m.find()) { - filename = cleanFilename(m.group(2)) + ".mp4"; - msgBroker.msgFilenameInfo(FILENAME_DETECTED + "\"" + filename + "\""); - } else { - filename = cleanFilename("Unknown_Filename_") + randomString(15) + ".mp4"; - msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); - } - return filename; - } - public static HashMap getSpotifySongMetadata(String songUrl) { Pattern trackPattern = Pattern.compile("/track/(\\w+)"); Matcher trackMatcher = trackPattern.matcher(songUrl); @@ -272,10 +244,18 @@ public static HashMap getSpotifySongMetadata(String songUrl) { String retryAfter = songMetadataResponse.headers().firstValue("retry-after").orElse("5"); long timeToWait = (long) parseStringToInt(retryAfter, "Failed to parse time to wait before retrying!", MessageCategory.DOWNLOAD) * 1000; for (long i = timeToWait; i >= 0; i -= 1000) { - System.out.print("\r" + "Retrying in " + i / 1000 + " seconds..."); + if (Mode.isCLI()) { + System.out.print("\r" + "Retrying in " + i / 1000 + " seconds..."); + } else { + msgBroker.msgLinkInfo("Retrying in " + i / 1000 + " seconds..."); + } sleep(1000); } - System.out.println("\r" + "Retrying now..."); + if (Mode.isCLI()) { + System.out.println("\r" + "Retrying now..."); + } else { + msgBroker.msgLinkInfo("Retrying now..."); + } continue; } else { return null; @@ -290,6 +270,7 @@ public static HashMap getSpotifySongMetadata(String songUrl) { HashMap songMetadataMap = new HashMap<>(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonElement artistJsonTree = gson.toJsonTree(artistNames); + songMetadataMap.put("link", songUrl); songMetadataMap.put("songName", songName); songMetadataMap.put("duration", duration); songMetadataMap.put("artists", artistJsonTree); @@ -391,12 +372,10 @@ public static ArrayList> getSpotifyPlaylistMetadata(Stri artistNames.add(artists.get(j).getAsJsonObject().get("name").getAsString()); } HashMap songMetadataMap = new HashMap<>(); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - JsonElement artistJsonTree = gson.toJsonTree(artistNames); songMetadataMap.put("link", link); songMetadataMap.put("songName", songName); songMetadataMap.put("duration", duration); - songMetadataMap.put("artists", artistJsonTree); + songMetadataMap.put("artists", artistNames); playlistData.add(songMetadataMap); } } @@ -419,14 +398,131 @@ private static String extractContent(HttpResponse response) { return content.toString(); } + public static String extractFilenameFromURL(String link) { // TODO: Check CLI problems on this method + // Example: "example.com/file.txt" prints "Filename detected: file.txt" + // example.com/file.json -> file.json + String file = link.substring(link.lastIndexOf("/") + 1); + if (file.isEmpty()) { + msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); + return null; + } + int index = file.lastIndexOf("."); + if (index < 0) { + msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); + return null; + } + String extension = file.substring(index); + // edge case 1: "example.com/." + if (extension.length() == 1) { + msgBroker.msgFilenameError(FILENAME_DETECTION_ERROR); + return null; + } + // file.png?width=200 -> file.png + String filename = file.split("([?])")[0]; + msgBroker.msgLogInfo(FILENAME_DETECTED + "\"" + filename + "\""); + return filename; + } + + public static HashMap getSpotifySongDownloadData(HashMap songMetadata, String directory) { + long startTime = System.currentTimeMillis(); + String songLink = songMetadata.get("link").toString(); + String songName = cleanFilename(songMetadata.get("songName").toString()); + if (songName.isEmpty()) { + songName = "Unknown_Spotify_Song_".concat(randomString(5)); + } + String filename = songName.concat(".webm"); + String downloadLink = Utility.getSpotifyDownloadLink(songMetadata); + if (downloadLink == null) { + if (Mode.isGUI()) { + msgBroker.msgLinkError("Song is exclusive to Spotify and cannot be downloaded!"); + } else { + System.out.println("\nSong (" + filename.replace(".webm", "") + ") is exclusive to Spotify and cannot be downloaded!"); + } + return null; + } + if (Mode.isGUI()) { + msgBroker.msgLinkInfo("Download link retrieved successfully!"); + } + HashMap data = new HashMap<>(); + data.put("link", songLink); + data.put("downloadLink", downloadLink); + data.put("filename", filename); + data.put("directory", directory); + msgBroker.msgLogInfo("Time taken to process Spotify song (" + filename + "): " + (System.currentTimeMillis() - startTime) + " ms"); + return data; + } + + public static String getSpotifyDownloadLink(HashMap songMetadata) { + String songName = songMetadata.get("songName").toString(); + int duration = Utility.parseStringToInt(songMetadata.get("duration").toString(), "Failed to convert Spotify song duration from String to int", MessageCategory.DOWNLOAD); + ArrayList artistNames; + if (songMetadata.get("artists") instanceof JsonArray artists) { + artistNames = new ArrayList<>(); + for (int i = 0; i < artists.size(); i++) { + artistNames.add(artists.get(i).getAsString()); + } + } else { + // Safe casting with type check + ArrayList rawList = (ArrayList) songMetadata.get("artists"); + artistNames = new ArrayList<>(); + for (Object obj : rawList) { + if (obj instanceof String) { + artistNames.add((String) obj); + } else { + // Handle the case where an element is not a String + msgBroker.msgLinkError("Failed to cast artist names to String in Spotify song metadata!"); + return null; + } + } + } + String query = (String.join(", ", artistNames) + " - " + songName).toLowerCase(); + ArrayList> searchResults = Utility.getYoutubeSearchResults(query, true); + boolean searchedWithFilters = true; + if (searchResults == null) { + msgBroker.msgLogError("Failed to get search results for the Spotify song with filters! Trying without filters ..."); + searchResults = Utility.getYoutubeSearchResults(query, false); + searchedWithFilters = false; + if (searchResults == null) { + msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); + return null; + } + } + String matchedId = Utility.getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); + if (matchedId.isEmpty()) { + if (searchedWithFilters) { + msgBroker.msgLogError("Failed to get a matching video ID for the song with filters! Trying without filters ..."); + searchResults = Utility.getYoutubeSearchResults(query, false); + if (searchResults == null) { + msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); + return null; + } + matchedId = Utility.getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); + if (matchedId.isEmpty()) { + msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); + return null; + } + } else { + msgBroker.msgDownloadError("Song is exclusive to Spotify and cannot be downloaded!"); + return null; + } + } + return "https://www.youtube.com/watch?v=" + matchedId; + } + + /* + * This method is used to remove illegal characters from the filename to prevent errors while saving the file. + */ public static String cleanFilename(String filename) { String fn = StringEscapeUtils.unescapeJava(filename); + if (fn == null) { + return ""; + } return fn.replaceAll("[^a-zA-Z0-9-.%?*:|_)<(> ]+", "").strip(); } private static Runnable ytDLPJsonData(String folderPath, String link) { return () -> { - String[] command = new String[]{Program.get(YT_DLP), "--write-info-json", "--skip-download", "--restrict-filenames", "-P", folderPath, link, "-o", "yt-metadata"}; // -o flag is used to specify the output filename which is "yt-metadata.info.json" in this case + String[] command = new String[]{Program.get(YT_DLP), "--flat-playlist", "--write-info-json", "--no-clean-info-json", "--skip-download", "--compat-options", "no-youtube-unavailable-videos", "-P", folderPath, link, "-o", "yt-metadata"}; // -o flag is used to specify the output filename, which is "yt-metadata.info.json" in this case try { ProcessBuilder pb = new ProcessBuilder(command); pb.redirectErrorStream(true); @@ -440,18 +536,21 @@ private static Runnable ytDLPJsonData(String folderPath, String link) { while ((line = reader.readLine()) != null) { if (line.contains("ERROR") || line.contains("WARNING")) { if (line.contains("unable to extract username")) { - msgBroker.msgLinkError("The Instagram post/reel is private!"); + ytDlpErrorMessage = "The Instagram post/reel is private!"; break; } else if (line.contains("The playlist does not exist")) { - msgBroker.msgLinkError("The YouTube playlist does not exist or is private!"); + ytDlpErrorMessage = "The YouTube playlist does not exist or is private!"; break; } else if (line.contains("Video unavailable")) { - msgBroker.msgLinkError("The YouTube video is unavailable!"); + ytDlpErrorMessage = "The YouTube video is unavailable ".concat(line.substring(line.indexOf("because"))); break; } else if (line.contains("Skipping player responses from android clients")) { msgBroker.msgLogWarning(line); } else if (line.contains("Unable to download webpage") && line.contains("Temporary failure in name resolution")) { - msgBroker.msgLinkError("You are not connected to the Internet!"); + ytDlpErrorMessage = "You are not connected to the Internet!"; + break; + } else if (line.contains("unable to extract shared data; please report this issue on")) { + ytDlpErrorMessage = "Instagram post/reel is not accessible due to temporary blockage by Instagram!"; break; } else { if (line.contains("ERROR")) { @@ -462,9 +561,13 @@ private static Runnable ytDLPJsonData(String folderPath, String link) { } } } + if (ytDlpErrorMessage != null) { + msgBroker.msgLinkError(ytDlpErrorMessage); + } } } catch (Exception e) { - msgBroker.msgLinkError("Failed to get link metadata! " + e.getMessage()); + ytDlpErrorMessage = "Failed to get link metadata! " + e.getMessage(); + msgBroker.msgLinkError(ytDlpErrorMessage); } }; } @@ -522,6 +625,10 @@ public static String getMatchingVideoID(ArrayList> searc } @SuppressWarnings("unchecked") ArrayList artistsFromSearchResult = (ArrayList) searchResult.get("artists"); + if (artistsFromSearchResult == null) { + msgBroker.msgLinkError("Failed to get artists from search result!"); + continue; + } for (String artist : artistNames) { if (artistsFromSearchResult.contains(artist)) { noOfMatches++; @@ -807,18 +914,12 @@ public static Runnable setSpotifyAccessToken() { }; } - public static String getSpotifyFilename(String jsonString) { - JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); - String songName = jsonObject.get("songName").getAsString(); - return cleanFilename(songName) + ".webm"; - } - public static String convertToMp3(Path inputFilePath) { String command = Program.get(Program.FFMPEG); Path outputFilePath = inputFilePath.getParent().resolve(FilenameUtils.getBaseName(inputFilePath.toString()) + " - converted.mp3").toAbsolutePath(); String newFilename; if (outputFilePath.toFile().exists()) { - newFilename = renameFile(outputFilePath.getFileName().toString(), outputFilePath.getParent().toString()); // rename the file if it already exists else ffmpeg conversion hangs indefinitely and tries to overwrite the file + newFilename = renameFile(outputFilePath.getFileName().toString(), outputFilePath.getParent().toString()); // rename the file if it already exists, else ffmpeg conversion hangs indefinitely and tries to overwrite the file outputFilePath = outputFilePath.getParent().resolve(newFilename); } ProcessBuilder convertToMp3 = new ProcessBuilder(command, "-i", inputFilePath.toString(), outputFilePath.toString()); diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index b503ad11e..6d8bae902 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -1,8 +1,5 @@ package backend; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import gui.init.Environment; import gui.support.SplitDownloadMetrics; import gui.utils.MessageBroker; @@ -27,8 +24,6 @@ import java.nio.channels.ReadableByteChannel; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.HashMap; import java.util.LinkedList; import java.util.Objects; import java.util.concurrent.atomic.AtomicLong; @@ -36,17 +31,16 @@ import java.util.regex.Pattern; import static gui.support.Colors.GREEN; -import static gui.support.Colors.RED; +import static gui.support.Colors.DARK_RED; import static gui.support.Constants.*; public class FileDownloader extends Task { private static final MessageBroker M = Environment.getMessageBroker(); private static final String YT_DLP = Program.get(Program.YT_DLP); private final StringProperty progressProperty = new SimpleStringProperty(); - private String link; + private final String downloadLink; private final String filename; private final String dir; - private final String spotifySongMetadata; private final LinkType type; private int exitCode = 1; private boolean done; @@ -63,18 +57,16 @@ public class FileDownloader extends Task { public FileDownloader(Job job, StringProperty linkProperty, StringProperty dirProperty, StringProperty filenameProperty, StringProperty downloadMessage, IntegerProperty transferSpeedProperty, DoubleProperty progressProperty) { this.job = job; - this.link = job.getLink(); + this.downloadLink = job.getDownloadLink(); this.filename = Utility.cleanFilename(job.getFilename()); this.dir = job.getDir(); - this.type = LinkType.getLinkType(link); - if (this.type.equals(LinkType.SPOTIFY)) { - this.spotifySongMetadata = job.getSpotifyMetadataJson(); - } else { - this.spotifySongMetadata = null; + if (this.downloadLink == null && LinkType.getLinkType(job.getSourceLink()).equals(LinkType.SPOTIFY)) { + sendFinalMessage("Song is exclusive to Spotify and cannot be downloaded!"); } + this.type = LinkType.getLinkType(this.downloadLink); setProperties(); Platform.runLater(() -> { - linkProperty.setValue(link); + linkProperty.setValue(job.getSourceLink()); filenameProperty.setValue(filename); dirProperty.setValue(dir); progressProperty.bind(this.progressProperty()); @@ -88,14 +80,7 @@ protected Integer call() { updateProgress(0, 1); sendInfoMessage(String.format(TRYING_TO_DOWNLOAD_F, filename)); switch (type) { - case YOUTUBE, INSTAGRAM -> downloadYoutubeOrInstagram(false); - case SPOTIFY -> { - link = getSpotifyDownloadLink(spotifySongMetadata); - if (link == null) { - break; - } - downloadYoutubeOrInstagram(true); - } + case YOUTUBE, INSTAGRAM -> downloadYoutubeOrInstagram(LinkType.getLinkType(job.getSourceLink()).equals(LinkType.SPOTIFY)); case OTHER -> splitDecision(); default -> sendFinalMessage(INVALID_LINK); } @@ -105,7 +90,7 @@ protected Integer call() { } private void downloadYoutubeOrInstagram(boolean isSpotifySong) { - String[] fullCommand = new String[]{YT_DLP, "--quiet", "--progress", "-P", dir, link, "-o", filename, "-f", (isSpotifySong ? "bestaudio" : "mp4")}; + String[] fullCommand = new String[]{YT_DLP, "--quiet", "--progress", "-P", dir, downloadLink, "-o", filename, "-f", (isSpotifySong ? "bestaudio" : "mp4")}; ProcessBuilder processBuilder = new ProcessBuilder(fullCommand); sendInfoMessage(String.format(DOWNLOADING_F, filename)); Process process = null; @@ -117,11 +102,11 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { String msg = e.getMessage(); String[] messageArray = msg.split(","); if (messageArray.length >= 1 && messageArray[0].toLowerCase().trim().replaceAll(" ", "").contains("cannotrunprogram")) { // If yt-dlp program is not marked as executable - M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE); + M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE_ERROR); } else if (messageArray.length >= 1 && "permissiondenied".equals(messageArray[1].toLowerCase().trim().replaceAll(" ", ""))) { // If a private YouTube / Instagram video is asked to be downloaded - M.msgDownloadError(PERMISSION_DENIED); + M.msgDownloadError(PERMISSION_DENIED_ERROR); } else if ("videounavailable".equals(messageArray[0].toLowerCase().trim().replaceAll(" ", ""))) { // If YouTube / Instagram video is unavailable - M.msgDownloadError(VIDEO_UNAVAILABLE); + M.msgDownloadError(VIDEO_UNAVAILABLE_ERROR); } else { M.msgDownloadError("An Unknown Error occurred! " + e.getMessage()); } @@ -155,7 +140,7 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { private void splitDecision() { long fileSize; try { - URL url = new URI(link).toURL(); + URL url = new URI(downloadLink).toURL(); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.connect(); fileSize = con.getHeaderFieldLong("Content-Length", -1); @@ -168,7 +153,7 @@ private void splitDecision() { exitCode = 1; return; } catch (IOException e) { - M.msgDownloadError(String.format(FAILED_CONNECTION_F, link)); + M.msgDownloadError(String.format(FAILED_CONNECTION_F, downloadLink)); exitCode = 1; return; } @@ -223,7 +208,7 @@ private void splitDownload() { String path = job.getFile().getAbsolutePath(); try { int numParts = new DownloadMetrics().getThreadCount(); - url = new URI(link).toURL(); + url = new URI(downloadLink).toURL(); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.connect(); long fileSize = con.getHeaderFieldLong("Content-Length", -1); @@ -297,7 +282,7 @@ private void splitDownload() { message = String.format(WRITE_ACCESS_DENIED_F, path); exitCode = 1; } catch (FileNotFoundException e) { - message = FILE_NOT_FOUND; + message = FILE_NOT_FOUND_ERROR; exitCode = 1; } catch (UnknownHostException e) { message = "You are not connected to the internet!"; @@ -317,7 +302,7 @@ private void downloadFile() { Path path = Paths.get(dir, filename); URL url = null; try { - url = new URI(link).toURL(); + url = new URI(downloadLink).toURL(); URLConnection con = url.openConnection(); con.connect(); @@ -360,7 +345,7 @@ private void downloadFile() { message = String.format(WRITE_ACCESS_DENIED_F, path); exitCode = 1; } catch (FileNotFoundException e) { - message = FILE_NOT_FOUND; + message = FILE_NOT_FOUND_ERROR; exitCode = 1; } catch (IOException e) { message = String.format(FAILED_CONNECTION_F, url); @@ -415,7 +400,7 @@ So I put a check in the second regex match (m2.find()) because if int minutes = parts.length > 1 ? Utility.parseStringToInt(parts[1], "Failed to parse minutes in ETA", MessageCategory.DOWNLOAD) : 0; int seconds = parts.length > 2 ? Utility.parseStringToInt(parts[2], "Failed to parse seconds in ETA", MessageCategory.DOWNLOAD) : 0; String time = String.format("%02d:%02d:%02d", hours, minutes, seconds); - updateMessage(speed + " " + units + " ETA " + time); + updateMessage("Downloading at " + speed + units + "/s (ETA " + time + ")"); if (progress > 99) { lastProgress = value; } @@ -436,7 +421,7 @@ private void sendFinalMessage(String message) { msg = message.isEmpty() ? String.format(SUCCESSFULLY_DOWNLOADED_F, filename) : message; M.msgDownloadInfo(msg); } else { - UIController.setDownloadInfoColor(RED); + UIController.setDownloadInfoColor(DARK_RED); msg = message.isEmpty() ? String.format(FAILED_TO_DOWNLOAD_F, filename) : message; M.msgDownloadError(msg); } @@ -451,51 +436,6 @@ public int getExitCode() { return exitCode; } - public String getSpotifyDownloadLink(String spotifyMetadataJson) { - sendInfoMessage("Trying to get download link..."); - if (spotifyMetadataJson == null) { - sendFinalMessage("Song metadata is missing!"); - return null; - } - JsonObject jsonObject = JsonParser.parseString(spotifyMetadataJson).getAsJsonObject(); - String songName = jsonObject.get("songName").getAsString(); - int duration = jsonObject.get("duration").getAsInt(); - JsonArray artists = jsonObject.get("artists").getAsJsonArray(); - ArrayList artistNames = new ArrayList<>(artists.size()); - for (int i = 0; i < artists.size(); i++) { - artistNames.add(artists.get(i).getAsString()); - } - String query = (String.join(", ", artistNames) + " - " + songName).toLowerCase(); - ArrayList> searchResults = Utility.getYoutubeSearchResults(query, true); - boolean searchedWithFilters = true; - if (searchResults == null) { - M.msgLogError("Failed to get search results for the song with filters! Trying without filters ..."); - searchResults = Utility.getYoutubeSearchResults(query, false); - searchedWithFilters = false; - if (searchResults == null) { - sendFinalMessage("Song is exclusive to Spotify and cannot be downloaded!"); - return null; - } - } - String matchedId = Utility.getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); - if (matchedId.isEmpty()) { - if (searchedWithFilters) { - M.msgLogError("Failed to get a matching video ID for the song with filters! Trying without filters ..."); - searchResults = Utility.getYoutubeSearchResults(query, false); - matchedId = Utility.getMatchingVideoID(Objects.requireNonNull(searchResults), duration, artistNames); - if (matchedId.isEmpty()) { - sendFinalMessage("Song is exclusive to Spotify and cannot be downloaded!"); - return null; - } - } else { - sendFinalMessage("Song is exclusive to Spotify and cannot be downloaded!"); - return null; - } - } - sendInfoMessage("Download link retrieved successfully!"); - return "https://www.youtube.com/watch?v=" + matchedId; - } - private double parseStringToDouble(String value) { try { return Double.parseDouble(value); diff --git a/GUI/src/main/java/gui/preferences/Clear.java b/GUI/src/main/java/gui/preferences/Clear.java index 0daa6d612..15001c3ca 100644 --- a/GUI/src/main/java/gui/preferences/Clear.java +++ b/GUI/src/main/java/gui/preferences/Clear.java @@ -23,8 +23,4 @@ public void mainAutoPaste() { public void mainTheme() { preferences.remove(MAIN_THEME.toString()); } - - public void jobs() { - preferences.remove(JOBS.toString()); - } } diff --git a/GUI/src/main/java/gui/preferences/Get.java b/GUI/src/main/java/gui/preferences/Get.java index befec1b5f..58613f79c 100644 --- a/GUI/src/main/java/gui/preferences/Get.java +++ b/GUI/src/main/java/gui/preferences/Get.java @@ -3,19 +3,11 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import gui.support.Folders; -import gui.support.Jobs; -import org.apache.commons.io.FileUtils; import org.hildan.fxgson.FxGson; -import properties.Program; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.prefs.Preferences; import static gui.preferences.Labels.*; -import static properties.Program.JOB_FILE; public class Get extends preferences.Get { private static final Get INSTANCE = new Get(); @@ -25,7 +17,6 @@ static Get getInstance() { return INSTANCE; } - public Folders folders() { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = FxGson.addFxSupport(gsonBuilder).setPrettyPrinting().create(); @@ -46,22 +37,6 @@ public String mainTheme() { return preferences.get(MAIN_THEME.toString(), "Light"); } - public Jobs jobs() { - GsonBuilder gsonBuilder = new GsonBuilder(); - Gson gson = FxGson.addFxSupport(gsonBuilder).setPrettyPrinting().create(); - Jobs jobs; - Path jobBatchFile = Paths.get(Program.get(JOB_FILE)); - try { - String json = FileUtils.readFileToString(jobBatchFile.toFile(), Charset.defaultCharset()); - if (json != null && !json.isEmpty()) { - jobs = gson.fromJson(json, Jobs.class); - return jobs; - } - } catch (IOException ignored) { - } - return new Jobs(); - } - public boolean alwaysAutoPaste() { return preferences.getBoolean(ALWAYS_AUTO_PASTE.toString(), false); } diff --git a/GUI/src/main/java/gui/preferences/Labels.java b/GUI/src/main/java/gui/preferences/Labels.java index 8fc0541d7..5d5d03fc3 100644 --- a/GUI/src/main/java/gui/preferences/Labels.java +++ b/GUI/src/main/java/gui/preferences/Labels.java @@ -1,5 +1,5 @@ package gui.preferences; public enum Labels implements preferences.Labels { - FOLDERS, MAIN_AUTO_PASTE, JOBS, ALWAYS_AUTO_PASTE, MAIN_THEME + FOLDERS, MAIN_AUTO_PASTE, ALWAYS_AUTO_PASTE, MAIN_THEME } diff --git a/GUI/src/main/java/gui/preferences/Set.java b/GUI/src/main/java/gui/preferences/Set.java index 862a6c4f3..824e2a7ec 100644 --- a/GUI/src/main/java/gui/preferences/Set.java +++ b/GUI/src/main/java/gui/preferences/Set.java @@ -3,19 +3,11 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import gui.support.Folders; -import gui.support.Jobs; -import org.apache.commons.io.FileUtils; import org.hildan.fxgson.FxGson; -import properties.Program; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.prefs.Preferences; import static gui.preferences.Labels.*; -import static properties.Program.JOB_FILE; public final class Set extends preferences.Set { private static final Set INSTANCE = new Set(); @@ -45,17 +37,4 @@ public void mainTheme(String theme) { AppSettings.CLEAR.mainTheme(); preferences.put(MAIN_THEME.toString(), theme); } - - public void jobs(Jobs jobs) { - GsonBuilder gsonBuilder = new GsonBuilder(); - Gson gson = FxGson.addFxSupport(gsonBuilder).setPrettyPrinting().create(); - String value = gson.toJson(jobs); - AppSettings.CLEAR.jobs(); - Path jobBatchFile = Paths.get(Program.get(JOB_FILE)); - try { - FileUtils.writeStringToFile(jobBatchFile.toFile(), value, Charset.defaultCharset()); - } catch (IOException e) { - throw new RuntimeException(e); - } - } } diff --git a/GUI/src/main/java/gui/support/Colors.java b/GUI/src/main/java/gui/support/Colors.java index 7a9f37d87..bd2315b80 100644 --- a/GUI/src/main/java/gui/support/Colors.java +++ b/GUI/src/main/java/gui/support/Colors.java @@ -4,10 +4,9 @@ public final class Colors { public static final Color GREEN = Color.rgb(0, 150, 0); - public static final Color RED = Color.rgb(157, 0, 0); + public static final Color DARK_RED = Color.rgb(157, 0, 0); + public static final Color BRIGHT_RED = Color.rgb(255, 59, 48); public static final Color PURPLE = Color.rgb(125, 0, 75); public static final Color HOTPINK = Color.rgb(255, 0, 175); - public static final Color BLACK = Color.rgb(0, 0, 0); public static final Color YELLOW = Color.rgb(255, 255, 0); - public static final Color BLUE = Color.rgb(0, 100, 255); } diff --git a/GUI/src/main/java/gui/support/GUIDownloadConfiguration.java b/GUI/src/main/java/gui/support/GUIDownloadConfiguration.java new file mode 100644 index 000000000..b2b98e61b --- /dev/null +++ b/GUI/src/main/java/gui/support/GUIDownloadConfiguration.java @@ -0,0 +1,26 @@ +package gui.support; + +import gui.init.Environment; +import gui.utils.MessageBroker; +import support.DownloadConfiguration; + +public class GUIDownloadConfiguration extends DownloadConfiguration { + private final MessageBroker messageBroker = Environment.getMessageBroker(); + + public GUIDownloadConfiguration(String link, String directory, String filename) { + super(link, directory, filename); + } + + public void prepareFileData() { + messageBroker.msgLinkInfo("Fetching file data..."); + int statusCode = fetchFileData(); + if (statusCode == 0) { + messageBroker.msgLinkInfo("File data fetched successfully"); + messageBroker.msgLinkInfo("Adding file(s) to batch..."); + updateJobList(); + messageBroker.msgLinkInfo("File(s) added to batch successfully"); + } else { + messageBroker.msgLogError("Failed to fetch file data"); + } + } +} diff --git a/GUI/src/main/java/gui/utils/MessageBroker.java b/GUI/src/main/java/gui/utils/MessageBroker.java index b00fbec5c..69a1f762d 100644 --- a/GUI/src/main/java/gui/utils/MessageBroker.java +++ b/GUI/src/main/java/gui/utils/MessageBroker.java @@ -1,5 +1,6 @@ package gui.utils; +import gui.preferences.AppSettings; import javafx.scene.paint.Color; import properties.MessageCategory; import properties.MessageType; @@ -8,9 +9,7 @@ import java.util.Objects; -import static gui.support.Colors.RED; -import static gui.support.Colors.GREEN; -import static gui.support.Colors.YELLOW; +import static gui.support.Colors.*; import static properties.MessageCategory.LOG; public class MessageBroker extends utils.MessageBroker { @@ -27,7 +26,7 @@ protected void sendMessage(String message, MessageType messageType, MessageCateg ui = null; } Color color = switch (messageType) { - case ERROR -> RED; + case ERROR -> "Dark".equals(AppSettings.GET.mainTheme()) ? BRIGHT_RED : DARK_RED; case INFO -> GREEN; default -> YELLOW; }; diff --git a/GUI/src/main/java/main/Drifty_GUI.java b/GUI/src/main/java/main/Drifty_GUI.java index 53b9b8b9c..4cf1bf4a1 100644 --- a/GUI/src/main/java/main/Drifty_GUI.java +++ b/GUI/src/main/java/main/Drifty_GUI.java @@ -145,14 +145,14 @@ private Menu getHelpMenu() { bug.setOnAction(e -> openWebsite("https://github.com/SaptarshiSarkar12/Drifty/issues/new?assignees=&labels=bug+%F0%9F%90%9B%2CApp+%F0%9F%92%BB&projects=&template=Bug-for-application.yaml&title=%5BBUG%5D+")); securityVulnerability.setOnAction(e -> openWebsite("https://github.com/SaptarshiSarkar12/Drifty/security/advisories/new")); feature.setOnAction(e -> openWebsite("https://github.com/SaptarshiSarkar12/Drifty/issues/new?assignees=&labels=feature+%E2%9C%A8%2CApp+%F0%9F%92%BB&projects=&template=feature-request-application.yaml&title=%5BFEATURE%5D+")); - checkForUpdates.setOnAction(e -> { + checkForUpdates.setOnAction(e -> new Thread(() -> { if (Utility.isOffline()) { ConfirmationDialog noInternet = new ConfirmationDialog("No Internet Connection", "You are currently offline! Please check your internet connection and try again.", true, false); noInternet.getResponse(); } else { - new Thread(this::checkForUpdates).start(); + checkForUpdates(); } - }); + }).start()); about.setOnAction(event -> { if (aboutInstance == null) { aboutInstance = new About(); diff --git a/GUI/src/main/java/ui/ConfirmationDialog.java b/GUI/src/main/java/ui/ConfirmationDialog.java index 4d42b7194..229bb17fd 100644 --- a/GUI/src/main/java/ui/ConfirmationDialog.java +++ b/GUI/src/main/java/ui/ConfirmationDialog.java @@ -46,6 +46,7 @@ enum State { private Stage stage; private VBox vbox; private String filename = ""; + private TextField tfFilename; public ConfirmationDialog(String windowTitle, String message, boolean okOnly, boolean isUpdateError) { this.windowTitle = windowTitle; @@ -120,7 +121,7 @@ private void createControls() { stage.close(); }); btnOk = newButton("OK", e -> stage.close()); - TextField tfFilename = new TextField(filename); + tfFilename = new TextField(filename); tfFilename.setMinWidth(width * .4); tfFilename.setMaxWidth(width * .8); tfFilename.setPrefWidth(width * .8); @@ -167,6 +168,7 @@ private void showScene() { Theme.changeButtonStyle(isDark, btnYes); Theme.changeButtonStyle(isDark, btnNo); Theme.changeButtonStyle(isDark, btnOk); + Theme.updateTextFields(isDark, false, tfFilename); stage.setWidth(width); stage.setHeight(height); stage.setScene(scene); diff --git a/GUI/src/main/java/ui/FileMetadataRetriever.java b/GUI/src/main/java/ui/FileMetadataRetriever.java new file mode 100644 index 000000000..e8f59d8b8 --- /dev/null +++ b/GUI/src/main/java/ui/FileMetadataRetriever.java @@ -0,0 +1,58 @@ +package ui; + +import gui.support.GUIDownloadConfiguration; +import javafx.application.Platform; +import javafx.concurrent.Task; +import utils.Utility; + +import java.util.Timer; +import java.util.TimerTask; + +import static gui.support.Colors.GREEN; + +public class FileMetadataRetriever extends Task { + private final GUIDownloadConfiguration config; + // Progress bar direction + boolean dirUp = true; + + public FileMetadataRetriever(GUIDownloadConfiguration config) { + this.config = config; + } + + @Override + protected Void call() { + updateProgress(0, 1); + this.updateMessage("Retrieving Filename(s)"); + Timer progTimer = new Timer(); + progTimer.scheduleAtFixedRate(runProgress(), 0, 150); + Thread prepareFileData = new Thread(config::prepareFileData); + prepareFileData.start(); + while (config.getFileCount() == 0 && config.getStatusCode() == 0) { + Utility.sleep(100); + } + int fileCount = config.getFileCount(); + while (prepareFileData.isAlive()) { + int filesProcessed = config.getFilesProcessed(); + updateProgress(filesProcessed, fileCount); + } + UIController.setDownloadInfoColor(GREEN); + updateMessage("File(s) added to batch."); + progTimer.cancel(); + updateProgress(0, 1); + return null; + } + + private TimerTask runProgress() { + return new TimerTask() { + @Override + public void run() { + Platform.runLater(() -> { + double value = getProgress(); + dirUp = (value >= 1.0 || value <= 0.0) != dirUp; + value += dirUp ? 0.01 : -0.01; + updateProgress(value, 1.0); + }); + } + }; + } +} diff --git a/GUI/src/main/java/ui/GetFilename.java b/GUI/src/main/java/ui/GetFilename.java deleted file mode 100644 index feb9ea221..000000000 --- a/GUI/src/main/java/ui/GetFilename.java +++ /dev/null @@ -1,203 +0,0 @@ -package ui; - -import gui.init.Environment; -import javafx.application.Platform; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.property.StringProperty; -import javafx.concurrent.Task; -import org.apache.commons.io.FileUtils; -import properties.MessageCategory; -import properties.Program; -import support.Job; -import utils.Utility; - -import java.io.*; -import java.nio.charset.Charset; -import java.util.StringJoiner; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static gui.support.Colors.GREEN; -import static properties.Program.YT_DLP; -import static utils.Utility.isSpotify; -import static utils.Utility.sleep; - -public class GetFilename extends Task> { - private final String link; - private final String dir; - private final String regex = "(\\[download] Downloading item \\d+ of )(\\d+)"; - private final Pattern pattern = Pattern.compile(regex); - private final String lineFeed = System.lineSeparator(); - private int result = -1; - private int fileCount; - private int filesProcessed; - private final ConcurrentLinkedDeque jobList = new ConcurrentLinkedDeque<>(); - private final StringProperty feedback = new SimpleStringProperty(); - boolean dirUp = true; - - public GetFilename(String link, String dir) { - this.link = link; - this.dir = dir; - } - - @Override - protected ConcurrentLinkedDeque call() { - updateProgress(0, 1); - this.updateMessage("Retrieving Filename(s)"); - Timer progTimer = new Timer(); - progTimer.scheduleAtFixedRate(runProgress(), 2500, 150); - Thread thread = new Thread(getFileCount()); - result = -1; - thread.start(); - while (result == -1) { - sleep(500); - } - boolean proceed = true; - if (fileCount > 0) { - progTimer.cancel(); - updateProgress(0, 1); - progTimer = null; - ConfirmationDialog ask = new ConfirmationDialog("Confirmation", "There are " + fileCount + " files in this list. Proceed and get all filenames?"); - proceed = ask.getResponse().isYes(); - } - if (proceed) { - Timer timer = new Timer(); - timer.scheduleAtFixedRate(getJson(), 100, 1); - if (isSpotify(link)) { - Utility.getSpotifySongMetadata(link); - } else { - Utility.getYtDlpMetadata(link); - } - sleep(1000); // give timerTask enough time to do its last run - timer.cancel(); - jobList.clear(); - UIController.setDownloadInfoColor(GREEN); - updateMessage("File(s) added to batch."); - if (progTimer != null) { - progTimer.cancel(); - } - updateProgress(0, 1); - } - return jobList; - } - - private TimerTask getJson() { - File appFolder = Program.getJsonDataPath().toFile(); - return new TimerTask() { - @Override - public void run() { - ConcurrentLinkedDeque jobList = new ConcurrentLinkedDeque<>(); - ConcurrentLinkedDeque deleteList = new ConcurrentLinkedDeque<>(); - File[] files = appFolder.listFiles(); - if (files == null) { - return; - } - for (File file : files) { - try { - if ("yt-metadata.info.json".equals(file.getName())) { - String jsonString = FileUtils.readFileToString(file, Charset.defaultCharset()); - String filename = Utility.getFilenameFromJson(jsonString); - updateMessage("Filename detected: " + filename); - jobList.addLast(new Job(link, dir, filename, false)); - } else if ("spotify-metadata.json".equals(file.getName())) { - String jsonString = FileUtils.readFileToString(file, Charset.defaultCharset()); - String filename = Utility.getSpotifyFilename(jsonString); - updateMessage("Filename detected: " + filename); - jobList.addLast(new Job(link, dir, filename, jsonString, false)); - } else { - continue; - } - if (fileCount > 1) { - filesProcessed++; - updateProgress(filesProcessed, fileCount); - } - UIController.addJob(jobList); - deleteList.addLast(file); - } catch (IOException e) { - Environment.getMessageBroker().msgFilenameError("Failed to get filename(s) from link: " + link); - Environment.getMessageBroker().msgLogError(e.getMessage()); - } - } - for (File file : deleteList) { - try { - if (file.exists()) { - FileUtils.forceDelete(file); - } - } catch (IOException ignored) { - } - } - } - }; - } - - - private TimerTask runProgress() { - return new TimerTask() { - @Override - public void run() { - Platform.runLater(() -> { - double value = getProgress(); - value = dirUp ? value + .01 : value - .01; - if (value > 1.0) { - dirUp = !dirUp; - value = 1.0; - } - if (value < 0) { - dirUp = !dirUp; - value = 0.0; - } - updateProgress(value, 1.0); - }); - } - }; - } - - private Runnable getFileCount() { - return () -> { - feedback.addListener(((observable, oldValue, newValue) -> { - String[] list = newValue.split(lineFeed); - if (list.length > 3) { - for (String line : list) { - Matcher m = pattern.matcher(line); - if (m.find()) { - fileCount = Utility.parseStringToInt(m.group(2), "Failed to get file count", MessageCategory.FILENAME); - break; - } - } - } - })); - try { - String command = Program.get(YT_DLP); - String[] args = new String[]{command, "--flat-playlist", "--skip-download", "-P", dir, link}; - ProcessBuilder pb = new ProcessBuilder(args); - pb.redirectErrorStream(true); - Process process = pb.start(); - StringJoiner joiner = new StringJoiner(lineFeed); - try { - try ( - InputStream inputStream = process.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)) - ) - { - String line; - while ((line = reader.readLine()) != null) { - if (this.isCancelled()) { - break; - } - joiner.add(line); - feedback.setValue(joiner.toString()); - } - } - } catch (IOException e) { - Environment.getMessageBroker().msgFilenameError("Failed to get filename(s) from link: " + link); - } - result = process.waitFor(); - } catch (IOException | InterruptedException e) { - Environment.getMessageBroker().msgFilenameError("Failed to get filename(s) from link: " + link); - } - }; - } -} diff --git a/GUI/src/main/java/ui/Theme.java b/GUI/src/main/java/ui/Theme.java index 5b8bd3a3b..97acb55cf 100644 --- a/GUI/src/main/java/ui/Theme.java +++ b/GUI/src/main/java/ui/Theme.java @@ -6,6 +6,7 @@ import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.paint.Color; @@ -74,14 +75,8 @@ private static void updateTextColors(boolean isDark, Scene... scenes) { } } changeInfoTextFlow(color); - // TextFields - String style = isDark ? "-fx-text-fill: White;" : "-fx-text-fill: Black;"; - UIController.form.tfDir.setStyle(style); - UIController.form.tfFilename.setStyle(style); - UIController.form.tfLink.setStyle(style); - if (Settings.getTfCurrentDirectory() != null) { - Settings.getTfCurrentDirectory().setStyle(style + "-fx-font-weight: Bold"); - } + updateTextFields(isDark, false, UIController.form.tfDir, UIController.form.tfFilename, UIController.form.tfLink); + updateTextFields(isDark, true, Settings.getTfCurrentDirectory()); } private static void changeInfoTextFlow(Paint color) { @@ -125,6 +120,15 @@ static void changeButtonStyle(boolean isDark, Button button) { } } + static void updateTextFields(boolean isDark, boolean isBold, TextField... textFields) { + String style = isDark ? "-fx-text-fill: White;" : "-fx-text-fill: Black;"; + for (TextField textField : textFields) { + if (textField != null) { + textField.setStyle(isBold ? style.concat("-fx-font-weight: Bold") : style); + } + } + } + private static void updateCSS(boolean isDark, Scene... scenes) { for (Scene scene : scenes) { if (scene != null) { diff --git a/GUI/src/main/java/ui/UIController.java b/GUI/src/main/java/ui/UIController.java index b2f70fea0..e101ca586 100644 --- a/GUI/src/main/java/ui/UIController.java +++ b/GUI/src/main/java/ui/UIController.java @@ -1,13 +1,11 @@ package ui; import backend.FileDownloader; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import gui.init.Environment; import gui.preferences.AppSettings; import gui.support.Constants; import gui.support.Folders; -import gui.support.Jobs; +import gui.support.GUIDownloadConfiguration; import gui.updater.GUIUpdateExecutor; import gui.utils.CheckFile; import gui.utils.MessageBroker; @@ -37,6 +35,7 @@ import properties.OS; import support.Job; import support.JobHistory; +import support.Jobs; import utils.Utility; import java.io.File; @@ -44,19 +43,18 @@ import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.*; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.LinkedList; +import java.util.concurrent.*; import static gui.support.Colors.*; -import static utils.Utility.*; +import static utils.Utility.renameFile; +import static utils.Utility.sleep; public final class UIController { public static final UIController INSTANCE = new UIController(); public static MainGridPane form; private Stage helpStage; - + private GUIDownloadConfiguration downloadConfig; private static final MessageBroker M = Environment.getMessageBroker(); private static final BooleanProperty DIRECTORY_EXISTS = new SimpleBooleanProperty(false); private static final BooleanProperty PROCESSING_BATCH = new SimpleBooleanProperty(false); @@ -67,9 +65,7 @@ public final class UIController { private int speedValue; private static final TextFlow INFO_TF = new TextFlow(); private static Scene infoScene; - private String songMetadataJson; private String filename; - private String songLink; private Folders folders; private Job selectedJob; @@ -136,7 +132,7 @@ private void downloadUpdate() { getJobs().clear(); // Download the latest executable - Job updateJob = new Job(Constants.updateURL.toString(), latestExecutableFile.getParent(), latestExecutableFile.getName(), false); + Job updateJob = new Job(Constants.updateURL.toString(), latestExecutableFile.getParent(), latestExecutableFile.getName(), Constants.updateURL.toString()); addJob(updateJob); Thread downloadUpdate = new Thread(batchDownloader()); downloadUpdate.start(); @@ -169,11 +165,12 @@ private void setControlProperties() { BooleanBinding disableStartButton = form.listView.itemsProperty().isNotNull().not().or(PROCESSING_BATCH).or(DIRECTORY_EXISTS.not()).or(VERIFYING_LINKS); BooleanBinding disableInputs = PROCESSING_BATCH.or(VERIFYING_LINKS); + BooleanBinding disableLinkInput = UPDATING_BATCH.or(PROCESSING_BATCH).or(VERIFYING_LINKS); form.btnSave.visibleProperty().bind(UPDATING_BATCH); form.btnStart.disableProperty().bind(disableStartButton); form.tfDir.disableProperty().bind(disableInputs); form.tfFilename.disableProperty().bind(disableInputs); - form.tfLink.disableProperty().bind(disableInputs); + form.tfLink.disableProperty().bind(disableLinkInput); form.listView.setContextMenu(getListMenu()); if ("Dark".equals(AppSettings.GET.mainTheme())) { @@ -186,13 +183,6 @@ private void setControlProperties() { Tooltip.install(form.tfLink, new Tooltip("URL must be a valid URL without spaces." + nl + " Add multiple URLs by pasting them in from the clipboard and separating each URL with a space.")); Tooltip.install(form.tfFilename, new Tooltip("If the filename you enter already exists in the download folder, it will" + nl + "automatically be renamed to avoid file over-writes.")); Tooltip.install(form.tfDir, new Tooltip("Right click anywhere to add a new download folder." + nl + "Drifty will accumulate a list of download folders" + nl + "so that duplicate downloads can be detected.")); - form.listView.setOnMouseClicked(e -> { - Job job = form.listView.getSelectionModel().getSelectedItem(); - setLink(job.getLink()); - setDir(job.getDir()); - setFilename(job.getFilename()); - selectJob(job); - }); form.cbAutoPaste.setSelected(AppSettings.GET.mainAutoPaste()); form.tfDir.textProperty().addListener(((observable, oldValue, newValue) -> { if (!newValue.equals(oldValue)) { @@ -216,6 +206,7 @@ private void setControlProperties() { private void setControlActions() { form.btnSave.setOnAction(e -> new Thread(() -> { + UPDATING_BATCH.setValue(true); String link = getLink(); filename = getFilename(); String dir = getDir(); @@ -226,9 +217,10 @@ private void setControlActions() { } } removeJobFromList(selectedJob); - addJob(new Job(link, dir, filename, selectedJob.getSpotifyMetadataJson(), selectedJob.repeatOK())); + addJob(new Job(link, dir, filename, selectedJob.getDownloadLink())); clearLink(); clearFilename(); + setDir(folders.getDownloadFolder()); UPDATING_BATCH.setValue(false); }).start()); form.btnStart.setOnAction(e -> new Thread(() -> { @@ -247,12 +239,18 @@ private void setControlActions() { form.tfLink.setOnKeyTyped(e -> processLink()); form.listView.setOnMouseClicked(e -> { if (e.getButton().equals(MouseButton.PRIMARY) && e.getClickCount() == 1) { - Job job = form.listView.getSelectionModel().getSelectedItem(); - if (job != null) { - selectJob(job); - setLink(job.getLink()); - setDir(job.getDir()); - setFilename(job.getFilename()); + if (UPDATING_BATCH.getValue().equals(true)) { + clearControls(); + setDir(folders.getDownloadFolder()); + UPDATING_BATCH.setValue(false); + } else { + Job job = form.listView.getSelectionModel().getSelectedItem(); + if (job != null) { + selectJob(job); + setLink(job.getSourceLink()); + setDir(job.getDir()); + setFilename(job.getFilename()); + } } } }); @@ -286,23 +284,7 @@ private void processLink() { } VERIFYING_LINKS.setValue(true); for (String link : links) { - if (isSpotify(link) && link.contains("playlist")) { - M.msgFilenameInfo("Retrieving the songs from the playlist..."); - ArrayList> playlistMetadata = Utility.getSpotifyPlaylistMetadata(link); - if (playlistMetadata != null && !playlistMetadata.isEmpty()) { - for (HashMap songMetadata : playlistMetadata) { - songLink = songMetadata.get("link").toString(); - String songName = songMetadata.get("songName").toString(); - filename = cleanFilename(songName) + ".webm"; - songMetadata.remove("link"); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - songMetadataJson = gson.toJson(songMetadata); - verifyLinksAndWaitFor(songLink); - } - } - } else { - verifyLinksAndWaitFor(link); - } + verifyLinksAndWaitFor(link); } VERIFYING_LINKS.setValue(false); clearLink(); @@ -312,9 +294,6 @@ private void processLink() { } private void verifyLinksAndWaitFor(String link) { - if (isInstagram(link)) { - link = formatInstagramLink(link); - } Thread verify = new Thread(verifyLink(link)); verify.start(); while (!verify.getState().equals(Thread.State.TERMINATED)) { @@ -331,16 +310,17 @@ private void verifyLinksAndWaitFor(String link) { */ private Runnable verifyLink(String link) { /* - When adding links to the jobList, only YouTube, Instagram and Spotify links will be put through the process of - searching the link for more than one download, in case the link happens to be a link to a playlist. This - will probably be far more common with YouTube links. + This method is called when the user pastes a link into the Link field. It checks the link to see if it is valid. + + If it is, it will then check to see if the link has been downloaded before. If it has, it will ask the user if they want to download it again. If they do, it will automatically rename the file to avoid overwriting the existing file. + If the file has not been downloaded before, it will add the link to the job list and begin the process of extracting the filename from the link. If it is a Spotify URL (song or playlist), then the final download link will be retrieved from the Spotify API. - If the link does not test positive for YouTube, Instagram or Spotify, then it is merely added to the jobList as a job - with only the link and the download folder given to the Job class. However, the Job class will take all - the text after the last forward slash in the link and set it as the filename for that job. + If the link is not valid, the user will be informed and the link field will be cleared. Users should be instructed to click through each job in the list and make sure the filename is what they - want. They can change it after clicking on the job in the list then clicking on the save button. + want. They can change it after clicking on the job in the list, then clicking on the save button. + They can deselect the job by clicking on the list again with CTRL held down. Alternatively, they can click on the Save button to save the job. + Also, they can press the DELETE key to remove the selected job from the list. */ return () -> { if (link.isEmpty()) { @@ -372,33 +352,20 @@ private Runnable verifyLink(String link) { ConfirmationDialog ask = new ConfirmationDialog(windowTitle, message, renameFile(filename, dir)); if (ask.getResponse().isYes()) { filename = ask.getFilename(); - if (isSpotify(link)) { - addJob(new Job(link, dir, filename, job.getSpotifyMetadataJson(), true)); - } else { - addJob(new Job(link, dir, filename, true)); - } - } - } else if (Utility.isExtractableLink(link)) { - if (isSpotify(link) && link.contains("playlist")) { - if (!songMetadataJson.isEmpty()) { - addJob(new Job(link, getDir(), filename, songMetadataJson, true)); - } else { - Thread getNames = new Thread(getFilenames(songLink)); - getNames.start(); - while (!getNames.getState().equals(Thread.State.TERMINATED)) { - sleep(150); - } - } - } else { - Thread getNames = new Thread(getFilenames(link)); - getNames.start(); - while (!getNames.getState().equals(Thread.State.TERMINATED)) { - sleep(150); - } + downloadConfig = new GUIDownloadConfiguration(link, dir, filename); } } else { - addJob(new Job(link, getDir())); + downloadConfig = new GUIDownloadConfiguration(link, getDir(), null); // Filename is null because it will be retrieved from the link } + downloadConfig.sanitizeLink(); + ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); + executor.scheduleWithFixedDelay(this::commitJobListToListView, 0, 100, TimeUnit.MILLISECONDS); + Thread getNames = new Thread(getFilenames(downloadConfig)); + getNames.start(); + while (!getNames.getState().equals(Thread.State.TERMINATED)) { + sleep(150); + } + executor.shutdown(); } clearFilename(); clearLink(); @@ -407,14 +374,15 @@ private Runnable verifyLink(String link) { } else { M.msgLinkError("Link already in job list"); clearLink(); + UPDATING_BATCH.setValue(false); } }; } - private Runnable getFilenames(String link) { + private Runnable getFilenames(GUIDownloadConfiguration config) { return () -> { - // Using a Worker Task, this method gets the filename(s) from the link. - Task> task = new GetFilename(link, getDir()); + // Using a Worker Task, this method calls the FileMetadataRetriever class to retrieve all the required metadata for the file(s) to be downloaded and adds them to the jobList. + Task task = new FileMetadataRetriever(config); Platform.runLater(() -> { /* These bindings allow the Worker thread to post relevant information to the UI, including the progress bar which @@ -422,32 +390,19 @@ private Runnable getFilenames(String link) { to extract, the progress bar goes through a static animation to indicate that the program is not frozen. The controls that are bound to the thread cannot have their text updated while they are bound or else an error will be thrown and possibly the program execution halted. */ - form.lblDownloadInfo.textProperty().bind(((Worker>) task).messageProperty()); - form.pBar.progressProperty().bind(((Worker>) task).progressProperty()); + form.lblDownloadInfo.textProperty().bind(((Worker) task).messageProperty()); + form.pBar.progressProperty().bind(((Worker) task).progressProperty()); }); - - /* - This parent thread allows us to repeatedly check the Worker Task Thread for new filenames found so that we can add them - to the job batch as they are discovered. Doing this in this thread keeps the UI from appearing frozen to the user. - We use the checkHistoryAddJobs method to look for discovered filenames. If we didn't do it this way, then we would need - to wait until all filenames are discovered then add the jobs to the batch list in one action. Doing it this way - gives the user more consistent feedback of the process while it is happening. This matters when a link contains - a lot of files because each file discovered takes a while, and when there are even hundreds of files, this process - can appear to take a long time, so constant feedback for the user becomes relevant. - */ - - setLink(link); - Thread getFilenameThread = new Thread(task); - getFilenameThread.setDaemon(true); - getFilenameThread.start(); + setLink(config.getLink()); + Thread retrieveFileData = new Thread(task); + retrieveFileData.setDaemon(true); + retrieveFileData.start(); sleep(2000); form.lblDownloadInfo.setTextFill(GREEN); - while (!getFilenameThread.getState().equals(Thread.State.TERMINATED) && !getFilenameThread.getState().equals(Thread.State.BLOCKED)) { - checkHistoryAddJobs(task); + while (!retrieveFileData.getState().equals(Thread.State.TERMINATED) && !retrieveFileData.getState().equals(Thread.State.BLOCKED)) { sleep(50); } sleep(500); - checkHistoryAddJobs(task); // Check one last time clearControls(); }; } @@ -466,7 +421,7 @@ private Runnable batchDownloader() { int speed = speedValue / 5; speedValueUpdateCount = 0; speedValue = 0; - setFilenameOutput(GREEN, speed + " /s"); + setFilenameOutput(GREEN, "Speed: " + speed + " KB/s"); } } })); @@ -517,7 +472,7 @@ private String fileExists(String filename) { private boolean linkInJobList(String link) { for (Job job : getJobs().jobList()) { - if (job.getLink().equals(link)) { + if (job.getSourceLink().equals(link)) { return true; } } @@ -529,90 +484,36 @@ private void addJob(Job newJob) { for (Job job : getJobs().jobList()) { if (job.matchesLink(newJob)) { oldJob = job; + System.out.println("Old Job: " + oldJob.getFilename() + " " + oldJob.getSourceLink()); + System.out.println("New Job: " + newJob.getFilename() + " " + newJob.getSourceLink()); break; } } if (oldJob != null) { getJobs().remove(oldJob); + System.out.println("Job Removed: " + oldJob.getFilename()); } getJobs().add(newJob); + System.out.println("Job Added: " + newJob.getFilename()); commitJobListToListView(); } - public static void addJob(ConcurrentLinkedDeque list) { - /* - This takes the list passed in as argument and compares it against the jobs in the current jobList - then it only adds jobs that do not exist. - */ - for (Job job : list) { - boolean hasJob = INSTANCE.getJobs().jobList().stream().anyMatch(jb -> jb.getFilename().equals(job.getFilename())); - if (!hasJob) { - INSTANCE.addJob(job); - } - } - } - private void removeJobFromList(Job oldJob) { getJobs().remove(oldJob); commitJobListToListView(); - M.msgBatchInfo("Job Removed: " + oldJob.getLink()); + M.msgBatchInfo("Job Removed: " + oldJob.getSourceLink()); } private void updateBatch() { UPDATING_BATCH.setValue(false); if (selectedJob != null) { - Job job = new Job(getLink(), getDir(), getFilename(), selectedJob.repeatOK()); + Job job = new Job(selectedJob.getSourceLink(), getDir(), getFilename(), selectedJob.getDownloadLink()); removeJobFromList(selectedJob); addJob(job); } selectedJob = null; } - private void checkHistoryAddJobs(Worker> worker) { - String pastJobNoFile = "You have downloaded %s in the past, but the file does not exist in your download folder." + nl.repeat(2) + " Click Yes if you still wish to download this file. Otherwise, click No."; - String pastJobFileExists = "You have downloaded %s in the past, and the file exists in your download folder." + nl.repeat(2) + "It will be renamed as shown here, or you may change the filename to your liking." + nl.repeat(2) + "Clicking Yes will commit the job with the shown filename, while clicking No will not add this file to the job list."; - String fileExistsString = "This file:" + nl.repeat(2) + "%s" + nl.repeat(2) + "Exists in in the download folder." + nl.repeat(2) + "It will be renamed as shown here, or you may change the filename to your liking." + nl.repeat(2) + "Clicking Yes will commit the job with the shown filename, while clicking No will not add this file to the job list."; - Platform.runLater(() -> { - String message; - ConfirmationDialog ask = new ConfirmationDialog("", ""); - boolean addJob; - if (worker.valueProperty().get() != null) { - for (Job job : worker.valueProperty().get()) { - boolean fileExists = job.fileExists(); - boolean hasHistory = getHistory().exists(job.getLink()); - boolean existsHasHistory = fileExists && hasHistory; - boolean existsNoHistory = fileExists && !hasHistory; - boolean fileHasHistory = hasHistory && !fileExists; - if (!getJobs().jobList().contains(job)) { - if (existsHasHistory) { - message = String.format(pastJobFileExists, job.getFilename()); - ask = new ConfirmationDialog("File Already Downloaded and Exists", message, renameFile(job.getFilename(), job.getDir())); - } else if (existsNoHistory) { - message = String.format(fileExistsString, job.getFilename()); - ask = new ConfirmationDialog("File Already Exists", message, false, false); - } else if (fileHasHistory) { - message = String.format(pastJobNoFile, job.getFilename()); - ask = new ConfirmationDialog("File Already Downloaded", message, false, false); - } - if (fileHasHistory || existsHasHistory || existsNoHistory) { - addJob = ask.getResponse().isYes(); - if (addJob) { - String newFilename = ask.getFilename(); - boolean repeatDownload = newFilename.equals(job.getFilename()); - String filename = newFilename.isEmpty() ? job.getFilename() : newFilename; - if (!filename.isEmpty()) { - addJob(new Job(job.getLink(), job.getDir(), filename, repeatDownload)); - } - } - } else { - addJob(job); - } - } - } - } - }); - } - private void delayFolderSave(String folderString, File folder) { /* If the user is typing a file path into the field, we don't want to save every folder 'hit' so we wait 3 seconds @@ -646,6 +547,7 @@ private ContextMenu getListMenu() { commitJobListToListView(); clearLink(); clearFilename(); + UPDATING_BATCH.setValue(false); form.listView.getItems().clear(); form.listView.getItems(); M.msgLinkInfo(""); @@ -738,7 +640,7 @@ public void setLinkOutput(Color color, String message) { Platform.runLater(() -> { form.lblLinkOut.getStyleClass().clear(); form.lblLinkOut.setText(message); - if (color.equals(RED) || color.equals(YELLOW)) { + if (color.equals(DARK_RED) || color.equals(YELLOW)) { new Thread(() -> { sleep(5000); clearLinkOutput(); @@ -759,7 +661,7 @@ public void setDirOutput(Color color, String message) { } form.lblDirOut.setTextFill(color); form.lblDirOut.setText(message); - if (color.equals(RED) || color.equals(YELLOW)) { + if (color.equals(DARK_RED) || color.equals(YELLOW)) { new Thread(() -> { sleep(5000); clearDirOutput(); @@ -780,7 +682,7 @@ public void setFilenameOutput(Color color, String message) { } form.lblFilenameOut.setTextFill(color); form.lblFilenameOut.setText(message); - if (color.equals(RED) || color.equals(YELLOW)) { + if (color.equals(DARK_RED) || color.equals(YELLOW)) { new Thread(() -> { sleep(5000); clearFilenameOutput(); @@ -803,7 +705,7 @@ public void setDownloadOutput(Color color, String message) { form.lblDownloadInfo.textProperty().unbind(); form.lblDownloadInfo.setTextFill(color); form.lblDownloadInfo.setText(message); - if (color.equals(RED) || color.equals(YELLOW)) { + if (color.equals(DARK_RED) || color.equals(YELLOW)) { new Thread(() -> { sleep(5000); clearDownloadOutput(); @@ -842,13 +744,9 @@ private void commitJobListToListView() { if (getJobs().isEmpty()) { form.listView.getItems().clear(); } else { - // Use TreeSet to remove duplicates and sort simultaneously - Set sortedJobs = new TreeSet<>(Comparator.comparing(Job::toString)); - sortedJobs.addAll(getJobs().jobList()); - getJobs().setList(new ConcurrentLinkedDeque<>(sortedJobs)); + // Assign the jobList to the ListView + form.listView.getItems().setAll(getJobs().jobList()); } - // Assign the jobList to the ListView - form.listView.getItems().setAll(getJobs().jobList()); } }); } diff --git a/GUI/src/main/resources/META-INF/native-image/reflect-config.json b/GUI/src/main/resources/META-INF/native-image/reflect-config.json index b9158f6e8..0baa09268 100644 --- a/GUI/src/main/resources/META-INF/native-image/reflect-config.json +++ b/GUI/src/main/resources/META-INF/native-image/reflect-config.json @@ -251,6 +251,10 @@ "name":"java.util.concurrent.atomic.Striped64", "fields":[{"name":"base"}, {"name":"cellsBusy"}] }, +{ + "name":"java.util.concurrent.atomic.Striped64$Cell", + "fields":[{"name":"value"}] +}, { "name":"javafx.scene.Camera" }, @@ -505,6 +509,11 @@ "allDeclaredFields":true, "methods":[{"name":"","parameterTypes":[] }] }, +{ + "name":"support.Jobs", + "allDeclaredFields":true, + "methods":[{"name":"","parameterTypes":[] }] +}, { "name":"ui.Splash", "methods":[{"name":"","parameterTypes":[] }] From aea7aaa6c06272fc26fe6ca251ebb09a315d4658 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Sep 2024 07:11:54 +0530 Subject: [PATCH 02/77] chore(maven): bump commons-io:commons-io from 2.16.1 to 2.17.0 (#652) Bumps commons-io:commons-io from 2.16.1 to 2.17.0. --- updated-dependencies: - dependency-name: commons-io:commons-io dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- Core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/pom.xml b/Core/pom.xml index 5299030fe..fc8f04c1f 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -22,7 +22,7 @@ commons-io commons-io - 2.16.1 + 2.17.0 org.hildan.fxgson From 56b322151d67f69aa7c2ba02a6aab278b97fc457 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 22:20:22 +0530 Subject: [PATCH 03/77] chore(npm): bump eslint-config-next from 14.2.12 to 14.2.13 in /Website (#655) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.2.12 to 14.2.13. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v14.2.13/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 43000d123..a3a952bfb 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.1.8", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.12", + "eslint-config-next": "14.2.13", "next": "14.2.12", "postcss": "8.4.47", "react": "18.3.1", @@ -294,9 +294,9 @@ "integrity": "sha512-3fP29GIetdwVIfIRyLKM7KrvJaqepv+6pVodEbx0P5CaMLYBtx+7eEg8JYO5L9sveJO87z9eCReceZLi0hxO1Q==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.12.tgz", - "integrity": "sha512-cPrKbXtK8NTThOOFNxRGGTw+5s02Ek8z8ri/hZqeKs6uP8LOTGqFyBy6hpCXt7TvLzzriWiiwRyD4h0XYmPEEg==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.13.tgz", + "integrity": "sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==", "dependencies": { "glob": "10.3.10" } @@ -1918,11 +1918,11 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.12.tgz", - "integrity": "sha512-fzUIlF6Ng1cUFFd013wn9H3YhKe3vV/cZBC0Ec9S64q/wGoTq0HlASA7WgiOwDAISSbzkLprInLiIMu6U8bqEw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.13.tgz", + "integrity": "sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==", "dependencies": { - "@next/eslint-plugin-next": "14.2.12", + "@next/eslint-plugin-next": "14.2.13", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index d631365ee..696e1061e 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.1.8", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.12", + "eslint-config-next": "14.2.13", "next": "14.2.12", "postcss": "8.4.47", "react": "18.3.1", From a2c98ef17276037807bd4faf26abe8967f947000 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 22:54:32 +0530 Subject: [PATCH 04/77] chore(npm): bump next from 14.2.12 to 14.2.13 in /Website (#656) Bumps [next](https://github.com/vercel/next.js) from 14.2.12 to 14.2.13. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.12...v14.2.13) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 88 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index a3a952bfb..2939c0d77 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.13", - "next": "14.2.12", + "next": "14.2.13", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -289,9 +289,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.12.tgz", - "integrity": "sha512-3fP29GIetdwVIfIRyLKM7KrvJaqepv+6pVodEbx0P5CaMLYBtx+7eEg8JYO5L9sveJO87z9eCReceZLi0hxO1Q==" + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.13.tgz", + "integrity": "sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.13", @@ -345,9 +345,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.12.tgz", - "integrity": "sha512-crHJ9UoinXeFbHYNok6VZqjKnd8rTd7K3Z2zpyzF1ch7vVNKmhjv/V7EHxep3ILoN8JB9AdRn/EtVVyG9AkCXw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz", + "integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==", "cpu": [ "arm64" ], @@ -360,9 +360,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.12.tgz", - "integrity": "sha512-JbEaGbWq18BuNBO+lCtKfxl563Uw9oy2TodnN2ioX00u7V1uzrsSUcg3Ep9ce+P0Z9es+JmsvL2/rLphz+Frcw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz", + "integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==", "cpu": [ "x64" ], @@ -375,9 +375,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.12.tgz", - "integrity": "sha512-qBy7OiXOqZrdp88QEl2H4fWalMGnSCrr1agT/AVDndlyw2YJQA89f3ttR/AkEIP9EkBXXeGl6cC72/EZT5r6rw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz", + "integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==", "cpu": [ "arm64" ], @@ -390,9 +390,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.12.tgz", - "integrity": "sha512-EfD9L7o9biaQxjwP1uWXnk3vYZi64NVcKUN83hpVkKocB7ogJfyH2r7o1pPnMtir6gHZiGCeHKagJ0yrNSLNHw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz", + "integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.12.tgz", - "integrity": "sha512-iQ+n2pxklJew9IpE47hE/VgjmljlHqtcD5UhZVeHICTPbLyrgPehaKf2wLRNjYH75udroBNCgrSSVSVpAbNoYw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz", + "integrity": "sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==", "cpu": [ "x64" ], @@ -420,9 +420,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.12.tgz", - "integrity": "sha512-rFkUkNwcQ0ODn7cxvcVdpHlcOpYxMeyMfkJuzaT74xjAa5v4fxP4xDk5OoYmPi8QNLDs3UgZPMSBmpBuv9zKWA==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz", + "integrity": "sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==", "cpu": [ "x64" ], @@ -435,9 +435,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.12.tgz", - "integrity": "sha512-PQFYUvwtHs/u0K85SG4sAdDXYIPXpETf9mcEjWc0R4JmjgMKSDwIU/qfZdavtP6MPNiMjuKGXHCtyhR/M5zo8g==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz", + "integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==", "cpu": [ "arm64" ], @@ -450,9 +450,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.12.tgz", - "integrity": "sha512-FAj2hMlcbeCV546eU2tEv41dcJb4NeqFlSXU/xL/0ehXywHnNpaYajOUvn3P8wru5WyQe6cTZ8fvckj/2XN4Vw==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz", + "integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==", "cpu": [ "ia32" ], @@ -465,9 +465,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.12.tgz", - "integrity": "sha512-yu8QvV53sBzoIVRHsxCHqeuS8jYq6Lrmdh0briivuh+Brsp6xjg80MAozUsBTAV9KNmY08KlX0KYTWz1lbPzEg==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz", + "integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==", "cpu": [ "x64" ], @@ -4128,11 +4128,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "14.2.12", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.12.tgz", - "integrity": "sha512-cDOtUSIeoOvt1skKNihdExWMTybx3exnvbFbb9ecZDIxlvIbREQzt9A5Km3Zn3PfU+IFjyYGsHS+lN9VInAGKA==", + "version": "14.2.13", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.13.tgz", + "integrity": "sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==", "dependencies": { - "@next/env": "14.2.12", + "@next/env": "14.2.13", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -4147,15 +4147,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.12", - "@next/swc-darwin-x64": "14.2.12", - "@next/swc-linux-arm64-gnu": "14.2.12", - "@next/swc-linux-arm64-musl": "14.2.12", - "@next/swc-linux-x64-gnu": "14.2.12", - "@next/swc-linux-x64-musl": "14.2.12", - "@next/swc-win32-arm64-msvc": "14.2.12", - "@next/swc-win32-ia32-msvc": "14.2.12", - "@next/swc-win32-x64-msvc": "14.2.12" + "@next/swc-darwin-arm64": "14.2.13", + "@next/swc-darwin-x64": "14.2.13", + "@next/swc-linux-arm64-gnu": "14.2.13", + "@next/swc-linux-arm64-musl": "14.2.13", + "@next/swc-linux-x64-gnu": "14.2.13", + "@next/swc-linux-x64-musl": "14.2.13", + "@next/swc-win32-arm64-msvc": "14.2.13", + "@next/swc-win32-ia32-msvc": "14.2.13", + "@next/swc-win32-x64-msvc": "14.2.13" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/Website/package.json b/Website/package.json index 696e1061e..08c80441d 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.13", - "next": "14.2.12", + "next": "14.2.13", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From 4d3ad28807baf4a84491ef0ccb1cb24179528314 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 22:57:47 +0530 Subject: [PATCH 05/77] chore(npm): bump tailwindcss from 3.4.12 to 3.4.13 in /Website (#657) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.12 to 3.4.13. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.13/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.12...v3.4.13) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 8 ++++---- Website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 2939c0d77..e4f866388 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -18,7 +18,7 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.12" + "tailwindcss": "3.4.13" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -5485,9 +5485,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tailwindcss": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.12.tgz", - "integrity": "sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==", + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", diff --git a/Website/package.json b/Website/package.json index 08c80441d..a0a81d04f 100644 --- a/Website/package.json +++ b/Website/package.json @@ -19,6 +19,6 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.12" + "tailwindcss": "3.4.13" } } From e5a2c45a1c00816ba63f287e4c9b21bad55d3a9f Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Wed, 25 Sep 2024 07:58:06 +0530 Subject: [PATCH 06/77] fix: Fixed Copa docker image patch action to handle cases when there is no vulnerability --- .github/workflows/dev-docker-build.yml | 3 ++- .github/workflows/docker-publish.yml | 3 ++- .github/workflows/nextjs.yml | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index 8758fde68..ec9b796f3 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -40,10 +40,11 @@ jobs: sudo mv dist/linux_amd64/release/copa /usr/local/bin/ - name: Run Copa to patch vulnerabilities if: matrix.os == 'ubuntu-latest' + continue-on-error: true # to handle cases where the image does not have vulnerabilities uses: nick-fields/retry@v3 # Retry action to handle network issues with: timeout_minutes: 15 - max_attempts: 5 + max_attempts: 3 retry_on: error command: | docker run --detach --rm --privileged --name buildkitd --entrypoint buildkitd moby/buildkit:latest diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ee1decb5f..1a5835e7e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -172,10 +172,11 @@ jobs: make sudo mv dist/linux_amd64/release/copa /usr/local/bin/ - name: Run Copa to patch vulnerabilities + continue-on-error: true # to handle cases where the image does not have vulnerabilities uses: nick-fields/retry@v3 # Retry action to handle network issues with: timeout_minutes: 15 - max_attempts: 5 + max_attempts: 3 retry_on: error command: | docker run --detach --rm --privileged --name buildkitd --entrypoint buildkitd moby/buildkit:latest diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index 0a8d89f61..7704ca110 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -64,10 +64,10 @@ jobs: path: | .next/cache # Generate a new cache whenever packages or source files change. - key: ${{ runner.os }}-nextjs-${{ hashFiles('**/Website/package-lock.json', '**/Website/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + key: ${{ runner.os }}-nextjs-${{ hashFiles('**/Website/package-lock.json') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} # If source files changed but packages didn't, rebuild from a prior cache. restore-keys: | - ${{ runner.os }}-nextjs-${{ hashFiles('**/Website/package-lock.json', '**/Website/yarn.lock') }}- + ${{ runner.os }}-nextjs-${{ hashFiles('**/Website/package-lock.json') }}- - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} - name: Build with Next.js From 3f61c54bd0274bdaf95273281882d473dfe559cb Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Wed, 25 Sep 2024 08:10:51 +0530 Subject: [PATCH 07/77] chore: Reduced retry time for copa workflow --- .github/workflows/dev-docker-build.yml | 2 +- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index ec9b796f3..39f6dce6f 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -49,7 +49,7 @@ jobs: command: | docker run --detach --rm --privileged --name buildkitd --entrypoint buildkitd moby/buildkit:latest copa patch -i oraclelinux:9-slim -t 9-slim --addr docker-container://buildkitd --timeout 10m - retry_wait_seconds: '30' + retry_wait_seconds: '10' on_retry_command: | docker stop buildkitd - name: Build Docker image diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 1a5835e7e..93e3634b3 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -181,7 +181,7 @@ jobs: command: | docker run --detach --rm --privileged --name buildkitd --entrypoint buildkitd moby/buildkit:latest copa patch -i oraclelinux:9-slim -t 9-slim --addr docker-container://buildkitd --timeout 10m - retry_wait_seconds: '30' + retry_wait_seconds: '10' on_retry_command: | docker stop buildkitd # Build and push Docker image with Buildx (don't push on PR and branches created by Dependabot) From fb8264b91954ea235de2a0039f9a7debe35dc16b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:17:27 +0530 Subject: [PATCH 08/77] chore(maven): bump org.openrewrite.recipe:rewrite-recommendations from 1.9.0 to 1.10.0 (#658) chore(maven): bump org.openrewrite.recipe:rewrite-recommendations Bumps [org.openrewrite.recipe:rewrite-recommendations](https://github.com/openrewrite/rewrite-recommendations) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/openrewrite/rewrite-recommendations/releases) - [Commits](https://github.com/openrewrite/rewrite-recommendations/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recommendations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index abdd3fe1b..bc876a13b 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ org.openrewrite.recipe rewrite-recommendations - 1.9.0 + 1.10.0 From 80f9d5e74d535d36c39d9cb5aa97fdee70a25888 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:35:37 +0530 Subject: [PATCH 09/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.40.2 to 5.41.0 (#659) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.40.2 to 5.41.0. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.40.2...v5.41.0) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bc876a13b..74593c748 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.40.2 + 5.41.0 org.openrewrite.staticanalysis.CommonStaticAnalysis From b215905b9caee515bf6ce69a62811b193767e31e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:50:11 +0530 Subject: [PATCH 10/77] chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis from 1.16.0 to 1.17.0 (#660) chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis Bumps [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis) from 1.16.0 to 1.17.0. - [Release notes](https://github.com/openrewrite/rewrite-static-analysis/releases) - [Commits](https://github.com/openrewrite/rewrite-static-analysis/compare/v1.16.0...v1.17.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-static-analysis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 74593c748..221539cf3 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ org.openrewrite.recipe rewrite-static-analysis - 1.16.0 + 1.17.0 org.openrewrite.recipe From af3cd1f3603442975e472fc6dc32b27378b53974 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:52:02 +0000 Subject: [PATCH 11/77] chore: Bump Drifty version to 2.1.0 rc - Revision 1 --- CLI/pom.xml | 2 +- Core/pom.xml | 2 +- Core/src/main/java/support/Constants.java | 2 +- GUI/pom.xml | 2 +- GUI/src/darwin/Info.plist | 4 ++-- pom.xml | 2 +- version.json | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CLI/pom.xml b/CLI/pom.xml index aabce8600..6180d07df 100644 --- a/CLI/pom.xml +++ b/CLI/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-beta.1 + 2.1.0-rc.1 CLI jar diff --git a/Core/pom.xml b/Core/pom.xml index fc8f04c1f..9df4f378c 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-beta.1 + 2.1.0-rc.1 Core Core diff --git a/Core/src/main/java/support/Constants.java b/Core/src/main/java/support/Constants.java index 75a3fce3d..83d96044d 100644 --- a/Core/src/main/java/support/Constants.java +++ b/Core/src/main/java/support/Constants.java @@ -9,7 +9,7 @@ public class Constants { public static final String APPLICATION_NAME = "Drifty"; - public static final String VERSION_NUMBER = "v2.1.0-beta.1"; + public static final String VERSION_NUMBER = "v2.1.0-rc.1"; public static final String DRIFTY_WEBSITE_URL = "https://saptarshisarkar12.github.io/Drifty/"; public static final String INVALID_LINK = "Link is invalid! Please check the link and try again."; public static final String FILENAME_DETECTION_ERROR = "Failed to detect the filename! A default name will be used instead."; diff --git a/GUI/pom.xml b/GUI/pom.xml index 8fabb16a7..b4b5599c5 100644 --- a/GUI/pom.xml +++ b/GUI/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-beta.1 + 2.1.0-rc.1 GUI Drifty GUI diff --git a/GUI/src/darwin/Info.plist b/GUI/src/darwin/Info.plist index 8902c7cd3..1bb71b42d 100644 --- a/GUI/src/darwin/Info.plist +++ b/GUI/src/darwin/Info.plist @@ -5,9 +5,9 @@ CFBundleIdentifier io.github.SaptarshiSarkar12.Drifty-GUI CFBundleVersion - 2.1.0-beta.1 + 2.1.0-rc.1 CFBundleShortVersionString - 2.1.0-beta.1 + 2.1.0-rc.1 CFBundleExecutable Drifty GUI CFBundleIconFile diff --git a/pom.xml b/pom.xml index 221539cf3..2e537eb83 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-beta.1 + 2.1.0-rc.1 pom Drifty Drifty is an Open-Source Interactive File Downloader System built with Java diff --git a/version.json b/version.json index ded656d90..c7354b88b 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "2.1.0-beta.1" + "version": "2.1.0-rc.1" } From a14f07772a46babb35fbd852d25e1405752b52d9 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Sun, 29 Sep 2024 15:31:31 +0530 Subject: [PATCH 12/77] fix(CI): Fixed failing yt-dlp update job in build workflow --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9284ae19..40e6e74ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,7 @@ jobs: timeout_seconds: 60 max_attempts: 5 retry_on: error + retry_wait_seconds: '30' command: | chmod +x Core/src/main/resources/yt-dlp Core/src/main/resources/yt-dlp -U @@ -82,6 +83,7 @@ jobs: timeout_seconds: 60 max_attempts: 5 retry_on: error + retry_wait_seconds: '30' command: | chmod +x Core/src/main/resources/yt-dlp_macos Core/src/main/resources/yt-dlp_macos -U @@ -92,6 +94,7 @@ jobs: timeout_seconds: 60 max_attempts: 5 retry_on: error + retry_wait_seconds: '30' command: | Core/src/main/resources/yt-dlp.exe -U - name: Set up GraalVM JDK 21 From 61c7395e666e380f176a7d5eae83e4c1fcca516a Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Sun, 29 Sep 2024 16:21:30 +0530 Subject: [PATCH 13/77] fix(CI): Fixed release job --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 40e6e74ed..1192a8d45 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -191,6 +191,9 @@ jobs: env: VERSION: ${{ needs.fetch-drifty-version.outputs.VERSION }} steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} - name: Split up Version into semantic parts run: | echo "VERSION_NUMBER=$(echo $VERSION | cut -d '-' -f1)" >> $GITHUB_ENV From 63a7f78f0aaa984538fe80bfe88faee8bac7cff5 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Sun, 29 Sep 2024 17:30:05 +0530 Subject: [PATCH 14/77] fix(CI): Fixed release job by renaming macOS artifacts --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1192a8d45..e096b4178 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -305,7 +305,7 @@ jobs: if: ${{ github.repository == 'SaptarshiSarkar12/Drifty' && github.ref_name == 'master' && github.event_name == 'workflow_dispatch' && env.RELEASE_STAGE != 'Stable' }} run: | echo "## Release :bookmark: Drifty v${{ env.VERSION_NUMBER }} ${{ env.RELEASE_STAGE }} - Revision ${{ env.REVISION_NUMBER }}" >> $GITHUB_STEP_SUMMARY - gh release create v$VERSION --prerelease --generate-notes --notes-start-tag ${{ env.PREVIOUS_RELEASE_VERSION }} 'linux/build/CLI/Drifty-CLI_linux#Drifty-CLI_linux' 'linux/build/GUI/Drifty-GUI_linux#Drifty-GUI_linux' 'macos/build/CLI/Drifty-CLI_macos_aarch64#Drifty-CLI_macos_aarch64' 'macos/build/GUI/Drifty-GUI_aarch64.pkg#Drifty-GUI_aarch64.pkg' 'macos/build/CLI/Drifty-CLI_macos_x86_64#Drifty-CLI_macos_x86_64' 'macos/build/GUI/Drifty-GUI_x86_64.pkg#Drifty-GUI_x86_64.pkg' 'windows/build/CLI/Drifty-CLI.exe#Drifty-CLI.exe' 'windows/build/GUI/Drifty-GUI.msi#Drifty-GUI.msi' 'windows/build/GUI/Drifty-GUI.exe#Drifty-GUI.exe' --title "Drifty v${{ env.VERSION_NUMBER }} ${{ env.RELEASE_STAGE }} - Revision ${{ env.REVISION_NUMBER }}" + gh release create v$VERSION --prerelease --generate-notes --notes-start-tag ${{ env.PREVIOUS_RELEASE_VERSION }} 'linux/build/CLI/Drifty-CLI_linux#Drifty-CLI_linux' 'linux/build/GUI/Drifty-GUI_linux#Drifty-GUI_linux' 'macos_aarch64/build/CLI/Drifty-CLI_macos_aarch64#Drifty-CLI_macos_aarch64' 'macos_aarch64/build/GUI/Drifty-GUI_aarch64.pkg#Drifty-GUI_aarch64.pkg' 'macos_x86_64/build/CLI/Drifty-CLI_macos_x86_64#Drifty-CLI_macos_x86_64' 'macos_x86_64/build/GUI/Drifty-GUI_x86_64.pkg#Drifty-GUI_x86_64.pkg' 'windows/build/CLI/Drifty-CLI.exe#Drifty-CLI.exe' 'windows/build/GUI/Drifty-GUI.msi#Drifty-GUI.msi' 'windows/build/GUI/Drifty-GUI.exe#Drifty-GUI.exe' --title "Drifty v${{ env.VERSION_NUMBER }} ${{ env.RELEASE_STAGE }} - Revision ${{ env.REVISION_NUMBER }}" echo "[Released :white_check_mark: Drifty v${{ env.VERSION_NUMBER }} ${{ env.RELEASE_STAGE }} - Revision ${{ env.REVISION_NUMBER }}](https://github.com/SaptarshiSarkar12/Drifty/releases/tag/v$VERSION) successfully :rocket:!" >> $GITHUB_STEP_SUMMARY env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -313,7 +313,7 @@ jobs: if: ${{ github.repository == 'SaptarshiSarkar12/Drifty' && github.ref_name == 'master' && github.event_name == 'workflow_dispatch' && env.RELEASE_STAGE == 'Stable' }} run: | echo "## Release :bookmark: Drifty v$VERSION" >> $GITHUB_STEP_SUMMARY - gh release create v$VERSION --generate-notes --notes-start-tag ${{ env.PREVIOUS_RELEASE_VERSION }} 'linux/build/CLI/Drifty-CLI_linux#Drifty-CLI_linux' 'linux/build/GUI/Drifty-GUI_linux#Drifty-GUI_linux' 'macos/build/CLI/Drifty-CLI_macos_aarch64#Drifty-CLI_macos_aarch64' 'macos/build/GUI/Drifty-GUI_aarch64.pkg#Drifty-GUI_aarch64.pkg' 'macos/build/CLI/Drifty-CLI_macos_x86_64#Drifty-CLI_macos_x86_64' 'macos/build/GUI/Drifty-GUI_x86_64.pkg#Drifty-GUI_x86_64.pkg' 'windows/build/CLI/Drifty-CLI.exe#Drifty-CLI.exe' 'windows/build/GUI/Drifty-GUI.msi#Drifty-GUI.msi' 'windows/build/GUI/Drifty-GUI.exe#Drifty-GUI.exe' --title "Drifty v$VERSION Stable Release" + gh release create v$VERSION --generate-notes --notes-start-tag ${{ env.PREVIOUS_RELEASE_VERSION }} 'linux/build/CLI/Drifty-CLI_linux#Drifty-CLI_linux' 'linux/build/GUI/Drifty-GUI_linux#Drifty-GUI_linux' 'macos_aarch64/build/CLI/Drifty-CLI_macos_aarch64#Drifty-CLI_macos_aarch64' 'macos_aarch64/build/GUI/Drifty-GUI_aarch64.pkg#Drifty-GUI_aarch64.pkg' 'macos_x86_64/build/CLI/Drifty-CLI_macos_x86_64#Drifty-CLI_macos_x86_64' 'macos_x86_64/build/GUI/Drifty-GUI_x86_64.pkg#Drifty-GUI_x86_64.pkg' 'windows/build/CLI/Drifty-CLI.exe#Drifty-CLI.exe' 'windows/build/GUI/Drifty-GUI.msi#Drifty-GUI.msi' 'windows/build/GUI/Drifty-GUI.exe#Drifty-GUI.exe' --title "Drifty v$VERSION Stable Release" echo "[Released :white_check_mark: Drifty v$VERSION Stable](https://github.com/SaptarshiSarkar12/Drifty/releases/tag/v$VERSION) successfully :rocket:!" >> $GITHUB_STEP_SUMMARY env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 52c38f73f1e2f4a88c5e300b539150c6adc52f80 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Sun, 29 Sep 2024 18:59:30 +0530 Subject: [PATCH 15/77] fix(Website): Fixed release download page for pre-releases --- Website/app/Releases.js | 78 +++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 46 deletions(-) diff --git a/Website/app/Releases.js b/Website/app/Releases.js index 901d64e61..7de3d70fd 100644 --- a/Website/app/Releases.js +++ b/Website/app/Releases.js @@ -149,7 +149,7 @@ export default function Releases({ props }) { const filteredPreReleases = useMemo(() => { const releases = []; props.release.map((item) => { - if (item.prerelease === true && releases.length <= 1) { + if (item.prerelease === true && releases.length < 1) { releases.push(item); // Only one pre-release is collected. } }); @@ -311,7 +311,7 @@ export default function Releases({ props }) { className="xs:w-80 xs:py-5 bg-gradient-to-r from-blue-600 to-green-500 text-white xs:text-3xl font-semibold md:text-3xl rounded-full hover:transition ease-in-out duration-300 delay-80 hover:-translate-y-1 hover:scale-110 hover:from-pink-500 hover:to-yellow-500 hover:drop-shadow-lg focus:shadow-lg focus:outline-none active:bg-blue-400 active:shadow-lg transition" onClick={() => downloadLatestRelease( - latestVersion >= "v2.1.0" ? "MacOS Apple Silicon" : "MacOS", + latestVersion >= "v2.1.0-beta.1" ? "MacOS Apple Silicon" : "MacOS", applicationType, ) } @@ -321,7 +321,7 @@ export default function Releases({ props }) { {latestVersion} - {latestVersion >= "v2.1.0" && ( // If the version of the latest release is greater than or equal to v2.1.0, then show the download button for macOS (Intel) + {latestVersion >= "v2.1.0-beta.1" && ( // If the version of the latest release is greater than or equal to v2.1.0, then show the download button for macOS (Intel)
- {item.tag_name.split("-")[0] > "v2.1.0" && ( // If the version of pre-release is greater than v2.1.0, then show the download button for macOS (Intel) - - )} + > + Download for macOS (Intel) +
@@ -494,9 +480,9 @@ export default function Releases({ props }) { {filteredReleases.map((item, index) => { index = index + filteredPreReleases.length; return ( -
- {item.tag_name} -

+

+ {item.tag_name} +

{new Date(item.published_at).toString()} with{" "} {item.tag_name >= "v2.1.0" ? item.assets[0].download_count + @@ -578,7 +564,7 @@ export default function Releases({ props }) { className="select-none pl-3 pr-3 w-auto h-min text-2xl bg-gradient-to-r from-blue-600 to-green-500 hover:from-pink-500 hover:to-yellow-500 rounded-full p-1 shadow-none hover:transition ease-in-out duration-300 delay-80 hover:-translate-y-1 hover:scale-110 hover:drop-shadow-2xl" onClick={() => downloadOlderReleases( - item.tag_name >= "v2.1.0" + item.tag_name >= "v2.1.0-beta.1" ? "MacOS Apple Silicon" : "MacOS", applicationType, @@ -588,7 +574,7 @@ export default function Releases({ props }) { > Download - {item.tag_name >= "v2.1.0" && ( // If the version of the past release is greater than or equal to v2.1.0, then show the download button for macOS (Intel) + {item.tag_name >= "v2.1.0-beta.1" && ( // If the version of the past release is greater than or equal to v2.1.0-beta.1, then show the download button for macOS (Intel) @@ -480,9 +484,9 @@ export default function Releases({ props }) { {filteredReleases.map((item, index) => { index = index + filteredPreReleases.length; return ( -

- {item.tag_name} -

+

+ {item.tag_name} +

{new Date(item.published_at).toString()} with{" "} {item.tag_name >= "v2.1.0" ? item.assets[0].download_count + From 1097d581bf32951c114bfdeb2d5c68832c1f2bfc Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Sun, 29 Sep 2024 20:07:54 +0530 Subject: [PATCH 17/77] fix(Website): Fixed spacing of download button for CLI --- Website/app/Releases.js | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/Website/app/Releases.js b/Website/app/Releases.js index 7de3d70fd..d455d96b9 100644 --- a/Website/app/Releases.js +++ b/Website/app/Releases.js @@ -400,7 +400,7 @@ export default function Releases({ props }) { )}

-
+
{applicationType === "GUI" && ( - +
+ +
)}
- {item.tag_name >= "v2.1.0-beta.1" && ( // If the version of the past release is greater than or equal to v2.1.0-beta.1, then show the download button for macOS (Intel) + {item.tag_name >= "v2.1.0" && ( // If the version of the past release is greater than or equal to v2.1.0, then show the download button for macOS (Intel) {applicationType === "GUI" && ( -
- -
+
+ +
)}
- + className="md:w-3/5 bg-white rounded-2xl shadow-lg shadow-gray-500 p-14" + method="POST" + action="https://formsubmit.co/e94b201f9a607081e9f9f8ee09ff5e25" + aria-label="Contact Us Form" +> +

Contact Us

+

We'd love to hear from you!

+
+ + +
+ + + + + +

+ By contacting us you agree to our Terms of Service and Privacy Policy. +

+ + +
From af97ec1422facc6dc56074d0715fdc435f50c5e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:57:35 +0000 Subject: [PATCH 23/77] style: format codebase --- Website/app/contact/page.js | 118 ++++++++++++++++++------------------ 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/Website/app/contact/page.js b/Website/app/contact/page.js index 87ba46a8b..ade54384d 100644 --- a/Website/app/contact/page.js +++ b/Website/app/contact/page.js @@ -12,65 +12,67 @@ export default function contact() {
-
-

Contact Us

-

We'd love to hear from you!

-
- - -
- - - - - -

- By contacting us you agree to our Terms of Service and Privacy Policy. -

-
+
+

+ Contact Us +

+

We'd love to hear from you!

+
+ + +
+ + + + +

+ By contacting us you agree to our Terms of Service and{" "} + Privacy Policy. +

+
From 927bc6f3a4cff6823366026f789d4c6802c606d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:33:53 +0530 Subject: [PATCH 24/77] chore(npm): bump next from 14.2.13 to 14.2.14 in /Website (#666) Bumps [next](https://github.com/vercel/next.js) from 14.2.13 to 14.2.14. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.13...v14.2.14) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 88 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index e4f866388..430d811bc 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.13", - "next": "14.2.13", + "next": "14.2.14", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -289,9 +289,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.13.tgz", - "integrity": "sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==" + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.14.tgz", + "integrity": "sha512-/0hWQfiaD5//LvGNgc8PjvyqV50vGK0cADYzaoOOGN8fxzBn3iAiaq3S0tCRnFBldq0LVveLcxCTi41ZoYgAgg==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.13", @@ -345,9 +345,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz", - "integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.14.tgz", + "integrity": "sha512-bsxbSAUodM1cjYeA4o6y7sp9wslvwjSkWw57t8DtC8Zig8aG8V6r+Yc05/9mDzLKcybb6EN85k1rJDnMKBd9Gw==", "cpu": [ "arm64" ], @@ -360,9 +360,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz", - "integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.14.tgz", + "integrity": "sha512-cC9/I+0+SK5L1k9J8CInahduTVWGMXhQoXFeNvF0uNs3Bt1Ub0Azb8JzTU9vNCr0hnaMqiWu/Z0S1hfKc3+dww==", "cpu": [ "x64" ], @@ -375,9 +375,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz", - "integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.14.tgz", + "integrity": "sha512-RMLOdA2NU4O7w1PQ3Z9ft3PxD6Htl4uB2TJpocm+4jcllHySPkFaUIFacQ3Jekcg6w+LBaFvjSPthZHiPmiAUg==", "cpu": [ "arm64" ], @@ -390,9 +390,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz", - "integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.14.tgz", + "integrity": "sha512-WgLOA4hT9EIP7jhlkPnvz49iSOMdZgDJVvbpb8WWzJv5wBD07M2wdJXLkDYIpZmCFfo/wPqFsFR4JS4V9KkQ2A==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz", - "integrity": "sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.14.tgz", + "integrity": "sha512-lbn7svjUps1kmCettV/R9oAvEW+eUI0lo0LJNFOXoQM5NGNxloAyFRNByYeZKL3+1bF5YE0h0irIJfzXBq9Y6w==", "cpu": [ "x64" ], @@ -420,9 +420,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz", - "integrity": "sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.14.tgz", + "integrity": "sha512-7TcQCvLQ/hKfQRgjxMN4TZ2BRB0P7HwrGAYL+p+m3u3XcKTraUFerVbV3jkNZNwDeQDa8zdxkKkw2els/S5onQ==", "cpu": [ "x64" ], @@ -435,9 +435,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz", - "integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.14.tgz", + "integrity": "sha512-8i0Ou5XjTLEje0oj0JiI0Xo9L/93ghFtAUYZ24jARSeTMXLUx8yFIdhS55mTExq5Tj4/dC2fJuaT4e3ySvXU1A==", "cpu": [ "arm64" ], @@ -450,9 +450,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz", - "integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.14.tgz", + "integrity": "sha512-2u2XcSaDEOj+96eXpyjHjtVPLhkAFw2nlaz83EPeuK4obF+HmtDJHqgR1dZB7Gb6V/d55FL26/lYVd0TwMgcOQ==", "cpu": [ "ia32" ], @@ -465,9 +465,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz", - "integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.14.tgz", + "integrity": "sha512-MZom+OvZ1NZxuRovKt1ApevjiUJTcU2PmdJKL66xUPaJeRywnbGGRWUlaAOwunD6dX+pm83vj979NTC8QXjGWg==", "cpu": [ "x64" ], @@ -4128,11 +4128,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.13.tgz", - "integrity": "sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.14.tgz", + "integrity": "sha512-Q1coZG17MW0Ly5x76shJ4dkC23woLAhhnDnw+DfTc7EpZSGuWrlsZ3bZaO8t6u1Yu8FVfhkqJE+U8GC7E0GLPQ==", "dependencies": { - "@next/env": "14.2.13", + "@next/env": "14.2.14", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -4147,15 +4147,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.13", - "@next/swc-darwin-x64": "14.2.13", - "@next/swc-linux-arm64-gnu": "14.2.13", - "@next/swc-linux-arm64-musl": "14.2.13", - "@next/swc-linux-x64-gnu": "14.2.13", - "@next/swc-linux-x64-musl": "14.2.13", - "@next/swc-win32-arm64-msvc": "14.2.13", - "@next/swc-win32-ia32-msvc": "14.2.13", - "@next/swc-win32-x64-msvc": "14.2.13" + "@next/swc-darwin-arm64": "14.2.14", + "@next/swc-darwin-x64": "14.2.14", + "@next/swc-linux-arm64-gnu": "14.2.14", + "@next/swc-linux-arm64-musl": "14.2.14", + "@next/swc-linux-x64-gnu": "14.2.14", + "@next/swc-linux-x64-musl": "14.2.14", + "@next/swc-win32-arm64-msvc": "14.2.14", + "@next/swc-win32-ia32-msvc": "14.2.14", + "@next/swc-win32-x64-msvc": "14.2.14" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/Website/package.json b/Website/package.json index a0a81d04f..b4a214b2a 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.13", - "next": "14.2.13", + "next": "14.2.14", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From ec4b3dff0dee3147d049d4d539af833ae051a2ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 20:21:39 +0530 Subject: [PATCH 25/77] chore(npm): bump eslint-config-next from 14.2.13 to 14.2.14 in /Website (#665) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.2.13 to 14.2.14. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v14.2.14/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 430d811bc..62ba7c301 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.1.8", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.13", + "eslint-config-next": "14.2.14", "next": "14.2.14", "postcss": "8.4.47", "react": "18.3.1", @@ -294,9 +294,9 @@ "integrity": "sha512-/0hWQfiaD5//LvGNgc8PjvyqV50vGK0cADYzaoOOGN8fxzBn3iAiaq3S0tCRnFBldq0LVveLcxCTi41ZoYgAgg==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.13.tgz", - "integrity": "sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.14.tgz", + "integrity": "sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==", "dependencies": { "glob": "10.3.10" } @@ -1918,11 +1918,11 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.13.tgz", - "integrity": "sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==", + "version": "14.2.14", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.14.tgz", + "integrity": "sha512-TXwyjGICAlWC9O0OufS3koTsBKQH8l1xt3SY/aDuvtKHIwjTHplJKWVb1WOEX0OsDaxGbFXmfD2EY1sNfG0Y/w==", "dependencies": { - "@next/eslint-plugin-next": "14.2.13", + "@next/eslint-plugin-next": "14.2.14", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index b4a214b2a..f203b7ab2 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.1.8", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.13", + "eslint-config-next": "14.2.14", "next": "14.2.14", "postcss": "8.4.47", "react": "18.3.1", From 71f73d58c005ed44d11125afbabb38494b386f04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 06:55:35 +0530 Subject: [PATCH 26/77] chore(npm): bump @headlessui/react from 2.1.8 to 2.1.9 in /Website (#668) Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.8 to 2.1.9. - [Release notes](https://github.com/tailwindlabs/headlessui/releases) - [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v2.1.9/packages/@headlessui-react) --- updated-dependencies: - dependency-name: "@headlessui/react" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 8 ++++---- Website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 62ba7c301..78e9fb497 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -8,7 +8,7 @@ "name": "website", "version": "0.1.0", "dependencies": { - "@headlessui/react": "^2.1.8", + "@headlessui/react": "^2.1.9", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.14", @@ -152,9 +152,9 @@ "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@headlessui/react": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.8.tgz", - "integrity": "sha512-uajqVkAcVG/wHwG9Fh5PFMcFpf2VxM4vNRNKxRjuK009kePVur8LkuuygHfIE+2uZ7z7GnlTtYsyUe6glPpTLg==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.9.tgz", + "integrity": "sha512-ckWw7vlKtnoa1fL2X0fx1a3t/Li9MIKDVXn3SgG65YlxvDAsNrY39PPCxVM7sQRA7go2fJsuHSSauKFNaJHH7A==", "dependencies": { "@floating-ui/react": "^0.26.16", "@react-aria/focus": "^3.17.1", diff --git a/Website/package.json b/Website/package.json index f203b7ab2..126871ced 100644 --- a/Website/package.json +++ b/Website/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@headlessui/react": "^2.1.8", + "@headlessui/react": "^2.1.9", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.14", From dbf1fd93bf996c477e7956105a2eada74d3b009d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 06:57:03 +0530 Subject: [PATCH 27/77] chore(ci): bump docker/setup-buildx-action from 3.6.1 to 3.7.0 in /.github/workflows (#669) chore(ci): bump docker/setup-buildx-action in /.github/workflows Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.6.1 to 3.7.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3f98035e7..7fffb2c35 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -121,7 +121,7 @@ jobs: # multi-platform images and export cache # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.6.1 + uses: docker/setup-buildx-action@v3.7.0 # Login to GitHub Container Registry # https://github.com/docker/login-action From c593fc6de41d0354242b9cfe37edf5aef8fa290e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 05:02:39 +0000 Subject: [PATCH 28/77] chore: Bump Drifty version to 2.1.0 Stable --- CLI/pom.xml | 2 +- Core/pom.xml | 2 +- Core/src/main/java/support/Constants.java | 2 +- GUI/pom.xml | 2 +- GUI/src/darwin/Info.plist | 4 ++-- pom.xml | 2 +- version.json | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CLI/pom.xml b/CLI/pom.xml index 6180d07df..ad931bd89 100644 --- a/CLI/pom.xml +++ b/CLI/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-rc.1 + 2.1.0 CLI jar diff --git a/Core/pom.xml b/Core/pom.xml index 9df4f378c..770425329 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-rc.1 + 2.1.0 Core Core diff --git a/Core/src/main/java/support/Constants.java b/Core/src/main/java/support/Constants.java index 83d96044d..c362d6d0a 100644 --- a/Core/src/main/java/support/Constants.java +++ b/Core/src/main/java/support/Constants.java @@ -9,7 +9,7 @@ public class Constants { public static final String APPLICATION_NAME = "Drifty"; - public static final String VERSION_NUMBER = "v2.1.0-rc.1"; + public static final String VERSION_NUMBER = "v2.1.0"; public static final String DRIFTY_WEBSITE_URL = "https://saptarshisarkar12.github.io/Drifty/"; public static final String INVALID_LINK = "Link is invalid! Please check the link and try again."; public static final String FILENAME_DETECTION_ERROR = "Failed to detect the filename! A default name will be used instead."; diff --git a/GUI/pom.xml b/GUI/pom.xml index b4b5599c5..1decb294c 100644 --- a/GUI/pom.xml +++ b/GUI/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-rc.1 + 2.1.0 GUI Drifty GUI diff --git a/GUI/src/darwin/Info.plist b/GUI/src/darwin/Info.plist index 1bb71b42d..b6c317373 100644 --- a/GUI/src/darwin/Info.plist +++ b/GUI/src/darwin/Info.plist @@ -5,9 +5,9 @@ CFBundleIdentifier io.github.SaptarshiSarkar12.Drifty-GUI CFBundleVersion - 2.1.0-rc.1 + 2.1.0 CFBundleShortVersionString - 2.1.0-rc.1 + 2.1.0 CFBundleExecutable Drifty GUI CFBundleIconFile diff --git a/pom.xml b/pom.xml index 2e537eb83..f5be54b16 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.SaptarshiSarkar12 Drifty - 2.1.0-rc.1 + 2.1.0 pom Drifty Drifty is an Open-Source Interactive File Downloader System built with Java diff --git a/version.json b/version.json index c7354b88b..87032da00 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "2.1.0-rc.1" + "version": "2.1.0" } From a07f0635e15eb7a5266ab29edc25627ecbf13068 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Fri, 4 Oct 2024 11:32:20 +0530 Subject: [PATCH 29/77] fix(Website): fixed hidden download button for macOS Intel machines --- Website/app/Releases.js | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/Website/app/Releases.js b/Website/app/Releases.js index 21bd897c9..3319f2edd 100644 --- a/Website/app/Releases.js +++ b/Website/app/Releases.js @@ -310,12 +310,7 @@ export default function Releases({ props }) {
- {latestVersion >= "v2.1.0-beta.1" && ( // If the version of the latest release is greater than or equal to v2.1.0, then show the download button for macOS (Intel) -
- -
- )} +
+ +
From cc866929877e2f27ec34e46094495eada1e290c4 Mon Sep 17 00:00:00 2001 From: Aaron Rojas <56888910+aaronrojas32@users.noreply.github.com> Date: Fri, 4 Oct 2024 12:46:12 +0200 Subject: [PATCH 30/77] Fix: Enhanced Filtering for Pre-releases (#671) * Fixed the issue #670 Fixed issue where pre-release versions (e.g., v2.1.0-rc.1) were shown even after the stable version (v2.1.0) was released. - Added logic to filter out pre-releases if a stable version with the same base version (e.g., v2.1.0) exists. - Extracted base version from the release tag using split('-')[0] to compare stable and pre-release versions. - Ensured only one pre-release is shown when no corresponding stable release exists. * Update Website/app/Releases.js Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Website/app/Releases.js Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- Website/app/Releases.js | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/Website/app/Releases.js b/Website/app/Releases.js index 3319f2edd..dbf012982 100644 --- a/Website/app/Releases.js +++ b/Website/app/Releases.js @@ -148,13 +148,29 @@ export default function Releases({ props }) { }, [props.release]); const filteredPreReleases = useMemo(() => { const releases = []; - props.release.map((item) => { - if (item.prerelease === true && releases.length < 1) { - releases.push(item); // Only one pre-release is collected. + + // Get the latest stable version + const sortedReleases = [...props.release].sort((a, b) => new Date(b.published_at) - new Date(a.published_at)); + let latestStableVersion = sortedReleases.find(item => !item.prerelease)?.tag_name; + + props.release.forEach((item) => { + // Skip the pre-release if a stable version with the same base version exists + const baseVersion = item.tag_name.match(/^v?\d+\.\d+\.\d+/)?.[0]; // Match semantic versioning pattern + + if ( + item.prerelease && + latestStableVersion && + baseVersion === latestStableVersion // Compare base versions + ) { + return; // Skip pre-releases if a stable version with the same base exists + } + + if (item.prerelease && releases.length < 1) { + releases.push(item); // Only add one pre-release } }); return releases; - }, [props.release]); + }, [props.release]); const filteredReleases = useMemo(() => { // Starting from v2.0.0, separate executables for windows, linux and macOS are available. So, we need three buttons (in total) in that case. const releases = []; @@ -368,15 +384,7 @@ export default function Releases({ props }) { {item.tag_name}

{new Date(item.published_at).toString()} with{" "} - {item.assets[0].download_count + - item.assets[1].download_count + - item.assets[2].download_count + - item.assets[3].download_count + - item.assets[4].download_count + - item.assets[5].download_count + - item.assets[6].download_count + - item.assets[7].download_count + - item.assets[8].download_count}{" "} + {item.assets?.reduce((sum, asset) => sum + (asset.download_count || 0), 0)}{" "} Downloads

+ - + - + -
+ + {/* Social Icons */} +
@@ -67,7 +70,7 @@ function MobileNav({ open }) { @@ -77,22 +80,31 @@ function MobileNav({ open }) { ); } + + + export default function Header({ props }) { const [open, setOpen] = useState(false); const [hcolor, setHcolor] = useState(props + " pt-7"); - const onScroll = useCallback(() => { - const { scrollY } = window; - if (window.innerWidth > 760) { - if (scrollY === 0) setHcolor(props + " pt-7"); - else setHcolor("bg-var shadow-lg pt-4"); - } - }, [props]); +const onScroll = useCallback(() => { + const { scrollY } = window; + if (window.innerWidth <= 760 && open) { + setOpen(false); + } + if (window.innerWidth > 760) { + if (scrollY === 0) setHcolor(props + " pt-7"); + else setHcolor("bg-var shadow-lg pt-4"); + } +}, [props, open]); - useEffect(() => { - //add event listener to window - window.addEventListener("scroll", onScroll, { passive: true }); - // remove event on unmounting to prevent Linkmemory leak with the cleanup - }, [onScroll]); +useEffect(() => { + // add event listener to window + window.addEventListener("scroll", onScroll, { passive: true }); + // remove event listener on unmount to prevent memory leaks + return () => { + window.removeEventListener("scroll", onScroll); + }; +}, [onScroll]); return (
Date: Fri, 4 Oct 2024 14:48:35 +0000 Subject: [PATCH 33/77] style: format codebase --- Website/app/Header.js | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/Website/app/Header.js b/Website/app/Header.js index 5ee4602e0..022c8ce23 100644 --- a/Website/app/Header.js +++ b/Website/app/Header.js @@ -80,31 +80,28 @@ function MobileNav({ open }) { ); } - - - export default function Header({ props }) { const [open, setOpen] = useState(false); const [hcolor, setHcolor] = useState(props + " pt-7"); -const onScroll = useCallback(() => { - const { scrollY } = window; - if (window.innerWidth <= 760 && open) { - setOpen(false); - } - if (window.innerWidth > 760) { - if (scrollY === 0) setHcolor(props + " pt-7"); - else setHcolor("bg-var shadow-lg pt-4"); - } -}, [props, open]); + const onScroll = useCallback(() => { + const { scrollY } = window; + if (window.innerWidth <= 760 && open) { + setOpen(false); + } + if (window.innerWidth > 760) { + if (scrollY === 0) setHcolor(props + " pt-7"); + else setHcolor("bg-var shadow-lg pt-4"); + } + }, [props, open]); -useEffect(() => { - // add event listener to window - window.addEventListener("scroll", onScroll, { passive: true }); - // remove event listener on unmount to prevent memory leaks - return () => { - window.removeEventListener("scroll", onScroll); - }; -}, [onScroll]); + useEffect(() => { + // add event listener to window + window.addEventListener("scroll", onScroll, { passive: true }); + // remove event listener on unmount to prevent memory leaks + return () => { + window.removeEventListener("scroll", onScroll); + }; + }, [onScroll]); return (
Date: Mon, 7 Oct 2024 07:08:27 +0530 Subject: [PATCH 34/77] chore(ci): bump docker/setup-buildx-action from 3.7.0 to 3.7.1 in /.github/workflows (#675) chore(ci): bump docker/setup-buildx-action in /.github/workflows Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.7.0 to 3.7.1. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v3.7.0...v3.7.1) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7fffb2c35..deb656036 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -121,7 +121,7 @@ jobs: # multi-platform images and export cache # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.7.0 + uses: docker/setup-buildx-action@v3.7.1 # Login to GitHub Container Registry # https://github.com/docker/login-action From d4d5f4b1b492efc2cdcac48780a5b2aca381a59e Mon Sep 17 00:00:00 2001 From: drippypop <146481814+drippypop@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:17:23 -0400 Subject: [PATCH 35/77] Fix hydration error in Header.js (#674) * Fix navbar load issue * Fix coderabbit again lol * Fix failing coderabbit fix * try again * revert to commit d9a158a --------- Co-authored-by: Saptarshi Sarkar --- Website/app/Header.js | 61 ++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/Website/app/Header.js b/Website/app/Header.js index 022c8ce23..a9603be85 100644 --- a/Website/app/Header.js +++ b/Website/app/Header.js @@ -5,19 +5,26 @@ import { useState } from "react"; import Link from "next/link"; import { useCallback, useEffect } from "react"; -function NavLink({ to, children, cn }) { +function handleNavLinkClick(to, setOpen) { + if (window.location.pathname === to) { + setOpen(false); + } else { + window.location.href = to; + } +} + +function NavLink({ to, children, cn, setOpen }) { return ( - handleNavLinkClick(to, setOpen)} className={`text-gray-900 hover:text-black ${cn}`} > {children} - + ); } -function MobileNav({ open }) { +function MobileNav({ open, setOpen }) { return (
); -} +} \ No newline at end of file From 0e41908b660e7762bc22f0be28dffd35fed76154 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:18:22 +0000 Subject: [PATCH 36/77] style: format codebase --- Website/app/Header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Website/app/Header.js b/Website/app/Header.js index a9603be85..dc2b50c68 100644 --- a/Website/app/Header.js +++ b/Website/app/Header.js @@ -182,4 +182,4 @@ export default function Header({ props }) {
); -} \ No newline at end of file +} From f78b2f866e60d70ff906eafcc42c69d21c4743ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 06:08:34 +0530 Subject: [PATCH 37/77] chore(npm): bump next from 14.2.14 to 14.2.15 in /Website (#677) Bumps [next](https://github.com/vercel/next.js) from 14.2.14 to 14.2.15. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.14...v14.2.15) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 88 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 78e9fb497..d1f930ed9 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.14", - "next": "14.2.14", + "next": "14.2.15", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -289,9 +289,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.14.tgz", - "integrity": "sha512-/0hWQfiaD5//LvGNgc8PjvyqV50vGK0cADYzaoOOGN8fxzBn3iAiaq3S0tCRnFBldq0LVveLcxCTi41ZoYgAgg==" + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.15.tgz", + "integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.14", @@ -345,9 +345,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.14.tgz", - "integrity": "sha512-bsxbSAUodM1cjYeA4o6y7sp9wslvwjSkWw57t8DtC8Zig8aG8V6r+Yc05/9mDzLKcybb6EN85k1rJDnMKBd9Gw==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz", + "integrity": "sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==", "cpu": [ "arm64" ], @@ -360,9 +360,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.14.tgz", - "integrity": "sha512-cC9/I+0+SK5L1k9J8CInahduTVWGMXhQoXFeNvF0uNs3Bt1Ub0Azb8JzTU9vNCr0hnaMqiWu/Z0S1hfKc3+dww==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz", + "integrity": "sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==", "cpu": [ "x64" ], @@ -375,9 +375,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.14.tgz", - "integrity": "sha512-RMLOdA2NU4O7w1PQ3Z9ft3PxD6Htl4uB2TJpocm+4jcllHySPkFaUIFacQ3Jekcg6w+LBaFvjSPthZHiPmiAUg==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz", + "integrity": "sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==", "cpu": [ "arm64" ], @@ -390,9 +390,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.14.tgz", - "integrity": "sha512-WgLOA4hT9EIP7jhlkPnvz49iSOMdZgDJVvbpb8WWzJv5wBD07M2wdJXLkDYIpZmCFfo/wPqFsFR4JS4V9KkQ2A==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz", + "integrity": "sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==", "cpu": [ "arm64" ], @@ -405,9 +405,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.14.tgz", - "integrity": "sha512-lbn7svjUps1kmCettV/R9oAvEW+eUI0lo0LJNFOXoQM5NGNxloAyFRNByYeZKL3+1bF5YE0h0irIJfzXBq9Y6w==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz", + "integrity": "sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==", "cpu": [ "x64" ], @@ -420,9 +420,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.14.tgz", - "integrity": "sha512-7TcQCvLQ/hKfQRgjxMN4TZ2BRB0P7HwrGAYL+p+m3u3XcKTraUFerVbV3jkNZNwDeQDa8zdxkKkw2els/S5onQ==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz", + "integrity": "sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==", "cpu": [ "x64" ], @@ -435,9 +435,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.14.tgz", - "integrity": "sha512-8i0Ou5XjTLEje0oj0JiI0Xo9L/93ghFtAUYZ24jARSeTMXLUx8yFIdhS55mTExq5Tj4/dC2fJuaT4e3ySvXU1A==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz", + "integrity": "sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==", "cpu": [ "arm64" ], @@ -450,9 +450,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.14.tgz", - "integrity": "sha512-2u2XcSaDEOj+96eXpyjHjtVPLhkAFw2nlaz83EPeuK4obF+HmtDJHqgR1dZB7Gb6V/d55FL26/lYVd0TwMgcOQ==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz", + "integrity": "sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==", "cpu": [ "ia32" ], @@ -465,9 +465,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.14.tgz", - "integrity": "sha512-MZom+OvZ1NZxuRovKt1ApevjiUJTcU2PmdJKL66xUPaJeRywnbGGRWUlaAOwunD6dX+pm83vj979NTC8QXjGWg==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz", + "integrity": "sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==", "cpu": [ "x64" ], @@ -4128,11 +4128,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.14.tgz", - "integrity": "sha512-Q1coZG17MW0Ly5x76shJ4dkC23woLAhhnDnw+DfTc7EpZSGuWrlsZ3bZaO8t6u1Yu8FVfhkqJE+U8GC7E0GLPQ==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.15.tgz", + "integrity": "sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==", "dependencies": { - "@next/env": "14.2.14", + "@next/env": "14.2.15", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -4147,15 +4147,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.14", - "@next/swc-darwin-x64": "14.2.14", - "@next/swc-linux-arm64-gnu": "14.2.14", - "@next/swc-linux-arm64-musl": "14.2.14", - "@next/swc-linux-x64-gnu": "14.2.14", - "@next/swc-linux-x64-musl": "14.2.14", - "@next/swc-win32-arm64-msvc": "14.2.14", - "@next/swc-win32-ia32-msvc": "14.2.14", - "@next/swc-win32-x64-msvc": "14.2.14" + "@next/swc-darwin-arm64": "14.2.15", + "@next/swc-darwin-x64": "14.2.15", + "@next/swc-linux-arm64-gnu": "14.2.15", + "@next/swc-linux-arm64-musl": "14.2.15", + "@next/swc-linux-x64-gnu": "14.2.15", + "@next/swc-linux-x64-musl": "14.2.15", + "@next/swc-win32-arm64-msvc": "14.2.15", + "@next/swc-win32-ia32-msvc": "14.2.15", + "@next/swc-win32-x64-msvc": "14.2.15" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/Website/package.json b/Website/package.json index 126871ced..53d6a7e14 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.14", - "next": "14.2.14", + "next": "14.2.15", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From 57aeab6ee30a5cceb642185016aca8e7ca359d53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 07:19:37 +0530 Subject: [PATCH 38/77] chore(ci): bump aquasecurity/trivy-action from 0.24.0 to 0.26.0 in /.github/workflows (#679) chore(ci): bump aquasecurity/trivy-action in /.github/workflows Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.24.0 to 0.26.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/0.24.0...0.26.0) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dev-docker-build.yml | 2 +- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index 39f6dce6f..b5f80f53e 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -59,7 +59,7 @@ jobs: docker compose build ${{ matrix.image_name_suffix }} - name: Run Trivy security scan if: matrix.os == 'ubuntu-latest' - uses: aquasecurity/trivy-action@0.24.0 + uses: aquasecurity/trivy-action@0.26.0 continue-on-error: true with: image-ref: "drifty-${{ matrix.image_name_suffix }}" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index deb656036..30cbbbb4a 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -207,7 +207,7 @@ jobs: run: docker build -t ${{ matrix.image_name }} -f Docker/prod/${{ matrix.docker_context }}/Dockerfile build/${{ matrix.docker_context }} - name: Run Trivy security scan - uses: aquasecurity/trivy-action@0.24.0 + uses: aquasecurity/trivy-action@0.26.0 continue-on-error: true with: image-ref: ${{ matrix.image_name }} From db236a5ae38e51233d0b2ce6167b8ad1e3a69257 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 07:21:01 +0530 Subject: [PATCH 39/77] chore(npm): bump eslint-config-next from 14.2.14 to 14.2.15 in /Website (#678) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.2.14 to 14.2.15. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v14.2.15/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index d1f930ed9..a47441684 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.1.9", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.14", + "eslint-config-next": "14.2.15", "next": "14.2.15", "postcss": "8.4.47", "react": "18.3.1", @@ -294,9 +294,9 @@ "integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.14.tgz", - "integrity": "sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.15.tgz", + "integrity": "sha512-pKU0iqKRBlFB/ocOI1Ip2CkKePZpYpnw5bEItEkuZ/Nr9FQP1+p7VDWr4VfOdff4i9bFmrOaeaU1bFEyAcxiMQ==", "dependencies": { "glob": "10.3.10" } @@ -1918,11 +1918,11 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.14", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.14.tgz", - "integrity": "sha512-TXwyjGICAlWC9O0OufS3koTsBKQH8l1xt3SY/aDuvtKHIwjTHplJKWVb1WOEX0OsDaxGbFXmfD2EY1sNfG0Y/w==", + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.15.tgz", + "integrity": "sha512-mKg+NC/8a4JKLZRIOBplxXNdStgxy7lzWuedUaCc8tev+Al9mwDUTujQH6W6qXDH9kycWiVo28tADWGvpBsZcQ==", "dependencies": { - "@next/eslint-plugin-next": "14.2.14", + "@next/eslint-plugin-next": "14.2.15", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index 53d6a7e14..6402a3c96 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.1.9", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.14", + "eslint-config-next": "14.2.15", "next": "14.2.15", "postcss": "8.4.47", "react": "18.3.1", From 00c54eb5a7301242e2e29e483aeead47b6a3a5cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:09:43 +0530 Subject: [PATCH 40/77] chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis from 1.17.0 to 1.18.0 (#681) chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis Bumps [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis) from 1.17.0 to 1.18.0. - [Release notes](https://github.com/openrewrite/rewrite-static-analysis/releases) - [Commits](https://github.com/openrewrite/rewrite-static-analysis/compare/v1.17.0...v1.18.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-static-analysis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f5be54b16..586c61fae 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ org.openrewrite.recipe rewrite-static-analysis - 1.17.0 + 1.18.0 org.openrewrite.recipe From 487a1d14b4feaac8ea5440fe500dbea8197f9c99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 12:44:53 +0530 Subject: [PATCH 41/77] chore(maven): bump org.openrewrite.recipe:rewrite-recommendations from 1.10.0 to 1.11.0 (#685) chore(maven): bump org.openrewrite.recipe:rewrite-recommendations Bumps [org.openrewrite.recipe:rewrite-recommendations](https://github.com/openrewrite/rewrite-recommendations) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/openrewrite/rewrite-recommendations/releases) - [Commits](https://github.com/openrewrite/rewrite-recommendations/compare/v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recommendations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 586c61fae..0ff774c67 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ org.openrewrite.recipe rewrite-recommendations - 1.10.0 + 1.11.0 From 5017a1568427cc852ddcc3ea51eb9c66f57bd78e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:08:21 +0530 Subject: [PATCH 42/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.41.0 to 5.42.1 (#684) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.41.0 to 5.42.1. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.41.0...v5.42.1) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0ff774c67..c05351f21 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.41.0 + 5.42.1 org.openrewrite.staticanalysis.CommonStaticAnalysis From 386e56019f7742adce1ac66759aae0840dacd661 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Fri, 11 Oct 2024 16:26:25 +0530 Subject: [PATCH 43/77] fix(Website): Fixed broken navigation for desktop and added `Latest Release` label --- Website/app/Header.js | 53 +++++++++++++++++++++++------------------ Website/app/Releases.js | 3 +++ 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/Website/app/Header.js b/Website/app/Header.js index dc2b50c68..d4d0bc918 100644 --- a/Website/app/Header.js +++ b/Website/app/Header.js @@ -5,22 +5,16 @@ import { useState } from "react"; import Link from "next/link"; import { useCallback, useEffect } from "react"; -function handleNavLinkClick(to, setOpen) { - if (window.location.pathname === to) { - setOpen(false); - } else { - window.location.href = to; - } -} - function NavLink({ to, children, cn, setOpen }) { return ( - + { setOpen(false); }} + > + {children} + ); } @@ -31,6 +25,7 @@ function MobileNav({ open, setOpen }) { !open && "-translate-x-full" } transition-transform duration-300 ease-in-out filter drop-shadow-md`} > + {/* Logo container */}
- + {/* Mobile Nav */}
- About + - Download + - Contact + - + {/* Social Icons */} + {/* Desktop Navbar buttons */} +

+ Latest Release +

{/* Download Buttons */}
{/* First Download Now Button */} From f041756f48dd77c2a763ac6a8cb6f43e8256e464 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:57:35 +0000 Subject: [PATCH 44/77] style: format codebase --- Website/app/Header.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Website/app/Header.js b/Website/app/Header.js index d4d0bc918..0142397df 100644 --- a/Website/app/Header.js +++ b/Website/app/Header.js @@ -7,14 +7,16 @@ import { useCallback, useEffect } from "react"; function NavLink({ to, children, cn, setOpen }) { return ( - { setOpen(false); }} - > - {children} - + { + setOpen(false); + }} + > + {children} + ); } From c9f81c1678934a1a09b300fec3dccf85d7fabc42 Mon Sep 17 00:00:00 2001 From: ANANT JAIN <139585700+anant-jain01@users.noreply.github.com> Date: Fri, 11 Oct 2024 17:06:39 +0530 Subject: [PATCH 45/77] refactor: improve footer readability and organize social links (#687) Update Footer.js the code had some minor issues which have been enhanced for better readability and use like:- 1)Created socialLinks Array 2)Organized SVG Icons 3)Consistent Formatting 4)Grouped related sections logically 5)Removed Comments if accepted please use the appropriate hacktoberfest tag... thank you --- Website/app/Footer.js | 160 +++++++++++++++++++++++------------------- 1 file changed, 86 insertions(+), 74 deletions(-) diff --git a/Website/app/Footer.js b/Website/app/Footer.js index 6939ddcee..3a8922296 100644 --- a/Website/app/Footer.js +++ b/Website/app/Footer.js @@ -1,10 +1,84 @@ import Link from "next/link"; import Image from "next/image"; + export default function Footer() { - // Get the current year dynamically const currentYear = new Date().getFullYear(); + + const socialLinks = [ + { + href: "https://www.twitter.com/SSarkar2007", + label: "Twitter Profile", + icon: ( + + ), + }, + { + href: "https://www.linkedin.com/in/saptarshisarkar12/", + label: "LinkedIn Profile", + icon: ( + + + + ), + }, + { + href: "https://github.com/SaptarshiSarkar12", + label: "GitHub Profile", + icon: ( + + ), + }, + { + href: "https://saptarshisarkar.hashnode.dev/", + label: "Hashnode Blog", + icon: ( + + ), + }, + { + href: "https://www.bio.link/saptarshi", + label: "All My Links", + icon: , + }, + ]; + return ( -
+
From 62524e1046887a8852fcb56bf1893a1f4fcc4b4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 17:30:38 +0530 Subject: [PATCH 46/77] chore(npm): bump @headlessui/react from 2.1.9 to 2.1.10 in /Website (#683) Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.9 to 2.1.10. - [Release notes](https://github.com/tailwindlabs/headlessui/releases) - [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v2.1.10/packages/@headlessui-react) --- updated-dependencies: - dependency-name: "@headlessui/react" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 8 ++++---- Website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index a47441684..8779e2104 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -8,7 +8,7 @@ "name": "website", "version": "0.1.0", "dependencies": { - "@headlessui/react": "^2.1.9", + "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.15", @@ -152,9 +152,9 @@ "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@headlessui/react": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.9.tgz", - "integrity": "sha512-ckWw7vlKtnoa1fL2X0fx1a3t/Li9MIKDVXn3SgG65YlxvDAsNrY39PPCxVM7sQRA7go2fJsuHSSauKFNaJHH7A==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.10.tgz", + "integrity": "sha512-6mLa2fjMDAFQi+/R10B+zU3edsUk/MDtENB2zHho0lqKU1uzhAfJLUduWds4nCo8wbl3vULtC5rJfZAQ1yqIng==", "dependencies": { "@floating-ui/react": "^0.26.16", "@react-aria/focus": "^3.17.1", diff --git a/Website/package.json b/Website/package.json index 6402a3c96..68751a1d2 100644 --- a/Website/package.json +++ b/Website/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@headlessui/react": "^2.1.9", + "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.15", From 685be9498e9c39df3efe8b7a27d4ba4eb8f4f179 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:52:25 +0530 Subject: [PATCH 47/77] chore(ci): bump aquasecurity/trivy-action from 0.26.0 to 0.27.0 in /.github/workflows (#689) chore(ci): bump aquasecurity/trivy-action in /.github/workflows Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/0.26.0...0.27.0) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dev-docker-build.yml | 2 +- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index b5f80f53e..3211d9519 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -59,7 +59,7 @@ jobs: docker compose build ${{ matrix.image_name_suffix }} - name: Run Trivy security scan if: matrix.os == 'ubuntu-latest' - uses: aquasecurity/trivy-action@0.26.0 + uses: aquasecurity/trivy-action@0.27.0 continue-on-error: true with: image-ref: "drifty-${{ matrix.image_name_suffix }}" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 30cbbbb4a..cb8e6d4c5 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -207,7 +207,7 @@ jobs: run: docker build -t ${{ matrix.image_name }} -f Docker/prod/${{ matrix.docker_context }}/Dockerfile build/${{ matrix.docker_context }} - name: Run Trivy security scan - uses: aquasecurity/trivy-action@0.26.0 + uses: aquasecurity/trivy-action@0.27.0 continue-on-error: true with: image-ref: ${{ matrix.image_name }} From 731150f4e3de10f29a4fd1a188258b4a2f89d565 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:10:37 +0530 Subject: [PATCH 48/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.42.1 to 5.42.2 (#688) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.42.1 to 5.42.2. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.42.1...v5.42.2) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c05351f21..00fd461b3 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.42.1 + 5.42.2 org.openrewrite.staticanalysis.CommonStaticAnalysis From 03c8aa04779d33bd9933b466b85ccf8877d813ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:51:17 +0530 Subject: [PATCH 49/77] chore(ci): bump aquasecurity/trivy-action from 0.27.0 to 0.28.0 in /.github/workflows (#690) chore(ci): bump aquasecurity/trivy-action in /.github/workflows Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.27.0 to 0.28.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/0.27.0...0.28.0) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dev-docker-build.yml | 2 +- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index 3211d9519..3b3dc696b 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -59,7 +59,7 @@ jobs: docker compose build ${{ matrix.image_name_suffix }} - name: Run Trivy security scan if: matrix.os == 'ubuntu-latest' - uses: aquasecurity/trivy-action@0.27.0 + uses: aquasecurity/trivy-action@0.28.0 continue-on-error: true with: image-ref: "drifty-${{ matrix.image_name_suffix }}" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index cb8e6d4c5..2682934a4 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -207,7 +207,7 @@ jobs: run: docker build -t ${{ matrix.image_name }} -f Docker/prod/${{ matrix.docker_context }}/Dockerfile build/${{ matrix.docker_context }} - name: Run Trivy security scan - uses: aquasecurity/trivy-action@0.27.0 + uses: aquasecurity/trivy-action@0.28.0 continue-on-error: true with: image-ref: ${{ matrix.image_name }} From 704ab3c10f12f26d7d5a4cf817eb15033b393f4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:53:59 +0530 Subject: [PATCH 50/77] chore(npm): bump tailwindcss from 3.4.13 to 3.4.14 in /Website (#691) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.13 to 3.4.14. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 8 ++++---- Website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 8779e2104..1031989be 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -18,7 +18,7 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.13" + "tailwindcss": "3.4.14" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -5485,9 +5485,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", diff --git a/Website/package.json b/Website/package.json index 68751a1d2..4d88123a3 100644 --- a/Website/package.json +++ b/Website/package.json @@ -19,6 +19,6 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.13" + "tailwindcss": "3.4.14" } } From 1cec9c99edb0e1a42a732ad814c46d51910b68ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:27:54 +0530 Subject: [PATCH 51/77] chore(npm): bump next from 14.2.15 to 15.0.0 in /Website (#692) * chore(npm): bump next from 14.2.15 to 15.0.0 in /Website Bumps [next](https://github.com/vercel/next.js) from 14.2.15 to 15.0.0. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.15...v15.0.0) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * chore: Deleted `Website/app/api` directory to fix Next.Js 15 build issue Signed-off-by: Saptarshi Sarkar --------- Signed-off-by: dependabot[bot] Signed-off-by: Saptarshi Sarkar Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- Website/app/api/version/dev/route.js | 18 - Website/app/api/version/latest/route.js | 16 - Website/package-lock.json | 590 ++++++++++++++++++++---- Website/package.json | 2 +- 4 files changed, 499 insertions(+), 127 deletions(-) delete mode 100644 Website/app/api/version/dev/route.js delete mode 100644 Website/app/api/version/latest/route.js diff --git a/Website/app/api/version/dev/route.js b/Website/app/api/version/dev/route.js deleted file mode 100644 index 45eeb1836..000000000 --- a/Website/app/api/version/dev/route.js +++ /dev/null @@ -1,18 +0,0 @@ -import { NextResponse } from "next/server"; - -export async function getDevelopmentVersion() { - let devVersionJson = ( - await fetch( - "https://raw.githubusercontent.com/SaptarshiSarkar12/Drifty/master/version.json", - { - next: { revalidate: 60 }, - }, - ) - ).text(); - return JSON.parse(await devVersionJson).version; -} - -export async function GET() { - let version = await getDevelopmentVersion(); - return new NextResponse(version); -} diff --git a/Website/app/api/version/latest/route.js b/Website/app/api/version/latest/route.js deleted file mode 100644 index b08f141c0..000000000 --- a/Website/app/api/version/latest/route.js +++ /dev/null @@ -1,16 +0,0 @@ -import { NextResponse } from "next/server"; - -export async function getLatestVersion() { - let latestReleases = await fetch( - "https://api.github.com/repos/SaptarshiSarkar12/Drifty/releases/latest", - { - next: { revalidate: 60 }, - }, - ).then((res) => res.json()); - return latestReleases.tag_name.replace("v", ""); -} - -export async function GET() { - let version = await getLatestVersion(); - return new NextResponse(version); -} diff --git a/Website/package-lock.json b/Website/package-lock.json index 1031989be..b2fd84fa3 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.15", - "next": "14.2.15", + "next": "15.0.0", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -51,6 +51,15 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -199,6 +208,348 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -289,9 +640,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.15.tgz", - "integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.0.tgz", + "integrity": "sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.15", @@ -345,9 +696,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz", - "integrity": "sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.0.tgz", + "integrity": "sha512-Gjgs3N7cFa40a9QT9AEHnuGKq69/bvIOn0SLGDV+ordq07QOP4k1GDOVedMHEjVeqy1HBLkL8rXnNTuMZIv79A==", "cpu": [ "arm64" ], @@ -360,9 +711,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz", - "integrity": "sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.0.tgz", + "integrity": "sha512-BUtTvY5u9s5berAuOEydAUlVMjnl6ZjXS+xVrMt317mglYZ2XXjY8YRDCaz9vYMjBNPXH8Gh75Cew5CMdVbWTw==", "cpu": [ "x64" ], @@ -375,9 +726,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz", - "integrity": "sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.0.tgz", + "integrity": "sha512-sbCoEpuWUBpYoLSgYrk0CkBv8RFv4ZlPxbwqRHr/BWDBJppTBtF53EvsntlfzQJ9fosYX12xnS6ltxYYwsMBjg==", "cpu": [ "arm64" ], @@ -390,9 +741,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz", - "integrity": "sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.0.tgz", + "integrity": "sha512-JAw84qfL81aQCirXKP4VkgmhiDpXJupGjt8ITUkHrOVlBd+3h5kjfPva5M0tH2F9KKSgJQHEo3F5S5tDH9h2ww==", "cpu": [ "arm64" ], @@ -405,9 +756,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz", - "integrity": "sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.0.tgz", + "integrity": "sha512-r5Smd03PfxrGKMewdRf2RVNA1CU5l2rRlvZLQYZSv7FUsXD5bKEcOZ/6/98aqRwL7diXOwD8TCWJk1NbhATQHg==", "cpu": [ "x64" ], @@ -420,9 +771,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz", - "integrity": "sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.0.tgz", + "integrity": "sha512-fM6qocafz4Xjhh79CuoQNeGPhDHGBBUbdVtgNFJOUM8Ih5ZpaDZlTvqvqsh5IoO06CGomxurEGqGz/4eR/FaMQ==", "cpu": [ "x64" ], @@ -435,9 +786,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz", - "integrity": "sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.0.tgz", + "integrity": "sha512-ZOd7c/Lz1lv7qP/KzR513XEa7QzW5/P0AH3A5eR1+Z/KmDOvMucht0AozccPc0TqhdV1xaXmC0Fdx0hoNzk6ng==", "cpu": [ "arm64" ], @@ -449,25 +800,10 @@ "node": ">= 10" } }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz", - "integrity": "sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz", - "integrity": "sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.0.tgz", + "integrity": "sha512-2RVWcLtsqg4LtaoJ3j7RoKpnWHgcrz5XvuUGE7vBYU2i6M2XeD9Y8RlLaF770LEIScrrl8MdWsp6odtC6sZccg==", "cpu": [ "x64" ], @@ -627,11 +963,10 @@ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" }, "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", "dependencies": { - "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -1472,6 +1807,19 @@ "node": ">=6" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1488,6 +1836,16 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -1652,6 +2010,15 @@ "node": ">=6" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -2961,6 +3328,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, "node_modules/is-async-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", @@ -3509,17 +3882,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mdast-util-from-markdown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", @@ -4128,40 +4490,41 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.15.tgz", - "integrity": "sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.0.tgz", + "integrity": "sha512-/ivqF6gCShXpKwY9hfrIQYh8YMge8L3W+w1oRLv/POmK4MOQnh+FscZ8a0fRFTSQWE+2z9ctNYvELD9vP2FV+A==", "dependencies": { - "@next/env": "14.2.15", - "@swc/helpers": "0.5.5", + "@next/env": "15.0.0", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.6" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=18.17.0" + "node": ">=18.18.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.15", - "@next/swc-darwin-x64": "14.2.15", - "@next/swc-linux-arm64-gnu": "14.2.15", - "@next/swc-linux-arm64-musl": "14.2.15", - "@next/swc-linux-x64-gnu": "14.2.15", - "@next/swc-linux-x64-musl": "14.2.15", - "@next/swc-win32-arm64-msvc": "14.2.15", - "@next/swc-win32-ia32-msvc": "14.2.15", - "@next/swc-win32-x64-msvc": "14.2.15" + "@next/swc-darwin-arm64": "15.0.0", + "@next/swc-darwin-x64": "15.0.0", + "@next/swc-linux-arm64-gnu": "15.0.0", + "@next/swc-linux-arm64-musl": "15.0.0", + "@next/swc-linux-x64-gnu": "15.0.0", + "@next/swc-linux-x64-musl": "15.0.0", + "@next/swc-win32-arm64-msvc": "15.0.0", + "@next/swc-win32-x64-msvc": "15.0.0", + "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020", + "react-dom": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -4171,6 +4534,9 @@ "@playwright/test": { "optional": true }, + "babel-plugin-react-compiler": { + "optional": true + }, "sass": { "optional": true } @@ -5097,12 +5463,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -5123,6 +5486,45 @@ "node": ">= 0.4" } }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5160,6 +5562,15 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5381,9 +5792,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "dependencies": { "client-only": "0.0.1" }, @@ -5391,7 +5802,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -6092,11 +6503,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yaml": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", diff --git a/Website/package.json b/Website/package.json index 4d88123a3..2a93473ca 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "14.2.15", - "next": "14.2.15", + "next": "15.0.0", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From e770994097ae6b9380a65e550dd0427635540d39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 15:47:16 +0530 Subject: [PATCH 52/77] chore(npm): bump eslint-config-next from 14.2.15 to 15.0.0 in /Website (#693) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.2.15 to 15.0.0. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.0.0/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 1557 +++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 732 insertions(+), 827 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index b2fd84fa3..ab3139deb 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.15", + "eslint-config-next": "15.0.0", "next": "15.0.0", "postcss": "8.4.47", "react": "18.3.1", @@ -40,17 +40,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@emnapi/runtime": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", @@ -550,47 +539,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -645,54 +593,11 @@ "integrity": "sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.15.tgz", - "integrity": "sha512-pKU0iqKRBlFB/ocOI1Ip2CkKePZpYpnw5bEItEkuZ/Nr9FQP1+p7VDWr4VfOdff4i9bFmrOaeaU1bFEyAcxiMQ==", - "dependencies": { - "glob": "10.3.10" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.0.tgz", + "integrity": "sha512-UG/Gnsq6Sc4wRhO9qk+vc/2v4OfRXH7GEH6/TGlNF5eU/vI9PIO7q+kgd65X2DxJ+qIpHWpzWwlPLmqMi1FE9A==", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "fast-glob": "3.3.1" } }, "node_modules/@next/swc-darwin-arm64": { @@ -847,15 +752,6 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@pkgr/utils": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", @@ -952,10 +848,15 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==" + }, "node_modules/@rushstack/eslint-patch": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.4.0.tgz", - "integrity": "sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==" + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==" }, "node_modules/@swc/counter": { "version": "0.1.3", @@ -1337,34 +1238,38 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -1382,16 +1287,36 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1401,13 +1326,13 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1418,13 +1343,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1435,28 +1360,32 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -1467,17 +1396,9 @@ } }, "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dependencies": { - "has-symbols": "^1.0.3" - } + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" }, "node_modules/autoprefixer": { "version": "10.4.20", @@ -1516,9 +1437,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -1527,19 +1451,19 @@ } }, "node_modules/axe-core": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", - "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.1.tgz", + "integrity": "sha512-qPC9o+kD8Tir0lzNGLeghbOrWMr3ZJpaRlCIb6Uobt/7N4FiEDvqUMnxzCHRHmg8vOg14kr5gVNyScRmbMaJ9g==", "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dependencies": { - "dequal": "^2.0.3" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "engines": { + "node": ">= 0.4" } }, "node_modules/bail": { @@ -1660,12 +1584,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1897,6 +1827,54 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1963,16 +1941,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -2063,11 +2044,6 @@ "node": ">=6.0.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, "node_modules/electron-to-chromium": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", @@ -2102,49 +2078,56 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -2153,46 +2136,79 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -2285,23 +2301,23 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.15", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.15.tgz", - "integrity": "sha512-mKg+NC/8a4JKLZRIOBplxXNdStgxy7lzWuedUaCc8tev+Al9mwDUTujQH6W6qXDH9kycWiVo28tADWGvpBsZcQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.0.tgz", + "integrity": "sha512-HFeTwCR2lFEUWmdB00WZrzaak2CvMvxici38gQknA6Bu2HPizSE4PNFGaFzr5GupjBt+SBJ/E0GIP57ZptOD3g==", "dependencies": { - "@next/eslint-plugin-next": "14.2.15", - "@rushstack/eslint-patch": "^1.3.3", + "@next/eslint-plugin-next": "15.0.0", + "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" }, "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", "typescript": ">=3.3.1" }, "peerDependenciesMeta": { @@ -2311,13 +2327,13 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2328,6 +2344,22 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-import-resolver-typescript": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", @@ -2383,9 +2415,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dependencies": { "debug": "^3.2.7" }, @@ -2407,33 +2439,35 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -2464,80 +2498,74 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.1.tgz", + "integrity": "sha512-zHByM9WTUMnfsDTafGXRiqxp6lFtNoSOWBY6FonVRn3A+BUwN1L/tdBXT40BcBJi0cZjOGTXZ0eD/rTG9fEJ0g==", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", + "es-iterator-helpers": "^1.1.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "version": "7.37.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { - "version": "5.0.0-canary-7118f5dd7-20230705", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", - "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react/node_modules/doctrine": { @@ -2552,11 +2580,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2688,9 +2716,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2793,32 +2821,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -2850,9 +2852,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -2880,14 +2885,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2905,12 +2914,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -2975,11 +2985,12 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -3028,17 +3039,6 @@ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -3056,20 +3056,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -3089,11 +3089,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3102,6 +3102,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-util-from-parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", @@ -3303,12 +3314,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -3316,13 +3327,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3397,11 +3410,28 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dependencies": { - "has": "^1.0.3" + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3454,14 +3484,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -3505,17 +3527,20 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -3580,19 +3605,25 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3638,11 +3669,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -3652,9 +3683,12 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3671,12 +3705,15 @@ } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3718,32 +3755,18 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "node": ">= 0.4" } }, "node_modules/jiti": { @@ -3792,9 +3815,9 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", - "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -3806,16 +3829,19 @@ } }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==" }, "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dependencies": { - "language-subtag-registry": "~0.3.2" + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/levn": { @@ -4444,14 +4470,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4632,9 +4650,12 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4648,12 +4669,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -4665,26 +4686,27 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4694,36 +4716,26 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4866,26 +4878,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -4926,6 +4918,14 @@ "node": ">= 6" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", @@ -5152,14 +5152,15 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -5170,19 +5171,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5425,12 +5422,12 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -5442,14 +5439,17 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5473,14 +5473,31 @@ "node": ">=10" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5545,13 +5562,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5604,93 +5625,62 @@ "node": ">=10.0.0" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" }, "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dependencies": { - "ansi-regex": "^6.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5700,26 +5690,29 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5749,18 +5742,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6020,9 +6001,9 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -6058,27 +6039,28 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6088,15 +6070,16 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6106,13 +6089,19 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6355,12 +6344,12 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -6369,8 +6358,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -6380,29 +6369,32 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6411,93 +6403,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/Website/package.json b/Website/package.json index 2a93473ca..730bb1610 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "14.2.15", + "eslint-config-next": "15.0.0", "next": "15.0.0", "postcss": "8.4.47", "react": "18.3.1", From 2d2c9dff05254a135dc379052fe6c070fde72706 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:22:36 +0530 Subject: [PATCH 53/77] chore(npm): bump next from 15.0.0 to 15.0.1 in /Website (#695) Bumps [next](https://github.com/vercel/next.js) from 15.0.0 to 15.0.1. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.0.0...v15.0.1) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 84 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index ab3139deb..0a105e171 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.0", - "next": "15.0.0", + "next": "15.0.1", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -588,9 +588,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.0.tgz", - "integrity": "sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw==" + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.1.tgz", + "integrity": "sha512-lc4HeDUKO9gxxlM5G2knTRifqhsY6yYpwuHspBZdboZe0Gp+rZHBNNSIjmQKDJIdRXiXGyVnSD6gafrbQPvILQ==" }, "node_modules/@next/eslint-plugin-next": { "version": "15.0.0", @@ -601,9 +601,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.0.tgz", - "integrity": "sha512-Gjgs3N7cFa40a9QT9AEHnuGKq69/bvIOn0SLGDV+ordq07QOP4k1GDOVedMHEjVeqy1HBLkL8rXnNTuMZIv79A==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.1.tgz", + "integrity": "sha512-C9k/Xv4sxkQRTA37Z6MzNq3Yb1BJMmSqjmwowoWEpbXTkAdfOwnoKOpAb71ItSzoA26yUTIo6ZhN8rKGu4ExQw==", "cpu": [ "arm64" ], @@ -616,9 +616,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.0.tgz", - "integrity": "sha512-BUtTvY5u9s5berAuOEydAUlVMjnl6ZjXS+xVrMt317mglYZ2XXjY8YRDCaz9vYMjBNPXH8Gh75Cew5CMdVbWTw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.1.tgz", + "integrity": "sha512-uHl13HXOuq1G7ovWFxCACDJHTSDVbn/sbLv8V1p+7KIvTrYQ5HNoSmKBdYeEKRRCbEmd+OohOgg9YOp8Ux3MBg==", "cpu": [ "x64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.0.tgz", - "integrity": "sha512-sbCoEpuWUBpYoLSgYrk0CkBv8RFv4ZlPxbwqRHr/BWDBJppTBtF53EvsntlfzQJ9fosYX12xnS6ltxYYwsMBjg==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.1.tgz", + "integrity": "sha512-LvyhvxHOihFTEIbb35KxOc3q8w8G4xAAAH/AQnsYDEnOvwawjL2eawsB59AX02ki6LJdgDaHoTEnC54Gw+82xw==", "cpu": [ "arm64" ], @@ -646,9 +646,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.0.tgz", - "integrity": "sha512-JAw84qfL81aQCirXKP4VkgmhiDpXJupGjt8ITUkHrOVlBd+3h5kjfPva5M0tH2F9KKSgJQHEo3F5S5tDH9h2ww==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.1.tgz", + "integrity": "sha512-vFmCGUFNyk/A5/BYcQNhAQqPIw01RJaK6dRO+ZEhz0DncoW+hJW1kZ8aH2UvTX27zPq3m85zN5waMSbZEmANcQ==", "cpu": [ "arm64" ], @@ -661,9 +661,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.0.tgz", - "integrity": "sha512-r5Smd03PfxrGKMewdRf2RVNA1CU5l2rRlvZLQYZSv7FUsXD5bKEcOZ/6/98aqRwL7diXOwD8TCWJk1NbhATQHg==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.1.tgz", + "integrity": "sha512-5by7IYq0NCF8rouz6Qg9T97jYU68kaClHPfGpQG2lCZpSYHtSPQF1kjnqBTd34RIqPKMbCa4DqCufirgr8HM5w==", "cpu": [ "x64" ], @@ -676,9 +676,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.0.tgz", - "integrity": "sha512-fM6qocafz4Xjhh79CuoQNeGPhDHGBBUbdVtgNFJOUM8Ih5ZpaDZlTvqvqsh5IoO06CGomxurEGqGz/4eR/FaMQ==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.1.tgz", + "integrity": "sha512-lmYr6H3JyDNBJLzklGXLfbehU3ay78a+b6UmBGlHls4xhDXBNZfgb0aI67sflrX+cGBnv1LgmWzFlYrAYxS1Qw==", "cpu": [ "x64" ], @@ -691,9 +691,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.0.tgz", - "integrity": "sha512-ZOd7c/Lz1lv7qP/KzR513XEa7QzW5/P0AH3A5eR1+Z/KmDOvMucht0AozccPc0TqhdV1xaXmC0Fdx0hoNzk6ng==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.1.tgz", + "integrity": "sha512-DS8wQtl6diAj0eZTdH0sefykm4iXMbHT4MOvLwqZiIkeezKpkgPFcEdFlz3vKvXa2R/2UEgMh48z1nEpNhjeOQ==", "cpu": [ "arm64" ], @@ -706,9 +706,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.0.tgz", - "integrity": "sha512-2RVWcLtsqg4LtaoJ3j7RoKpnWHgcrz5XvuUGE7vBYU2i6M2XeD9Y8RlLaF770LEIScrrl8MdWsp6odtC6sZccg==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.1.tgz", + "integrity": "sha512-4Ho2ggvDdMKlZ/0e9HNdZ9ngeaBwtc+2VS5oCeqrbXqOgutX6I4U2X/42VBw0o+M5evn4/7v3zKgGHo+9v/VjA==", "cpu": [ "x64" ], @@ -4508,11 +4508,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/next/-/next-15.0.0.tgz", - "integrity": "sha512-/ivqF6gCShXpKwY9hfrIQYh8YMge8L3W+w1oRLv/POmK4MOQnh+FscZ8a0fRFTSQWE+2z9ctNYvELD9vP2FV+A==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.1.tgz", + "integrity": "sha512-PSkFkr/w7UnFWm+EP8y/QpHrJXMqpZzAXpergB/EqLPOh4SGPJXv1wj4mslr2hUZBAS9pX7/9YLIdxTv6fwytw==", "dependencies": { - "@next/env": "15.0.0", + "@next/env": "15.0.1", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.13", "busboy": "1.6.0", @@ -4527,22 +4527,22 @@ "node": ">=18.18.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.0.0", - "@next/swc-darwin-x64": "15.0.0", - "@next/swc-linux-arm64-gnu": "15.0.0", - "@next/swc-linux-arm64-musl": "15.0.0", - "@next/swc-linux-x64-gnu": "15.0.0", - "@next/swc-linux-x64-musl": "15.0.0", - "@next/swc-win32-arm64-msvc": "15.0.0", - "@next/swc-win32-x64-msvc": "15.0.0", + "@next/swc-darwin-arm64": "15.0.1", + "@next/swc-darwin-x64": "15.0.1", + "@next/swc-linux-arm64-gnu": "15.0.1", + "@next/swc-linux-arm64-musl": "15.0.1", + "@next/swc-linux-x64-gnu": "15.0.1", + "@next/swc-linux-x64-musl": "15.0.1", + "@next/swc-win32-arm64-msvc": "15.0.1", + "@next/swc-win32-x64-msvc": "15.0.1", "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020", - "react-dom": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020", + "react": "^18.2.0 || 19.0.0-rc-69d4b800-20241021", + "react-dom": "^18.2.0 || 19.0.0-rc-69d4b800-20241021", "sass": "^1.3.0" }, "peerDependenciesMeta": { diff --git a/Website/package.json b/Website/package.json index 730bb1610..b740c6488 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.0", - "next": "15.0.0", + "next": "15.0.1", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From 4657533f928f037c959e63639e7187a60eb57319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:30:23 +0530 Subject: [PATCH 54/77] chore(npm): bump eslint-config-next from 15.0.0 to 15.0.1 in /Website (#694) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 15.0.0 to 15.0.1. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.0.1/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 0a105e171..c605c5fe4 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.0", + "eslint-config-next": "15.0.1", "next": "15.0.1", "postcss": "8.4.47", "react": "18.3.1", @@ -593,9 +593,9 @@ "integrity": "sha512-lc4HeDUKO9gxxlM5G2knTRifqhsY6yYpwuHspBZdboZe0Gp+rZHBNNSIjmQKDJIdRXiXGyVnSD6gafrbQPvILQ==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.0.tgz", - "integrity": "sha512-UG/Gnsq6Sc4wRhO9qk+vc/2v4OfRXH7GEH6/TGlNF5eU/vI9PIO7q+kgd65X2DxJ+qIpHWpzWwlPLmqMi1FE9A==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.1.tgz", + "integrity": "sha512-bKWsMaGPbiFAaGqrDJvbE8b4Z0uKicGVcgOI77YM2ui3UfjHMr4emFPrZTLeZVchi7fT1mooG2LxREfUUClIKw==", "dependencies": { "fast-glob": "3.3.1" } @@ -2301,11 +2301,11 @@ } }, "node_modules/eslint-config-next": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.0.tgz", - "integrity": "sha512-HFeTwCR2lFEUWmdB00WZrzaak2CvMvxici38gQknA6Bu2HPizSE4PNFGaFzr5GupjBt+SBJ/E0GIP57ZptOD3g==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.1.tgz", + "integrity": "sha512-3cYCrgbH6GS/ufApza7XCKz92vtq4dAdYhx++rMFNlH2cAV+/GsAKkrr4+bohYOACmzG2nAOR+uWprKC1Uld6A==", "dependencies": { - "@next/eslint-plugin-next": "15.0.0", + "@next/eslint-plugin-next": "15.0.1", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index b740c6488..7fe78134d 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.1.10", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.0", + "eslint-config-next": "15.0.1", "next": "15.0.1", "postcss": "8.4.47", "react": "18.3.1", From 4cc87b9c434d2a002c6b1378b2d69845a58c81be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:38:47 +0530 Subject: [PATCH 55/77] chore(maven): bump org.codehaus.mojo:exec-maven-plugin from 3.4.1 to 3.5.0 (#696) chore(maven): bump org.codehaus.mojo:exec-maven-plugin Bumps [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/mojohaus/exec-maven-plugin/releases) - [Commits](https://github.com/mojohaus/exec-maven-plugin/compare/3.4.1...3.5.0) --- updated-dependencies: - dependency-name: org.codehaus.mojo:exec-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- CLI/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLI/pom.xml b/CLI/pom.xml index ad931bd89..3e853a7f4 100644 --- a/CLI/pom.xml +++ b/CLI/pom.xml @@ -201,7 +201,7 @@ org.codehaus.mojo exec-maven-plugin - 3.4.1 + 3.5.0 java-agent From b89e0becd120416529bb5b7cafa1656ead55d5a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:06:23 +0530 Subject: [PATCH 56/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.42.2 to 5.43.0 (#699) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.42.2 to 5.43.0. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.42.2...v5.43.0) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 00fd461b3..2c670cc2c 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.42.2 + 5.43.0 org.openrewrite.staticanalysis.CommonStaticAnalysis From 449c86f35a2aeea23c799e7275d73fdf57bc9932 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:54:57 +0530 Subject: [PATCH 57/77] chore(maven): bump org.openrewrite.recipe:rewrite-recommendations from 1.11.0 to 1.12.0 (#698) chore(maven): bump org.openrewrite.recipe:rewrite-recommendations Bumps [org.openrewrite.recipe:rewrite-recommendations](https://github.com/openrewrite/rewrite-recommendations) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/openrewrite/rewrite-recommendations/releases) - [Commits](https://github.com/openrewrite/rewrite-recommendations/compare/v1.11.0...v1.12.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recommendations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c670cc2c..fc3529dee 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ org.openrewrite.recipe rewrite-recommendations - 1.11.0 + 1.12.0 From 1e80e70f619f16efadbf8d746962eaab351f4698 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:52:56 +0530 Subject: [PATCH 58/77] chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis from 1.18.0 to 1.19.0 (#697) chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis Bumps [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis) from 1.18.0 to 1.19.0. - [Release notes](https://github.com/openrewrite/rewrite-static-analysis/releases) - [Commits](https://github.com/openrewrite/rewrite-static-analysis/compare/v1.18.0...v1.19.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-static-analysis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fc3529dee..c6a005f9a 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ org.openrewrite.recipe rewrite-static-analysis - 1.18.0 + 1.19.0 org.openrewrite.recipe From eef85bed1032366f666b171705ba025baba6d91f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:32:26 +0530 Subject: [PATCH 59/77] chore(npm): bump @headlessui/react from 2.1.10 to 2.2.0 in /Website (#700) Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.10 to 2.2.0. - [Release notes](https://github.com/tailwindlabs/headlessui/releases) - [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v2.2.0/packages/@headlessui-react) --- updated-dependencies: - dependency-name: "@headlessui/react" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 12 ++++++------ Website/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index c605c5fe4..b3fea7184 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -8,7 +8,7 @@ "name": "website", "version": "0.1.0", "dependencies": { - "@headlessui/react": "^2.1.10", + "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.1", @@ -150,9 +150,9 @@ "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@headlessui/react": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.10.tgz", - "integrity": "sha512-6mLa2fjMDAFQi+/R10B+zU3edsUk/MDtENB2zHho0lqKU1uzhAfJLUduWds4nCo8wbl3vULtC5rJfZAQ1yqIng==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.0.tgz", + "integrity": "sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==", "dependencies": { "@floating-ui/react": "^0.26.16", "@react-aria/focus": "^3.17.1", @@ -163,8 +163,8 @@ "node": ">=10" }, "peerDependencies": { - "react": "^18", - "react-dom": "^18" + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "node_modules/@humanwhocodes/config-array": { diff --git a/Website/package.json b/Website/package.json index 7fe78134d..15c233056 100644 --- a/Website/package.json +++ b/Website/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@headlessui/react": "^2.1.10", + "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.1", From bf0f8b7e3d2cf2ab33bbda5c7bc6a291e6d12be7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 07:15:10 +0530 Subject: [PATCH 60/77] chore(npm): bump next from 15.0.1 to 15.0.2 in /Website (#703) Bumps [next](https://github.com/vercel/next.js) from 15.0.1 to 15.0.2. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.0.1...v15.0.2) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 84 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index b3fea7184..13cd199fd 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.1", - "next": "15.0.1", + "next": "15.0.2", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -588,9 +588,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.1.tgz", - "integrity": "sha512-lc4HeDUKO9gxxlM5G2knTRifqhsY6yYpwuHspBZdboZe0Gp+rZHBNNSIjmQKDJIdRXiXGyVnSD6gafrbQPvILQ==" + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==" }, "node_modules/@next/eslint-plugin-next": { "version": "15.0.1", @@ -601,9 +601,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.1.tgz", - "integrity": "sha512-C9k/Xv4sxkQRTA37Z6MzNq3Yb1BJMmSqjmwowoWEpbXTkAdfOwnoKOpAb71ItSzoA26yUTIo6ZhN8rKGu4ExQw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", + "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", "cpu": [ "arm64" ], @@ -616,9 +616,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.1.tgz", - "integrity": "sha512-uHl13HXOuq1G7ovWFxCACDJHTSDVbn/sbLv8V1p+7KIvTrYQ5HNoSmKBdYeEKRRCbEmd+OohOgg9YOp8Ux3MBg==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", + "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", "cpu": [ "x64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.1.tgz", - "integrity": "sha512-LvyhvxHOihFTEIbb35KxOc3q8w8G4xAAAH/AQnsYDEnOvwawjL2eawsB59AX02ki6LJdgDaHoTEnC54Gw+82xw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", + "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", "cpu": [ "arm64" ], @@ -646,9 +646,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.1.tgz", - "integrity": "sha512-vFmCGUFNyk/A5/BYcQNhAQqPIw01RJaK6dRO+ZEhz0DncoW+hJW1kZ8aH2UvTX27zPq3m85zN5waMSbZEmANcQ==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", + "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", "cpu": [ "arm64" ], @@ -661,9 +661,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.1.tgz", - "integrity": "sha512-5by7IYq0NCF8rouz6Qg9T97jYU68kaClHPfGpQG2lCZpSYHtSPQF1kjnqBTd34RIqPKMbCa4DqCufirgr8HM5w==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", + "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", "cpu": [ "x64" ], @@ -676,9 +676,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.1.tgz", - "integrity": "sha512-lmYr6H3JyDNBJLzklGXLfbehU3ay78a+b6UmBGlHls4xhDXBNZfgb0aI67sflrX+cGBnv1LgmWzFlYrAYxS1Qw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", + "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", "cpu": [ "x64" ], @@ -691,9 +691,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.1.tgz", - "integrity": "sha512-DS8wQtl6diAj0eZTdH0sefykm4iXMbHT4MOvLwqZiIkeezKpkgPFcEdFlz3vKvXa2R/2UEgMh48z1nEpNhjeOQ==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", + "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", "cpu": [ "arm64" ], @@ -706,9 +706,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.1.tgz", - "integrity": "sha512-4Ho2ggvDdMKlZ/0e9HNdZ9ngeaBwtc+2VS5oCeqrbXqOgutX6I4U2X/42VBw0o+M5evn4/7v3zKgGHo+9v/VjA==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", + "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", "cpu": [ "x64" ], @@ -4508,11 +4508,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/next/-/next-15.0.1.tgz", - "integrity": "sha512-PSkFkr/w7UnFWm+EP8y/QpHrJXMqpZzAXpergB/EqLPOh4SGPJXv1wj4mslr2hUZBAS9pX7/9YLIdxTv6fwytw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", + "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", "dependencies": { - "@next/env": "15.0.1", + "@next/env": "15.0.2", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.13", "busboy": "1.6.0", @@ -4527,22 +4527,22 @@ "node": ">=18.18.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.0.1", - "@next/swc-darwin-x64": "15.0.1", - "@next/swc-linux-arm64-gnu": "15.0.1", - "@next/swc-linux-arm64-musl": "15.0.1", - "@next/swc-linux-x64-gnu": "15.0.1", - "@next/swc-linux-x64-musl": "15.0.1", - "@next/swc-win32-arm64-msvc": "15.0.1", - "@next/swc-win32-x64-msvc": "15.0.1", + "@next/swc-darwin-arm64": "15.0.2", + "@next/swc-darwin-x64": "15.0.2", + "@next/swc-linux-arm64-gnu": "15.0.2", + "@next/swc-linux-arm64-musl": "15.0.2", + "@next/swc-linux-x64-gnu": "15.0.2", + "@next/swc-linux-x64-musl": "15.0.2", + "@next/swc-win32-arm64-msvc": "15.0.2", + "@next/swc-win32-x64-msvc": "15.0.2", "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-69d4b800-20241021", - "react-dom": "^18.2.0 || 19.0.0-rc-69d4b800-20241021", + "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", "sass": "^1.3.0" }, "peerDependenciesMeta": { diff --git a/Website/package.json b/Website/package.json index 15c233056..c6931a891 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.1", - "next": "15.0.1", + "next": "15.0.2", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From 5d6f82278d0205a23cac9face8dbba3ce9431b40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 07:22:26 +0530 Subject: [PATCH 61/77] chore(npm): bump eslint-config-next from 15.0.1 to 15.0.2 in /Website (#704) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 15.0.1 to 15.0.2. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.0.2/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 13cd199fd..bab859ca3 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.1", + "eslint-config-next": "15.0.2", "next": "15.0.2", "postcss": "8.4.47", "react": "18.3.1", @@ -593,9 +593,9 @@ "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.1.tgz", - "integrity": "sha512-bKWsMaGPbiFAaGqrDJvbE8b4Z0uKicGVcgOI77YM2ui3UfjHMr4emFPrZTLeZVchi7fT1mooG2LxREfUUClIKw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", + "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==", "dependencies": { "fast-glob": "3.3.1" } @@ -2301,11 +2301,11 @@ } }, "node_modules/eslint-config-next": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.1.tgz", - "integrity": "sha512-3cYCrgbH6GS/ufApza7XCKz92vtq4dAdYhx++rMFNlH2cAV+/GsAKkrr4+bohYOACmzG2nAOR+uWprKC1Uld6A==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz", + "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==", "dependencies": { - "@next/eslint-plugin-next": "15.0.1", + "@next/eslint-plugin-next": "15.0.2", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index c6931a891..39195795f 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.1", + "eslint-config-next": "15.0.2", "next": "15.0.2", "postcss": "8.4.47", "react": "18.3.1", From 7643974312ed63246c13cba31ceba91a36992ae2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:51:37 +0530 Subject: [PATCH 62/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.43.0 to 5.43.3 (#705) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.43.0 to 5.43.3. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.43.0...v5.43.3) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c6a005f9a..cc6c7805d 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.43.0 + 5.43.3 org.openrewrite.staticanalysis.CommonStaticAnalysis From 3cd043aa39e9a3c2f4221518ac05bf00843a435b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:18:15 +0530 Subject: [PATCH 63/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.43.3 to 5.44.0 (#710) chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.43.3 to 5.44.0. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.43.3...v5.44.0) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cc6c7805d..335fb9522 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.43.3 + 5.44.0 org.openrewrite.staticanalysis.CommonStaticAnalysis From 3cac1232eaf445b848ffcc16927c0a4e19e8cd1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:28:55 +0530 Subject: [PATCH 64/77] chore(npm): bump next from 15.0.2 to 15.0.3 in /Website (#708) Bumps [next](https://github.com/vercel/next.js) from 15.0.2 to 15.0.3. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.0.2...v15.0.3) --- updated-dependencies: - dependency-name: next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 86 +++++++++++++++++++-------------------- Website/package.json | 2 +- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index bab859ca3..3f5016402 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -12,7 +12,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.2", - "next": "15.0.2", + "next": "15.0.3", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", @@ -588,9 +588,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@next/env": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", - "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==" + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", + "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==" }, "node_modules/@next/eslint-plugin-next": { "version": "15.0.2", @@ -601,9 +601,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", - "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", + "integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", "cpu": [ "arm64" ], @@ -616,9 +616,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", - "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", + "integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", "cpu": [ "x64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", - "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", + "integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", "cpu": [ "arm64" ], @@ -646,9 +646,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", - "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", + "integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", "cpu": [ "arm64" ], @@ -661,9 +661,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", - "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", + "integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", "cpu": [ "x64" ], @@ -676,9 +676,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", - "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", + "integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", "cpu": [ "x64" ], @@ -691,9 +691,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", - "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", + "integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", "cpu": [ "arm64" ], @@ -706,9 +706,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", - "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", + "integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", "cpu": [ "x64" ], @@ -4508,11 +4508,11 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/next": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", - "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", + "integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", "dependencies": { - "@next/env": "15.0.2", + "@next/env": "15.0.3", "@swc/counter": "0.1.3", "@swc/helpers": "0.5.13", "busboy": "1.6.0", @@ -4524,25 +4524,25 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=18.18.0" + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.0.2", - "@next/swc-darwin-x64": "15.0.2", - "@next/swc-linux-arm64-gnu": "15.0.2", - "@next/swc-linux-arm64-musl": "15.0.2", - "@next/swc-linux-x64-gnu": "15.0.2", - "@next/swc-linux-x64-musl": "15.0.2", - "@next/swc-win32-arm64-msvc": "15.0.2", - "@next/swc-win32-x64-msvc": "15.0.2", + "@next/swc-darwin-arm64": "15.0.3", + "@next/swc-darwin-x64": "15.0.3", + "@next/swc-linux-arm64-gnu": "15.0.3", + "@next/swc-linux-arm64-musl": "15.0.3", + "@next/swc-linux-x64-gnu": "15.0.3", + "@next/swc-linux-x64-musl": "15.0.3", + "@next/swc-win32-arm64-msvc": "15.0.3", + "@next/swc-win32-x64-msvc": "15.0.3", "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", - "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106", "sass": "^1.3.0" }, "peerDependenciesMeta": { diff --git a/Website/package.json b/Website/package.json index 39195795f..d2b9ed4b8 100644 --- a/Website/package.json +++ b/Website/package.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.20", "eslint": "8.57.0", "eslint-config-next": "15.0.2", - "next": "15.0.2", + "next": "15.0.3", "postcss": "8.4.47", "react": "18.3.1", "react-dom": "18.3.1", From 3e9359c05eb4e01fedd0dcd1534aff089e827e18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:34:21 +0530 Subject: [PATCH 65/77] chore(npm): bump postcss from 8.4.47 to 8.4.48 in /Website (#709) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.47 to 8.4.48. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.47...8.4.48) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 3f5016402..ff948be3d 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -13,7 +13,7 @@ "eslint": "8.57.0", "eslint-config-next": "15.0.2", "next": "15.0.3", - "postcss": "8.4.47", + "postcss": "8.4.48", "react": "18.3.1", "react-dom": "18.3.1", "remark": "^15.0.1", @@ -4887,9 +4887,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -4927,9 +4927,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.48", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.48.tgz", + "integrity": "sha512-GCRK8F6+Dl7xYniR5a4FYbpBzU8XnZVeowqsQFYdcXuSbChgiks7qybSkbvnaeqv0G0B+dd9/jJgH8kkLDQeEA==", "funding": [ { "type": "opencollective", @@ -4946,7 +4946,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { diff --git a/Website/package.json b/Website/package.json index d2b9ed4b8..0c487ac69 100644 --- a/Website/package.json +++ b/Website/package.json @@ -14,7 +14,7 @@ "eslint": "8.57.0", "eslint-config-next": "15.0.2", "next": "15.0.3", - "postcss": "8.4.47", + "postcss": "8.4.48", "react": "18.3.1", "react-dom": "18.3.1", "remark": "^15.0.1", From a26e5f441786d859a94a8625dd0c23c2c112cd4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:46:11 +0530 Subject: [PATCH 66/77] chore(npm): bump eslint-config-next from 15.0.2 to 15.0.3 in /Website (#707) Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 15.0.2 to 15.0.3. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/commits/v15.0.3/packages/eslint-config-next) --- updated-dependencies: - dependency-name: eslint-config-next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 16 ++++++++-------- Website/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index ff948be3d..278ee6012 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -11,7 +11,7 @@ "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.2", + "eslint-config-next": "15.0.3", "next": "15.0.3", "postcss": "8.4.48", "react": "18.3.1", @@ -593,9 +593,9 @@ "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", - "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.3.tgz", + "integrity": "sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==", "dependencies": { "fast-glob": "3.3.1" } @@ -2301,11 +2301,11 @@ } }, "node_modules/eslint-config-next": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz", - "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.3.tgz", + "integrity": "sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==", "dependencies": { - "@next/eslint-plugin-next": "15.0.2", + "@next/eslint-plugin-next": "15.0.3", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", diff --git a/Website/package.json b/Website/package.json index 0c487ac69..ea05f63b5 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,7 +12,7 @@ "@headlessui/react": "^2.2.0", "autoprefixer": "10.4.20", "eslint": "8.57.0", - "eslint-config-next": "15.0.2", + "eslint-config-next": "15.0.3", "next": "15.0.3", "postcss": "8.4.48", "react": "18.3.1", From d665376ec063fa5cfc6349dfff4993cc155973ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 20:36:00 +0530 Subject: [PATCH 67/77] chore(npm): bump tailwindcss from 3.4.14 to 3.4.15 in /Website (#715) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.14 to 3.4.15. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.15/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.14...v3.4.15) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 572 ++++++++++++++++++++++++++++++-------- Website/package.json | 2 +- 2 files changed, 461 insertions(+), 113 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 278ee6012..9b1619c79 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -18,7 +18,7 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.14" + "tailwindcss": "3.4.15" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -539,54 +539,90 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, "node_modules/@next/env": { "version": "15.0.3", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", @@ -752,6 +788,15 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/utils": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", @@ -1489,11 +1534,14 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bplist-parser": { @@ -1688,15 +1736,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1709,6 +1751,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2044,6 +2089,11 @@ "node": ">=6.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/electron-to-chromium": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", @@ -2344,22 +2394,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-import-resolver-typescript": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", @@ -2821,6 +2855,32 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -3484,6 +3544,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -3769,10 +3837,24 @@ "node": ">= 0.4" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "bin": { "jiti": "bin/jiti.js" } @@ -3908,6 +3990,11 @@ "loose-envify": "cli.js" } }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, "node_modules/mdast-util-from-markdown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", @@ -4470,6 +4557,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4827,6 +4922,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4878,6 +4978,21 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -4988,20 +5103,26 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -5015,28 +5136,45 @@ } } }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -5249,11 +5387,11 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5625,6 +5763,66 @@ "node": ">=10.0.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -5742,6 +5940,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5795,13 +6005,13 @@ } }, "node_modules/sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -5812,23 +6022,45 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5877,32 +6109,32 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tailwindcss": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", - "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", + "jiti": "^1.21.6", "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -5912,6 +6144,32 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/tailwindcss/node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -6403,15 +6661,105 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } diff --git a/Website/package.json b/Website/package.json index ea05f63b5..ca0f11816 100644 --- a/Website/package.json +++ b/Website/package.json @@ -19,6 +19,6 @@ "react-dom": "18.3.1", "remark": "^15.0.1", "remark-html": "^16.0.1", - "tailwindcss": "3.4.14" + "tailwindcss": "3.4.15" } } From a6077a1098640a3c7a6d6549c47c9a38a2f1751f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 20:41:38 +0530 Subject: [PATCH 68/77] chore(npm): bump cross-spawn from 7.0.3 to 7.0.6 in /Website in the npm_and_yarn group (#716) chore(npm): bump cross-spawn in /Website in the npm_and_yarn group Bumps the npm_and_yarn group in /Website with 1 update: [cross-spawn](https://github.com/moxystudio/node-cross-spawn). Updates `cross-spawn` from 7.0.3 to 7.0.6 - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Website/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 9b1619c79..1fe637003 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -1844,9 +1844,9 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", From 561a8af8a53bad7f7cfa649fd36a3da51d75767d Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Tue, 19 Nov 2024 20:46:40 +0530 Subject: [PATCH 69/77] fix(CI): Removed Git Merge Conflict marker check from linter Signed-off-by: Saptarshi Sarkar --- .github/workflows/linter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 91cac6004..7843e3491 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -46,6 +46,7 @@ jobs: VALIDATE_YAML: false VALIDATE_CHECKOV: false VALIDATE_SHELL_SHFMT: false + VALIDATE_GIT_MERGE_CONFLICT_MARKERS: false - name: Set read and write permission in super linter log run: sudo chmod 777 super-linter.log - name: Upload Lint Result From 5d5b827073e71098ca10285abe78ca4f257b4b61 Mon Sep 17 00:00:00 2001 From: Saptarshi Sarkar Date: Tue, 19 Nov 2024 20:51:33 +0530 Subject: [PATCH 70/77] fix(CI): Fixed node js version to 21.2.0 Signed-off-by: Saptarshi Sarkar --- .github/workflows/nextjs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index 7704ca110..ee3b4c93f 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -53,7 +53,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: "latest" + node-version: "21.2.0" cache: ${{ steps.detect-package-manager.outputs.manager }} cache-dependency-path: "./Website/package-lock.json" - name: Setup Pages @@ -88,4 +88,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 From fdfa8504d3628eea8ebfaea6d04ec047a71a5067 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 20:45:30 +0530 Subject: [PATCH 71/77] chore(ci): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0 in /.github/workflows (#717) chore(ci): bump aquasecurity/trivy-action in /.github/workflows Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/0.28.0...0.29.0) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dev-docker-build.yml | 2 +- .github/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index 3b3dc696b..5f9c41098 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -59,7 +59,7 @@ jobs: docker compose build ${{ matrix.image_name_suffix }} - name: Run Trivy security scan if: matrix.os == 'ubuntu-latest' - uses: aquasecurity/trivy-action@0.28.0 + uses: aquasecurity/trivy-action@0.29.0 continue-on-error: true with: image-ref: "drifty-${{ matrix.image_name_suffix }}" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 2682934a4..cdb546c4b 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -207,7 +207,7 @@ jobs: run: docker build -t ${{ matrix.image_name }} -f Docker/prod/${{ matrix.docker_context }}/Dockerfile build/${{ matrix.docker_context }} - name: Run Trivy security scan - uses: aquasecurity/trivy-action@0.28.0 + uses: aquasecurity/trivy-action@0.29.0 continue-on-error: true with: image-ref: ${{ matrix.image_name }} From ddb4c88b35b7b148c96b1bc3555d53ac11a645d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 21:11:43 +0530 Subject: [PATCH 72/77] chore(ci): bump docker/metadata-action from 5.5.1 to 5.6.1 in /.github/workflows (#718) chore(ci): bump docker/metadata-action in /.github/workflows Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.1 to 5.6.1. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/v5.5.1...v5.6.1) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index cdb546c4b..c696cd557 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -137,7 +137,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@v5.5.1 + uses: docker/metadata-action@v5.6.1 with: images: | ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image_name }} From 7545648c8f72d8ab9b6e610531852dbf180cf68d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:12:17 +0000 Subject: [PATCH 73/77] chore(maven): bump org.openrewrite.maven:rewrite-maven-plugin from 5.44.0 to 5.45.1 (#719) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 335fb9522..d96fc3fd1 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.openrewrite.maven rewrite-maven-plugin - 5.44.0 + 5.45.1 org.openrewrite.staticanalysis.CommonStaticAnalysis From 0cc9f999c92762b419fda01867f0ae206ebbda35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:17:16 +0000 Subject: [PATCH 74/77] chore(maven): bump org.openrewrite.recipe:rewrite-static-analysis from 1.19.0 to 1.20.0 (#714) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d96fc3fd1..8fa563141 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ org.openrewrite.recipe rewrite-static-analysis - 1.19.0 + 1.20.0 org.openrewrite.recipe From 89c3bd3fb1989244eda3549389a6ce88dcaddd41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:27:55 +0000 Subject: [PATCH 75/77] chore(maven): bump org.codehaus.mojo:versions-maven-plugin from 2.17.1 to 2.18.0 (#713) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8fa563141..5f66f884a 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ org.codehaus.mojo versions-maven-plugin - 2.17.1 + 2.18.0 From b583cbf566911560ecd0b90a499974c52a8d50b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:31:15 +0000 Subject: [PATCH 76/77] chore(npm): bump postcss from 8.4.48 to 8.4.49 in /Website (#711) --- Website/package-lock.json | 8 ++++---- Website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 1fe637003..808d47889 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -13,7 +13,7 @@ "eslint": "8.57.0", "eslint-config-next": "15.0.3", "next": "15.0.3", - "postcss": "8.4.48", + "postcss": "8.4.49", "react": "18.3.1", "react-dom": "18.3.1", "remark": "^15.0.1", @@ -5042,9 +5042,9 @@ } }, "node_modules/postcss": { - "version": "8.4.48", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.48.tgz", - "integrity": "sha512-GCRK8F6+Dl7xYniR5a4FYbpBzU8XnZVeowqsQFYdcXuSbChgiks7qybSkbvnaeqv0G0B+dd9/jJgH8kkLDQeEA==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", diff --git a/Website/package.json b/Website/package.json index ca0f11816..3a837d003 100644 --- a/Website/package.json +++ b/Website/package.json @@ -14,7 +14,7 @@ "eslint": "8.57.0", "eslint-config-next": "15.0.3", "next": "15.0.3", - "postcss": "8.4.48", + "postcss": "8.4.49", "react": "18.3.1", "react-dom": "18.3.1", "remark": "^15.0.1", From a796f6a5f298669fd528172fa4295154ac0a5ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:39:58 +0000 Subject: [PATCH 77/77] chore(maven): bump org.apache.maven.plugins:maven-dependency-plugin from 3.8.0 to 3.8.1 (#701) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5f66f884a..5bf761a6d 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.8.0 + 3.8.1