From 918c7093f27aae6cba8056e9363242b62a3b3aa8 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Tue, 3 Sep 2024 15:33:57 +0200 Subject: [PATCH 01/20] Added token position tests for annotations --- .../resources/de/jplag/java/tokenPositions/Anno_1.java | 3 +++ .../resources/de/jplag/java/tokenPositions/Anno_2.java | 3 +++ .../resources/de/jplag/java/tokenPositions/Anno_3.java | 6 ++++++ .../resources/de/jplag/java/tokenPositions/Anno_4.java | 7 +++++++ .../de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java | 3 +++ .../de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java | 4 ++++ 6 files changed, 26 insertions(+) create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_1.java create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_2.java create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_3.java create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_4.java create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java create mode 100644 languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_1.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_1.java new file mode 100644 index 000000000..e78c1a3f9 --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_1.java @@ -0,0 +1,3 @@ +>@SuppressWarnings +$| J_ANNO 17 +>class Anno {} \ No newline at end of file diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_2.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_2.java new file mode 100644 index 000000000..54f9b612a --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_2.java @@ -0,0 +1,3 @@ +>@SuppressWarnings("SomeWarning") +$| J_ANNO 17 +>class Anno {} \ No newline at end of file diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_3.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_3.java new file mode 100644 index 000000000..522a18dae --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_3.java @@ -0,0 +1,6 @@ +>class Anno { +> @Deprecated +$ | J_ANNO 11 +> public void testFunction() { +> } +>} \ No newline at end of file diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_4.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_4.java new file mode 100644 index 000000000..92db1e255 --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/Anno_4.java @@ -0,0 +1,7 @@ +>import javax.annotation.processing.Generated; +> +>class Anno { +> public void testMethod(@Generated String param) { +$ | J_ANNO 10 +> } +>} diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java new file mode 100644 index 000000000..b072549bb --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java @@ -0,0 +1,3 @@ +>public @interface MyAnnotation {} +$| J_ANNO_T_BEGIN 30 +$ | J_ANNO_T_END 1 \ No newline at end of file diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java new file mode 100644 index 000000000..13ea969ca --- /dev/null +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java @@ -0,0 +1,4 @@ +>public @interface MyAnnotation { +$| J_ANNO_T_BEGIN 30 +>} +$| J_ANNO_T_END 1 From 500bbde74751f5206fbb3ffeefc99fea87039c7f Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Thu, 12 Sep 2024 12:44:17 +0200 Subject: [PATCH 02/20] Fixed annotation token positions in java module --- .../java/de/jplag/java/TokenGeneratingTreeScanner.java | 8 +++++--- .../de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java | 2 +- .../de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java index 9589da81b..c1c306aa8 100644 --- a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java +++ b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java @@ -136,7 +136,8 @@ public Void visitClass(ClassTree node, Void unused) { } } - long start = positions.getStartPosition(ast, node); + long start = positions.getEndPosition(ast, node.getModifiers()) + 1; + long nameLength = node.getSimpleName().length(); long end = positions.getEndPosition(ast, node) - 1; CodeSemantics semantics = CodeSemantics.createControl(); if (node.getKind() == Tree.Kind.ENUM) { @@ -146,7 +147,7 @@ public Void visitClass(ClassTree node, Void unused) { } else if (node.getKind() == Tree.Kind.RECORD) { addToken(JavaTokenType.J_RECORD_BEGIN, start, 1, semantics); } else if (node.getKind() == Tree.Kind.ANNOTATION_TYPE) { - addToken(JavaTokenType.J_ANNO_T_BEGIN, start, 10, semantics); + addToken(JavaTokenType.J_ANNO_T_BEGIN, start - 2 /*@ is final modifier for annotations*/, (start - 2) + 11 + nameLength, semantics); } else if (node.getKind() == Tree.Kind.CLASS) { addToken(JavaTokenType.J_CLASS_BEGIN, start, 5, semantics); } @@ -508,7 +509,8 @@ public Void visitMethodInvocation(MethodInvocationTree node, Void unused) { @Override public Void visitAnnotation(AnnotationTree node, Void unused) { long start = positions.getStartPosition(ast, node); - addToken(JavaTokenType.J_ANNO, start, 1, new CodeSemantics()); + String annotationName = node.getAnnotationType().toString(); + addToken(JavaTokenType.J_ANNO, start, annotationName.length() + 1, new CodeSemantics()); return super.visitAnnotation(node, null); } diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java index b072549bb..119972961 100644 --- a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_1.java @@ -1,3 +1,3 @@ >public @interface MyAnnotation {} -$| J_ANNO_T_BEGIN 30 +$ | J_ANNO_T_BEGIN 23 $ | J_ANNO_T_END 1 \ No newline at end of file diff --git a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java index 13ea969ca..0d0d89d1e 100644 --- a/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java +++ b/languages/java/src/test/resources/de/jplag/java/tokenPositions/JAnnoTBegin-End_2.java @@ -1,4 +1,4 @@ >public @interface MyAnnotation { -$| J_ANNO_T_BEGIN 30 +$ | J_ANNO_T_BEGIN 23 >} $| J_ANNO_T_END 1 From 0f0efea80baadd2caa8cf1036d65e53d9fcfb8ab Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Tue, 29 Oct 2024 15:44:30 +0100 Subject: [PATCH 03/20] Fixed token order test by ignoring certain token types. --- .../test/java/de/jplag/testutils/LanguageModuleTest.java | 7 ++++++- .../src/test/java/de/jplag/java/JavaLanguageTest.java | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/language-testutils/src/test/java/de/jplag/testutils/LanguageModuleTest.java b/language-testutils/src/test/java/de/jplag/testutils/LanguageModuleTest.java index f659ba2b2..1681903a5 100644 --- a/language-testutils/src/test/java/de/jplag/testutils/LanguageModuleTest.java +++ b/language-testutils/src/test/java/de/jplag/testutils/LanguageModuleTest.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import org.junit.jupiter.api.AfterAll; @@ -247,7 +248,7 @@ final List getTokenPositionTestData() { @MethodSource("getAllTestData") @DisplayName("Test that the tokens map to ascending line numbers") final void testMonotoneTokenOrder(TestData data) throws ParsingException, IOException { - List tokens = parseTokens(data); + List tokens = parseTokens(data).stream().filter(it -> !getIgnoredTokensForMonotoneTokenOrder().contains(it.getType())).toList(); for (int i = 0; i < tokens.size() - 2; i++) { Token first = tokens.get(i); @@ -338,4 +339,8 @@ private > C ignoreEmptyTestType(C data) { protected File getTestFileLocation() { return new File(DEFAULT_TEST_CODE_PATH_BASE.toFile(), this.language.getIdentifier()); } + + protected List getIgnoredTokensForMonotoneTokenOrder() { + return Collections.emptyList(); + } } diff --git a/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java b/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java index a4f89d9bb..03a0cd06c 100644 --- a/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java +++ b/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java @@ -29,10 +29,13 @@ import static de.jplag.java.JavaTokenType.J_TRY_END; import static de.jplag.java.JavaTokenType.J_VARDEF; +import de.jplag.TokenType; import de.jplag.testutils.LanguageModuleTest; import de.jplag.testutils.datacollector.TestDataCollector; import de.jplag.testutils.datacollector.TestSourceIgnoredLinesCollector; +import java.util.List; + public class JavaLanguageTest extends LanguageModuleTest { public JavaLanguageTest() { super(new JavaLanguage(), JavaTokenType.class); @@ -84,4 +87,9 @@ protected void configureIgnoredLines(TestSourceIgnoredLinesCollector collector) collector.ignoreLinesByPrefix("})"); collector.ignoreByCondition(line -> line.contains("else") && !line.contains("if")); } + + @Override + protected List getIgnoredTokensForMonotoneTokenOrder() { + return List.of(JavaTokenType.J_ANNO); + } } From 009f6004b57518746166ee302c88df3506b6f0c1 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Tue, 29 Oct 2024 15:44:55 +0100 Subject: [PATCH 04/20] Spotless --- .../main/java/de/jplag/java/TokenGeneratingTreeScanner.java | 2 +- .../java/src/test/java/de/jplag/java/JavaLanguageTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java index c1c306aa8..8bfbeb266 100644 --- a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java +++ b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java @@ -147,7 +147,7 @@ public Void visitClass(ClassTree node, Void unused) { } else if (node.getKind() == Tree.Kind.RECORD) { addToken(JavaTokenType.J_RECORD_BEGIN, start, 1, semantics); } else if (node.getKind() == Tree.Kind.ANNOTATION_TYPE) { - addToken(JavaTokenType.J_ANNO_T_BEGIN, start - 2 /*@ is final modifier for annotations*/, (start - 2) + 11 + nameLength, semantics); + addToken(JavaTokenType.J_ANNO_T_BEGIN, start - 2 /* @ is final modifier for annotations */, (start - 2) + 11 + nameLength, semantics); } else if (node.getKind() == Tree.Kind.CLASS) { addToken(JavaTokenType.J_CLASS_BEGIN, start, 5, semantics); } diff --git a/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java b/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java index 03a0cd06c..8e9320553 100644 --- a/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java +++ b/languages/java/src/test/java/de/jplag/java/JavaLanguageTest.java @@ -29,13 +29,13 @@ import static de.jplag.java.JavaTokenType.J_TRY_END; import static de.jplag.java.JavaTokenType.J_VARDEF; +import java.util.List; + import de.jplag.TokenType; import de.jplag.testutils.LanguageModuleTest; import de.jplag.testutils.datacollector.TestDataCollector; import de.jplag.testutils.datacollector.TestSourceIgnoredLinesCollector; -import java.util.List; - public class JavaLanguageTest extends LanguageModuleTest { public JavaLanguageTest() { super(new JavaLanguage(), JavaTokenType.class); From caa1eb12f5f0f5b8c24a9ae281d43b55e0ccc213 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Mon, 4 Nov 2024 10:53:22 +0100 Subject: [PATCH 05/20] Fixed formatting --- .../main/java/de/jplag/java/TokenGeneratingTreeScanner.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java index 8bfbeb266..503c84fb0 100644 --- a/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java +++ b/languages/java/src/main/java/de/jplag/java/TokenGeneratingTreeScanner.java @@ -147,7 +147,9 @@ public Void visitClass(ClassTree node, Void unused) { } else if (node.getKind() == Tree.Kind.RECORD) { addToken(JavaTokenType.J_RECORD_BEGIN, start, 1, semantics); } else if (node.getKind() == Tree.Kind.ANNOTATION_TYPE) { - addToken(JavaTokenType.J_ANNO_T_BEGIN, start - 2 /* @ is final modifier for annotations */, (start - 2) + 11 + nameLength, semantics); + // The start position for the is calculated that way, because the @ is the final element in the modifier list for + // annotations + addToken(JavaTokenType.J_ANNO_T_BEGIN, start - 2, (start - 2) + 11 + nameLength, semantics); } else if (node.getKind() == Tree.Kind.CLASS) { addToken(JavaTokenType.J_CLASS_BEGIN, start, 5, semantics); } From 0dd5f8e7afdb919044e25cda2edc14ca959d0176 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Thu, 28 Nov 2024 11:28:37 +0100 Subject: [PATCH 06/20] Implemented multi language language module --- cli/pom.xml | 5 ++ .../jplag/cli/options/LanguageCandidates.java | 2 + .../jplag/cli/options/LanguageConverter.java | 1 + .../de/jplag/cli/picocli/CliInputHandler.java | 2 +- .../test/java/de/jplag/cli/LanguageTest.java | 2 +- .../endtoend/helper/LanguageDeserializer.java | 2 +- .../main/java/de/jplag}/LanguageLoader.java | 4 +- .../de/jplag/options/LanguageOptions.java | 2 +- languages/multi-language/pom.xml | 13 +++++ .../de/jplag/multilang/MultiLanguage.java | 55 +++++++++++++++++++ .../jplag/multilang/MultiLanguageOptions.java | 36 ++++++++++++ .../jplag/multilang/MultiLanguageParser.java | 36 ++++++++++++ languages/pom.xml | 1 + 13 files changed, 154 insertions(+), 7 deletions(-) rename {cli/src/main/java/de/jplag/cli/options => language-api/src/main/java/de/jplag}/LanguageLoader.java (98%) create mode 100644 languages/multi-language/pom.xml create mode 100644 languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java create mode 100644 languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java create mode 100644 languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageParser.java diff --git a/cli/pom.xml b/cli/pom.xml index fe351d8d0..e9f33c938 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -118,6 +118,11 @@ llvmir ${revision} + + de.jplag + multi-language + ${revision} + org.kohsuke.metainf-services diff --git a/cli/src/main/java/de/jplag/cli/options/LanguageCandidates.java b/cli/src/main/java/de/jplag/cli/options/LanguageCandidates.java index e1c764b8f..0bddd656e 100644 --- a/cli/src/main/java/de/jplag/cli/options/LanguageCandidates.java +++ b/cli/src/main/java/de/jplag/cli/options/LanguageCandidates.java @@ -2,6 +2,8 @@ import java.util.ArrayList; +import de.jplag.LanguageLoader; + /** * Helper class for picocli to find all available languages. */ diff --git a/cli/src/main/java/de/jplag/cli/options/LanguageConverter.java b/cli/src/main/java/de/jplag/cli/options/LanguageConverter.java index 9f92ec944..6af53239f 100644 --- a/cli/src/main/java/de/jplag/cli/options/LanguageConverter.java +++ b/cli/src/main/java/de/jplag/cli/options/LanguageConverter.java @@ -1,6 +1,7 @@ package de.jplag.cli.options; import de.jplag.Language; +import de.jplag.LanguageLoader; import picocli.CommandLine; diff --git a/cli/src/main/java/de/jplag/cli/picocli/CliInputHandler.java b/cli/src/main/java/de/jplag/cli/picocli/CliInputHandler.java index 4bc388a35..7f909f891 100644 --- a/cli/src/main/java/de/jplag/cli/picocli/CliInputHandler.java +++ b/cli/src/main/java/de/jplag/cli/picocli/CliInputHandler.java @@ -14,9 +14,9 @@ import java.util.stream.Collectors; import de.jplag.Language; +import de.jplag.LanguageLoader; import de.jplag.cli.CliException; import de.jplag.cli.options.CliOptions; -import de.jplag.cli.options.LanguageLoader; import de.jplag.options.LanguageOption; import de.jplag.options.LanguageOptions; diff --git a/cli/src/test/java/de/jplag/cli/LanguageTest.java b/cli/src/test/java/de/jplag/cli/LanguageTest.java index 4a7c84e0a..e2e860c4f 100644 --- a/cli/src/test/java/de/jplag/cli/LanguageTest.java +++ b/cli/src/test/java/de/jplag/cli/LanguageTest.java @@ -13,8 +13,8 @@ import org.junit.jupiter.params.provider.MethodSource; import de.jplag.Language; +import de.jplag.LanguageLoader; import de.jplag.cli.options.CliOptions; -import de.jplag.cli.options.LanguageLoader; import de.jplag.cli.test.CliArgument; import de.jplag.cli.test.CliTest; import de.jplag.exceptions.ExitException; diff --git a/endtoend-testing/src/main/java/de/jplag/endtoend/helper/LanguageDeserializer.java b/endtoend-testing/src/main/java/de/jplag/endtoend/helper/LanguageDeserializer.java index 22e231eac..44878ab6c 100644 --- a/endtoend-testing/src/main/java/de/jplag/endtoend/helper/LanguageDeserializer.java +++ b/endtoend-testing/src/main/java/de/jplag/endtoend/helper/LanguageDeserializer.java @@ -3,7 +3,7 @@ import java.io.IOException; import de.jplag.Language; -import de.jplag.cli.options.LanguageLoader; +import de.jplag.LanguageLoader; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/cli/src/main/java/de/jplag/cli/options/LanguageLoader.java b/language-api/src/main/java/de/jplag/LanguageLoader.java similarity index 98% rename from cli/src/main/java/de/jplag/cli/options/LanguageLoader.java rename to language-api/src/main/java/de/jplag/LanguageLoader.java index 408247638..f0b11f587 100644 --- a/cli/src/main/java/de/jplag/cli/options/LanguageLoader.java +++ b/language-api/src/main/java/de/jplag/LanguageLoader.java @@ -1,4 +1,4 @@ -package de.jplag.cli.options; +package de.jplag; import java.util.Collections; import java.util.Map; @@ -11,8 +11,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import de.jplag.Language; - /** * This class contains methods to load {@link Language Languages}. * @author Dominik Fuchss diff --git a/language-api/src/main/java/de/jplag/options/LanguageOptions.java b/language-api/src/main/java/de/jplag/options/LanguageOptions.java index 8f0bf2a7e..b8167bd26 100644 --- a/language-api/src/main/java/de/jplag/options/LanguageOptions.java +++ b/language-api/src/main/java/de/jplag/options/LanguageOptions.java @@ -56,7 +56,7 @@ protected LanguageOption createDefaultOption(OptionType type, String n * @return The new option */ protected LanguageOption createOption(OptionType type, String name, String description) { - LanguageOption option = new DefaultLanguageOption<>(type, name, description); + LanguageOption option = new DefaultLanguageOption<>(type, description, name); this.options.add(option); return option; } diff --git a/languages/multi-language/pom.xml b/languages/multi-language/pom.xml new file mode 100644 index 000000000..ba0908c50 --- /dev/null +++ b/languages/multi-language/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + + de.jplag + languages + ${revision} + + multi-language + + + + diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java new file mode 100644 index 000000000..00779f778 --- /dev/null +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java @@ -0,0 +1,55 @@ +package de.jplag.multilang; + +import java.io.File; +import java.util.Arrays; +import java.util.List; +import java.util.Set; + +import org.kohsuke.MetaInfServices; + +import de.jplag.Language; +import de.jplag.LanguageLoader; +import de.jplag.ParsingException; +import de.jplag.Token; +import de.jplag.options.LanguageOptions; + +@MetaInfServices(Language.class) +public class MultiLanguage implements Language { + private final MultiLanguageOptions options; + + public MultiLanguage() { + this.options = new MultiLanguageOptions(); + } + + @Override + public String[] suffixes() { + return LanguageLoader.getAllAvailableLanguages().values().stream().filter(it -> !(it == this)).flatMap(it -> Arrays.stream(it.suffixes())) + .toArray(String[]::new); + } + + @Override + public String getName() { + return "multi-language"; + } + + @Override + public String getIdentifier() { + return "multi"; + } + + @Override + public int minimumTokenMatch() { + return this.options.getLanguages().stream().mapToInt(Language::minimumTokenMatch).min().orElse(9); + } + + @Override + public List parse(Set files, boolean normalize) throws ParsingException { + MultiLanguageParser parser = new MultiLanguageParser(this.options); + return parser.parseFiles(files, normalize); + } + + @Override + public LanguageOptions getOptions() { + return this.options; + } +} diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java new file mode 100644 index 000000000..0f3f4f645 --- /dev/null +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java @@ -0,0 +1,36 @@ +package de.jplag.multilang; + +import java.util.Arrays; +import java.util.List; + +import de.jplag.Language; +import de.jplag.LanguageLoader; +import de.jplag.options.LanguageOption; +import de.jplag.options.LanguageOptions; +import de.jplag.options.OptionType; + +public class MultiLanguageOptions extends LanguageOptions { + private static final String ERROR_LANGUAGE_NOT_FOUND = "The selected language %s could not be found"; + private static final String ERROR_NOT_ENOUGH_LANGUAGES = "To use multi language specify at least 2 languages"; + + public LanguageOption languageNames = createOption(OptionType.string(), "langs", + "The languages that should be used. This is a ',' separated list"); + private List languages = null; + + public List getLanguages() { + if (this.languages == null) { + List languages = Arrays.stream(languageNames.getValue().split(",")) + .map(name -> LanguageLoader.getLanguage(name) + .orElseThrow(() -> new IllegalArgumentException(String.format(ERROR_LANGUAGE_NOT_FOUND, name)))) + .filter(language -> !language.getClass().equals(MultiLanguage.class)).toList(); + + if (languages.size() <= 1) { + throw new IllegalArgumentException(ERROR_NOT_ENOUGH_LANGUAGES); + } + + this.languages = languages; + } + + return this.languages; + } +} diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageParser.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageParser.java new file mode 100644 index 000000000..d560219d3 --- /dev/null +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageParser.java @@ -0,0 +1,36 @@ +package de.jplag.multilang; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import de.jplag.Language; +import de.jplag.ParsingException; +import de.jplag.Token; + +public class MultiLanguageParser { + private final List languages; + + public MultiLanguageParser(MultiLanguageOptions options) { + this.languages = options.getLanguages(); + } + + public List parseFiles(Set files, boolean normalize) throws ParsingException { + List results = new ArrayList<>(); + for (File file : files) { + Optional language = findLanguageForFile(file); + if (language.isPresent()) { + results.addAll(language.get().parse(Set.of(file), normalize)); + } + } + return results; + } + + private Optional findLanguageForFile(File file) { + return this.languages.stream().filter(language -> Arrays.stream(language.suffixes()).anyMatch(suffix -> file.getName().endsWith(suffix))) + .findFirst(); + } +} diff --git a/languages/pom.xml b/languages/pom.xml index 819b1f491..6e19523aa 100644 --- a/languages/pom.xml +++ b/languages/pom.xml @@ -29,6 +29,7 @@ typescript javascript llvmir + multi-language From d62a35856ae646424ebb28621d8c198b3e5505ca Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Mon, 2 Dec 2024 10:47:12 +0100 Subject: [PATCH 07/20] Added simple tests for multi language --- languages/multi-language/pom.xml | 15 +++- .../jplag/multilang/MultiLanguageOptions.java | 10 ++- .../java/de/java/multilang/MultilangTest.java | 79 +++++++++++++++++++ .../jplag/multilang/testDataSet/CppCode.cpp | 3 + .../jplag/multilang/testDataSet/JavaCode.java | 3 + 5 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java create mode 100644 languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/CppCode.cpp create mode 100644 languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/JavaCode.java diff --git a/languages/multi-language/pom.xml b/languages/multi-language/pom.xml index ba0908c50..ca87dfa7e 100644 --- a/languages/multi-language/pom.xml +++ b/languages/multi-language/pom.xml @@ -8,6 +8,19 @@ multi-language - + + + de.jplag + java + ${revision} + test + + + de.jplag + cpp + ${revision} + test + + diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java index 0f3f4f645..c94bf0406 100644 --- a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java @@ -11,20 +11,24 @@ public class MultiLanguageOptions extends LanguageOptions { private static final String ERROR_LANGUAGE_NOT_FOUND = "The selected language %s could not be found"; - private static final String ERROR_NOT_ENOUGH_LANGUAGES = "To use multi language specify at least 2 languages"; + private static final String ERROR_NOT_ENOUGH_LANGUAGES = "To use multi language specify at least 1 language"; - public LanguageOption languageNames = createOption(OptionType.string(), "langs", + public LanguageOption languageNames = createOption(OptionType.string(), "languages", "The languages that should be used. This is a ',' separated list"); private List languages = null; public List getLanguages() { if (this.languages == null) { + if (languageNames.getValue() == null) { + throw new IllegalArgumentException(ERROR_NOT_ENOUGH_LANGUAGES); + } + List languages = Arrays.stream(languageNames.getValue().split(",")) .map(name -> LanguageLoader.getLanguage(name) .orElseThrow(() -> new IllegalArgumentException(String.format(ERROR_LANGUAGE_NOT_FOUND, name)))) .filter(language -> !language.getClass().equals(MultiLanguage.class)).toList(); - if (languages.size() <= 1) { + if (languages.isEmpty()) { throw new IllegalArgumentException(ERROR_NOT_ENOUGH_LANGUAGES); } diff --git a/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java new file mode 100644 index 000000000..670b98dc8 --- /dev/null +++ b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java @@ -0,0 +1,79 @@ +package de.java.multilang; + +import static de.jplag.SharedTokenType.FILE_END; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import de.jplag.ParsingException; +import de.jplag.Token; +import de.jplag.TokenType; +import de.jplag.cpp.CPPTokenType; +import de.jplag.java.JavaTokenType; +import de.jplag.multilang.MultiLanguage; +import de.jplag.multilang.MultiLanguageOptions; + +public class MultilangTest { + private static File testDataDirectory; + private static File javaCode; + private static File cppCode; + + private static List expectedTokens = List.of(CPPTokenType.FUNCTION_BEGIN, CPPTokenType.RETURN, CPPTokenType.FUNCTION_END, FILE_END, + JavaTokenType.J_CLASS_BEGIN, JavaTokenType.J_CLASS_END, FILE_END); + + @BeforeAll + static void setUp() throws IOException { + testDataDirectory = Files.createTempDirectory("multiLanguageTestData").toFile(); + cppCode = new File(testDataDirectory, "CppCode.cpp"); + javaCode = new File(testDataDirectory, "JavaCode.java"); + + MultilangTest.class.getResourceAsStream("/de/jplag/multilang/testDataSet/CppCode.cpp").transferTo(new FileOutputStream(cppCode)); + MultilangTest.class.getResourceAsStream("/de/jplag/multilang/testDataSet/JavaCode.java").transferTo(new FileOutputStream(javaCode)); + } + + @Test + void testMultiLanguageParsing() throws ParsingException { + MultiLanguage languageModule = new MultiLanguage(); + ((MultiLanguageOptions) languageModule.getOptions()).languageNames.setValue("java,cpp"); + + Set sources = new TreeSet<>(List.of(javaCode, cppCode)); // Using TreeSet to ensure order of entries + List tokens = languageModule.parse(sources, false); + + Assertions.assertEquals(expectedTokens, tokens.stream().map(Token::getType).toList()); + } + + @Test + void testNoLanguagesConfigured() { + MultiLanguage languageModule = new MultiLanguage(); + Assertions.assertThrowsExactly(IllegalArgumentException.class, () -> { + languageModule.parse(Set.of(javaCode, cppCode), false); + }); + } + + @Test + void testInvalidLanguage() { + MultiLanguage languageModule = new MultiLanguage(); + ((MultiLanguageOptions) languageModule.getOptions()).languageNames.setValue("thisIsNotALanguage"); + + Assertions.assertThrowsExactly(IllegalArgumentException.class, () -> { + languageModule.parse(Set.of(javaCode, cppCode), false); + }); + } + + @AfterAll + static void cleanUp() { + javaCode.delete(); + cppCode.delete(); + testDataDirectory.delete(); + } +} diff --git a/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/CppCode.cpp b/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/CppCode.cpp new file mode 100644 index 000000000..e9cdae165 --- /dev/null +++ b/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/CppCode.cpp @@ -0,0 +1,3 @@ +int main() { + return 0; +} \ No newline at end of file diff --git a/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/JavaCode.java b/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/JavaCode.java new file mode 100644 index 000000000..32aacd210 --- /dev/null +++ b/languages/multi-language/src/test/resources/de/jplag/multilang/testDataSet/JavaCode.java @@ -0,0 +1,3 @@ +public class JavaCode { + +} \ No newline at end of file From f9dfa80565f6b2da918fdf489c6b82714299dab5 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Mon, 2 Dec 2024 11:17:48 +0100 Subject: [PATCH 08/20] Fixed build errors and code style --- cli/src/test/java/de/jplag/cli/LanguageTest.java | 5 ++++- .../main/java/de/jplag/options/DefaultLanguageOption.java | 2 +- .../src/main/java/de/jplag/options/LanguageOptions.java | 2 +- .../main/java/de/jplag/multilang/MultiLanguageOptions.java | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cli/src/test/java/de/jplag/cli/LanguageTest.java b/cli/src/test/java/de/jplag/cli/LanguageTest.java index e2e860c4f..055c486af 100644 --- a/cli/src/test/java/de/jplag/cli/LanguageTest.java +++ b/cli/src/test/java/de/jplag/cli/LanguageTest.java @@ -18,9 +18,11 @@ import de.jplag.cli.test.CliArgument; import de.jplag.cli.test.CliTest; import de.jplag.exceptions.ExitException; +import de.jplag.multilang.MultiLanguage; import de.jplag.options.JPlagOptions; class LanguageTest extends CliTest { + private static final List> ignoredLanguages = List.of(MultiLanguage.class); @Test void testDefaultLanguage() throws ExitException, IOException { @@ -58,6 +60,7 @@ void testCustomSuffixes() throws ExitException, IOException { } public static Collection getAllLanguages() { - return LanguageLoader.getAllAvailableLanguages().values(); + return LanguageLoader.getAllAvailableLanguages().values().stream().filter(language -> !ignoredLanguages.contains(language.getClass())) + .toList(); } } diff --git a/language-api/src/main/java/de/jplag/options/DefaultLanguageOption.java b/language-api/src/main/java/de/jplag/options/DefaultLanguageOption.java index 3be2a255d..892628cba 100644 --- a/language-api/src/main/java/de/jplag/options/DefaultLanguageOption.java +++ b/language-api/src/main/java/de/jplag/options/DefaultLanguageOption.java @@ -20,7 +20,7 @@ public class DefaultLanguageOption implements LanguageOption { this.hasValue = true; } - DefaultLanguageOption(OptionType type, String description, String name) { + DefaultLanguageOption(OptionType type, String name, String description) { this(type, name, description, null); this.hasValue = false; } diff --git a/language-api/src/main/java/de/jplag/options/LanguageOptions.java b/language-api/src/main/java/de/jplag/options/LanguageOptions.java index b8167bd26..8f0bf2a7e 100644 --- a/language-api/src/main/java/de/jplag/options/LanguageOptions.java +++ b/language-api/src/main/java/de/jplag/options/LanguageOptions.java @@ -56,7 +56,7 @@ protected LanguageOption createDefaultOption(OptionType type, String n * @return The new option */ protected LanguageOption createOption(OptionType type, String name, String description) { - LanguageOption option = new DefaultLanguageOption<>(type, description, name); + LanguageOption option = new DefaultLanguageOption<>(type, name, description); this.options.add(option); return option; } diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java index c94bf0406..9d4c0a230 100644 --- a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java @@ -12,9 +12,9 @@ public class MultiLanguageOptions extends LanguageOptions { private static final String ERROR_LANGUAGE_NOT_FOUND = "The selected language %s could not be found"; private static final String ERROR_NOT_ENOUGH_LANGUAGES = "To use multi language specify at least 1 language"; + private static final String OPTION_DESCRIPTION_LANGUAGES = "The languages that should be used. This is a ',' separated list"; - public LanguageOption languageNames = createOption(OptionType.string(), "languages", - "The languages that should be used. This is a ',' separated list"); + public LanguageOption languageNames = createOption(OptionType.string(), "languages", OPTION_DESCRIPTION_LANGUAGES); private List languages = null; public List getLanguages() { From 15960348ece717ad82705f1b6280d9b0b947a6c6 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Mon, 2 Dec 2024 11:26:42 +0100 Subject: [PATCH 09/20] Fixed error caused by number of languages --- cli/src/test/java/de/jplag/cli/LanguageTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/test/java/de/jplag/cli/LanguageTest.java b/cli/src/test/java/de/jplag/cli/LanguageTest.java index 055c486af..5de06f751 100644 --- a/cli/src/test/java/de/jplag/cli/LanguageTest.java +++ b/cli/src/test/java/de/jplag/cli/LanguageTest.java @@ -40,7 +40,7 @@ void testInvalidLanguage() { @Test void testLoading() { var languages = LanguageLoader.getAllAvailableLanguages(); - assertEquals(19, languages.size(), "Loaded Languages: " + languages.keySet()); + assertEquals(20, languages.size(), "Loaded Languages: " + languages.keySet()); } @ParameterizedTest From 2caf36fb487a7b6538a9c01ad22a5081037dd3ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:47:28 +0000 Subject: [PATCH 10/20] Dependency(deps): Bump com.fasterxml.jackson.core:jackson-databind Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.18.1 to 2.18.2. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ebcb7c713..2de6d2410 100644 --- a/pom.xml +++ b/pom.xml @@ -141,7 +141,7 @@ com.fasterxml.jackson.core jackson-databind - 2.18.1 + 2.18.2 From d820beed666142e1149dafca36784a92a69794d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:47:21 +0000 Subject: [PATCH 11/20] Dependency(deps): Bump org.eclipse.platform:org.eclipse.core.resources Bumps [org.eclipse.platform:org.eclipse.core.resources](https://github.com/eclipse-platform/eclipse.platform) from 3.21.0 to 3.22.0. - [Commits](https://github.com/eclipse-platform/eclipse.platform/commits) --- updated-dependencies: - dependency-name: org.eclipse.platform:org.eclipse.core.resources dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2de6d2410..591e7bb1f 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ 2.38.0 2.40.0 2.38.0 - 3.21.0 + 3.22.0 1.1.0 From 918d9cfe416dce835b2e2bc6798cddf55555714f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:13:00 +0000 Subject: [PATCH 12/20] Dependency(deps): Bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/report-viewer-demo.yml | 2 +- .github/workflows/report-viewer-dev.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/report-viewer-demo.yml b/.github/workflows/report-viewer-demo.yml index da6817c10..e7b97498b 100644 --- a/.github/workflows/report-viewer-demo.yml +++ b/.github/workflows/report-viewer-demo.yml @@ -102,7 +102,7 @@ jobs: npm run build-demo - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4.6.9 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: branch: gh-pages folder: report-viewer/dist diff --git a/.github/workflows/report-viewer-dev.yml b/.github/workflows/report-viewer-dev.yml index 874ae38df..00278337a 100644 --- a/.github/workflows/report-viewer-dev.yml +++ b/.github/workflows/report-viewer-dev.yml @@ -27,7 +27,7 @@ jobs: npm run build-dev - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4.6.9 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: branch: gh-pages folder: report-viewer/dist From 31c2c2db2598c7aee2febfc98b0c917ba7e3f376 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Wed, 4 Dec 2024 13:45:35 +0100 Subject: [PATCH 13/20] Fixed sonarcloud issues --- .../main/java/de/jplag/multilang/MultiLanguage.java | 2 +- .../de/jplag/multilang/MultiLanguageOptions.java | 12 +++++++----- .../test/java/de/java/multilang/MultilangTest.java | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java index 00779f778..827910a74 100644 --- a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguage.java @@ -23,7 +23,7 @@ public MultiLanguage() { @Override public String[] suffixes() { - return LanguageLoader.getAllAvailableLanguages().values().stream().filter(it -> !(it == this)).flatMap(it -> Arrays.stream(it.suffixes())) + return LanguageLoader.getAllAvailableLanguages().values().stream().filter(it -> it != this).flatMap(it -> Arrays.stream(it.suffixes())) .toArray(String[]::new); } diff --git a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java index 9d4c0a230..eb6a65fe0 100644 --- a/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java +++ b/languages/multi-language/src/main/java/de/jplag/multilang/MultiLanguageOptions.java @@ -14,7 +14,7 @@ public class MultiLanguageOptions extends LanguageOptions { private static final String ERROR_NOT_ENOUGH_LANGUAGES = "To use multi language specify at least 1 language"; private static final String OPTION_DESCRIPTION_LANGUAGES = "The languages that should be used. This is a ',' separated list"; - public LanguageOption languageNames = createOption(OptionType.string(), "languages", OPTION_DESCRIPTION_LANGUAGES); + private final LanguageOption languageNames = createOption(OptionType.string(), "languages", OPTION_DESCRIPTION_LANGUAGES); private List languages = null; public List getLanguages() { @@ -23,18 +23,20 @@ public List getLanguages() { throw new IllegalArgumentException(ERROR_NOT_ENOUGH_LANGUAGES); } - List languages = Arrays.stream(languageNames.getValue().split(",")) + this.languages = Arrays.stream(languageNames.getValue().split(",")) .map(name -> LanguageLoader.getLanguage(name) .orElseThrow(() -> new IllegalArgumentException(String.format(ERROR_LANGUAGE_NOT_FOUND, name)))) .filter(language -> !language.getClass().equals(MultiLanguage.class)).toList(); - if (languages.isEmpty()) { + if (this.languages.isEmpty()) { throw new IllegalArgumentException(ERROR_NOT_ENOUGH_LANGUAGES); } - - this.languages = languages; } return this.languages; } + + public LanguageOption getLanguageNames() { + return this.languageNames; + } } diff --git a/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java index 670b98dc8..a2bcd9cd4 100644 --- a/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java +++ b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java @@ -44,7 +44,7 @@ static void setUp() throws IOException { @Test void testMultiLanguageParsing() throws ParsingException { MultiLanguage languageModule = new MultiLanguage(); - ((MultiLanguageOptions) languageModule.getOptions()).languageNames.setValue("java,cpp"); + ((MultiLanguageOptions) languageModule.getOptions()).getLanguageNames().setValue("java,cpp"); Set sources = new TreeSet<>(List.of(javaCode, cppCode)); // Using TreeSet to ensure order of entries List tokens = languageModule.parse(sources, false); @@ -63,7 +63,7 @@ void testNoLanguagesConfigured() { @Test void testInvalidLanguage() { MultiLanguage languageModule = new MultiLanguage(); - ((MultiLanguageOptions) languageModule.getOptions()).languageNames.setValue("thisIsNotALanguage"); + ((MultiLanguageOptions) languageModule.getOptions()).getLanguageNames().setValue("thisIsNotALanguage"); Assertions.assertThrowsExactly(IllegalArgumentException.class, () -> { languageModule.parse(Set.of(javaCode, cppCode), false); From f660c08e216420bd290482f6acccc44d00f9ed58 Mon Sep 17 00:00:00 2001 From: Alexander Milster Date: Wed, 4 Dec 2024 14:32:14 +0100 Subject: [PATCH 14/20] Fixed sonarcloud issues --- .../src/test/java/de/java/multilang/MultilangTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java index a2bcd9cd4..8293a29c1 100644 --- a/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java +++ b/languages/multi-language/src/test/java/de/java/multilang/MultilangTest.java @@ -23,7 +23,7 @@ import de.jplag.multilang.MultiLanguage; import de.jplag.multilang.MultiLanguageOptions; -public class MultilangTest { +class MultilangTest { private static File testDataDirectory; private static File javaCode; private static File cppCode; From 1fde10e3230272855a00912c1c7a9429da52bec5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 19:10:37 +0100 Subject: [PATCH 15/20] Dependency(deps): Bump vue from 3.5.12 to 3.5.13 in /report-viewer (#2094) Bumps [vue](https://github.com/vuejs/core) from 3.5.12 to 3.5.13. - [Release notes](https://github.com/vuejs/core/releases) - [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md) - [Commits](https://github.com/vuejs/core/compare/v3.5.12...v3.5.13) --- updated-dependencies: - dependency-name: vue 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> --- report-viewer/package-lock.json | 190 +++++++++++++++++--------------- report-viewer/package.json | 2 +- 2 files changed, 101 insertions(+), 91 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index eb75992a9..8b8ba6194 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -19,7 +19,7 @@ "jszip": "^3.10.0", "pinia": "^2.2.6", "slash": "^5.1.0", - "vue": "^3.5.12", + "vue": "^3.5.13", "vue-chartjs": "^5.3.2", "vue-draggable-next": "^2.2.1", "vue-router": "^4.4.5", @@ -74,27 +74,30 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.8" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -104,13 +107,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1495,12 +1498,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", - "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.12", + "@vue/shared": "3.5.13", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" @@ -1509,45 +1513,50 @@ "node_modules/@vue/compiler-core/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" }, "node_modules/@vue/compiler-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", - "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", - "postcss": "^8.4.47", + "postcss": "^8.4.48", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/compiler-vue2": { @@ -1628,49 +1637,54 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.12.tgz", - "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "license": "MIT", "dependencies": { - "@vue/shared": "3.5.12" + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.12.tgz", - "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", - "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/runtime-core": "3.5.12", - "@vue/shared": "3.5.12", + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.12.tgz", - "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { - "vue": "3.5.12" + "vue": "3.5.13" } }, "node_modules/@vue/shared": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==" + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" }, "node_modules/@vue/test-utils": { "version": "2.4.6", @@ -2380,7 +2394,8 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/d3-dispatch": { "version": "3.0.1", @@ -5237,9 +5252,10 @@ } }, "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==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5366,9 +5382,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.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -5383,9 +5399,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -6625,14 +6642,6 @@ "integrity": "sha512-j4OxQI5rc1Ve/4m/9o2WhWSC4jGc4uVbCINdOEJRAraCi0YqTqgMcxUx7DbmuP0G3PCixoof/RZB0Q5Kh9tagw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7037,15 +7046,16 @@ "dev": true }, "node_modules/vue": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", - "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", - "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-sfc": "3.5.12", - "@vue/runtime-dom": "3.5.12", - "@vue/server-renderer": "3.5.12", - "@vue/shared": "3.5.12" + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" }, "peerDependencies": { "typescript": "*" diff --git a/report-viewer/package.json b/report-viewer/package.json index 8cb14ec6b..d388efc5d 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -30,7 +30,7 @@ "jszip": "^3.10.0", "pinia": "^2.2.6", "slash": "^5.1.0", - "vue": "^3.5.12", + "vue": "^3.5.13", "vue-chartjs": "^5.3.2", "vue-draggable-next": "^2.2.1", "vue-router": "^4.4.5", From 82e5d45c2227c720646c03d8211325b1503de026 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 05:54:57 +0100 Subject: [PATCH 16/20] Dependency(deps): Bump pinia from 2.2.6 to 2.3.0 in /report-viewer (#2098) Bumps [pinia](https://github.com/vuejs/pinia) from 2.2.6 to 2.3.0. - [Release notes](https://github.com/vuejs/pinia/releases) - [Commits](https://github.com/vuejs/pinia/compare/pinia@2.2.6...v2.3.0) --- updated-dependencies: - dependency-name: pinia 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> --- report-viewer/package-lock.json | 15 ++++++--------- report-viewer/package.json | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index 8b8ba6194..2d8ca461f 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -17,7 +17,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "highlight.js": "^11.10.0", "jszip": "^3.10.0", - "pinia": "^2.2.6", + "pinia": "^2.3.0", "slash": "^5.1.0", "vue": "^3.5.13", "vue-chartjs": "^5.3.2", @@ -5291,9 +5291,10 @@ } }, "node_modules/pinia": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.6.tgz", - "integrity": "sha512-vIsR8JkDN5Ga2vAxqOE2cJj4VtsHnzpR1Fz30kClxlh0yCHfec6uoMeM3e/ddqmwFUejK3NlrcQa/shnpyT4hA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.0.tgz", + "integrity": "sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==", + "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", "vue-demi": "^0.14.10" @@ -5302,14 +5303,10 @@ "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "@vue/composition-api": "^1.4.0", "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.5.11" + "vue": "^2.7.0 || ^3.5.11" }, "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, "typescript": { "optional": true } diff --git a/report-viewer/package.json b/report-viewer/package.json index d388efc5d..f2a6876d5 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -28,7 +28,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "highlight.js": "^11.10.0", "jszip": "^3.10.0", - "pinia": "^2.2.6", + "pinia": "^2.3.0", "slash": "^5.1.0", "vue": "^3.5.13", "vue-chartjs": "^5.3.2", From 7d58ca99567ef9673422ccbb08974f2df09deb76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 06:46:49 +0100 Subject: [PATCH 17/20] Dependency(deps): Bump vue-router from 4.4.5 to 4.5.0 in /report-viewer (#2096) Bumps [vue-router](https://github.com/vuejs/router) from 4.4.5 to 4.5.0. - [Release notes](https://github.com/vuejs/router/releases) - [Commits](https://github.com/vuejs/router/compare/v4.4.5...v4.5.0) --- updated-dependencies: - dependency-name: vue-router 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> --- report-viewer/package-lock.json | 9 +++++---- report-viewer/package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index 2d8ca461f..accaa028e 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -22,7 +22,7 @@ "vue": "^3.5.13", "vue-chartjs": "^5.3.2", "vue-draggable-next": "^2.2.1", - "vue-router": "^4.4.5", + "vue-router": "^4.5.0", "vue-virtual-scroller": "^2.0.0-beta.8" }, "devDependencies": { @@ -7128,9 +7128,10 @@ } }, "node_modules/vue-router": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz", - "integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", + "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" }, diff --git a/report-viewer/package.json b/report-viewer/package.json index f2a6876d5..39f3d9327 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -33,7 +33,7 @@ "vue": "^3.5.13", "vue-chartjs": "^5.3.2", "vue-draggable-next": "^2.2.1", - "vue-router": "^4.4.5", + "vue-router": "^4.5.0", "vue-virtual-scroller": "^2.0.0-beta.8" }, "devDependencies": { From b9feda287f8b0a407f7b0271972ea8dc9e116998 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 12:42:47 +0100 Subject: [PATCH 18/20] Dependency(deps-dev): Bump @vue/tsconfig from 0.6.0 to 0.7.0 in /report-viewer (#2106) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- report-viewer/package-lock.json | 11 ++++++----- report-viewer/package.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index accaa028e..e276143b4 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -35,7 +35,7 @@ "@vue/eslint-config-prettier": "^10.1.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", - "@vue/tsconfig": "^0.6.0", + "@vue/tsconfig": "^0.7.0", "autoprefixer": "^10.4.20", "eslint": "^8.57.1", "eslint-plugin-vue": "^9.30.0", @@ -1697,13 +1697,14 @@ } }, "node_modules/@vue/tsconfig": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.6.0.tgz", - "integrity": "sha512-MHXNd6lzugsEHvuA6l1GqrF5jROqUon8sP/HInLPnthJiYvB0VvpHMywg7em1dBZfFZNBSkR68qH37zOdRHmCw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", "dev": true, + "license": "MIT", "peerDependencies": { "typescript": "5.x", - "vue": "^3.3.0" + "vue": "^3.4.0" }, "peerDependenciesMeta": { "typescript": { diff --git a/report-viewer/package.json b/report-viewer/package.json index 39f3d9327..2c07196af 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -46,7 +46,7 @@ "@vue/eslint-config-prettier": "^10.1.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", - "@vue/tsconfig": "^0.6.0", + "@vue/tsconfig": "^0.7.0", "autoprefixer": "^10.4.20", "eslint": "^8.57.1", "eslint-plugin-vue": "^9.30.0", From cf2e0f9fe6e36f9a2c70fce2b29cd38278715cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:58:29 +0100 Subject: [PATCH 19/20] Dependency(deps-dev): Bump tailwindcss from 3.4.14 to 3.4.16 in /report-viewer (#2104) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.14 to 3.4.16. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.16/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.14...v3.4.16) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- report-viewer/package-lock.json | 117 +++++++++++++++++--------------- report-viewer/package.json | 2 +- 2 files changed, 64 insertions(+), 55 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index e276143b4..024ec1f39 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -45,7 +45,7 @@ "postcss": "^8.4.45", "prettier": "^3.4.1", "prettier-plugin-tailwindcss": "^0.6.9", - "tailwindcss": "^3.4.14", + "tailwindcss": "^3.4.16", "typescript": "^5.6.3", "vite": "^5.4.11", "vitest": "^2.1.5", @@ -1829,6 +1829,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1963,12 +1964,16 @@ "dev": true }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/boolbase": { @@ -2169,16 +2174,11 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2191,6 +2191,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2200,6 +2203,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -3758,6 +3762,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -4031,10 +4036,11 @@ } }, "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==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -4186,10 +4192,11 @@ } }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -4751,6 +4758,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5479,29 +5487,37 @@ } }, "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==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "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.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "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==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -5734,6 +5750,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -6511,33 +6528,34 @@ } }, "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.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.16.tgz", + "integrity": "sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==", "dev": true, + "license": "MIT", "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", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "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", @@ -6547,15 +6565,6 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/report-viewer/package.json b/report-viewer/package.json index 2c07196af..c67a94636 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -56,7 +56,7 @@ "postcss": "^8.4.45", "prettier": "^3.4.1", "prettier-plugin-tailwindcss": "^0.6.9", - "tailwindcss": "^3.4.14", + "tailwindcss": "^3.4.16", "typescript": "^5.6.3", "vite": "^5.4.11", "vitest": "^2.1.5", From 697c5d342889cfca11182991e9a11303279c1bed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 18:19:46 +0100 Subject: [PATCH 20/20] Dependency(deps-dev): Bump vitest from 2.1.5 to 2.1.8 in /report-viewer (#2107) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- report-viewer/package-lock.json | 92 ++++++++++++++++----------------- report-viewer/package.json | 2 +- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/report-viewer/package-lock.json b/report-viewer/package-lock.json index 024ec1f39..35bd1b433 100644 --- a/report-viewer/package-lock.json +++ b/report-viewer/package-lock.json @@ -48,7 +48,7 @@ "tailwindcss": "^3.4.16", "typescript": "^5.6.3", "vite": "^5.4.11", - "vitest": "^2.1.5", + "vitest": "^2.1.8", "vue-tsc": "^2.1.10" } }, @@ -1366,13 +1366,13 @@ } }, "node_modules/@vitest/expect": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.5.tgz", - "integrity": "sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", + "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, "dependencies": { - "@vitest/spy": "2.1.5", - "@vitest/utils": "2.1.5", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", "chai": "^5.1.2", "tinyrainbow": "^1.2.0" }, @@ -1381,12 +1381,12 @@ } }, "node_modules/@vitest/mocker": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.5.tgz", - "integrity": "sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", + "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, "dependencies": { - "@vitest/spy": "2.1.5", + "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", "magic-string": "^0.30.12" }, @@ -1407,9 +1407,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.5.tgz", - "integrity": "sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, "dependencies": { "tinyrainbow": "^1.2.0" @@ -1419,12 +1419,12 @@ } }, "node_modules/@vitest/runner": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.5.tgz", - "integrity": "sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", + "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, "dependencies": { - "@vitest/utils": "2.1.5", + "@vitest/utils": "2.1.8", "pathe": "^1.1.2" }, "funding": { @@ -1432,12 +1432,12 @@ } }, "node_modules/@vitest/snapshot": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.5.tgz", - "integrity": "sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", + "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, "dependencies": { - "@vitest/pretty-format": "2.1.5", + "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", "pathe": "^1.1.2" }, @@ -1446,9 +1446,9 @@ } }, "node_modules/@vitest/spy": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.5.tgz", - "integrity": "sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", + "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, "dependencies": { "tinyspy": "^3.0.2" @@ -1458,12 +1458,12 @@ } }, "node_modules/@vitest/utils": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.5.tgz", - "integrity": "sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", + "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, "dependencies": { - "@vitest/pretty-format": "2.1.5", + "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" }, @@ -6946,9 +6946,9 @@ } }, "node_modules/vite-node": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.5.tgz", - "integrity": "sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", + "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -6982,18 +6982,18 @@ } }, "node_modules/vitest": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.5.tgz", - "integrity": "sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==", - "dev": true, - "dependencies": { - "@vitest/expect": "2.1.5", - "@vitest/mocker": "2.1.5", - "@vitest/pretty-format": "^2.1.5", - "@vitest/runner": "2.1.5", - "@vitest/snapshot": "2.1.5", - "@vitest/spy": "2.1.5", - "@vitest/utils": "2.1.5", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", + "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", + "dev": true, + "dependencies": { + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", "chai": "^5.1.2", "debug": "^4.3.7", "expect-type": "^1.1.0", @@ -7005,7 +7005,7 @@ "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.1.5", + "vite-node": "2.1.8", "why-is-node-running": "^2.3.0" }, "bin": { @@ -7020,8 +7020,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.5", - "@vitest/ui": "2.1.5", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", "happy-dom": "*", "jsdom": "*" }, diff --git a/report-viewer/package.json b/report-viewer/package.json index c67a94636..894421854 100644 --- a/report-viewer/package.json +++ b/report-viewer/package.json @@ -59,7 +59,7 @@ "tailwindcss": "^3.4.16", "typescript": "^5.6.3", "vite": "^5.4.11", - "vitest": "^2.1.5", + "vitest": "^2.1.8", "vue-tsc": "^2.1.10" } }