diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index e0268a61af0b..3bd728e9632b 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -73,7 +73,7 @@ jobs: wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} - name: Upload Release Asset id: upload-war - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -108,7 +108,7 @@ jobs: - name: Upload Release Asset id: upload-deb if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -144,7 +144,7 @@ jobs: - name: Upload Release Asset id: upload-rpm if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -180,7 +180,7 @@ jobs: - name: Upload Release Asset id: upload-msi if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -216,7 +216,7 @@ jobs: - name: Upload Release Asset id: upload-suse-rpm if: always() - uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 + uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/ath.sh b/ath.sh index 642d6f3a6c71..e25bf4b945e8 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6072.vc7e4e6a_970b_c +export ATH_VERSION=6081.v29b_ce3c2771c if [[ $# -eq 0 ]]; then export JDK=17 diff --git a/bom/pom.xml b/bom/pom.xml index 0109f3c90aa2..61de025b3e9b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -39,7 +39,7 @@ THE SOFTWARE. 2.0.0-M2 - 1922.v3f3302a_7f16f + 1928.v9115fe47607f 2.4.21 @@ -62,7 +62,7 @@ THE SOFTWARE. org.springframework spring-framework-bom - 6.1.14 + 6.2.0 pom import @@ -70,7 +70,7 @@ THE SOFTWARE. org.springframework.security spring-security-bom - 6.3.4 + 6.4.1 pom import @@ -109,7 +109,7 @@ THE SOFTWARE. com.thoughtworks.xstream xstream - 1.4.20 + 1.4.21 commons-beanutils @@ -129,7 +129,7 @@ THE SOFTWARE. commons-io commons-io - 2.17.0 + 2.18.0 commons-jelly @@ -295,7 +295,7 @@ THE SOFTWARE. org.jvnet.hudson commons-jelly-tags-define - 1.1-jenkins-20240903 + 1.1-jenkins-20241115 org.jvnet.localizer @@ -335,7 +335,7 @@ THE SOFTWARE. org.kohsuke.stapler json-lib - 2.4-jenkins-7 + 2.4-jenkins-8 org.kohsuke.stapler diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index f5288b26d9d1..e48d7b45108f 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -124,7 +124,7 @@ import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import jenkins.MasterToSlaveFileCallable; -import jenkins.SlaveToMasterFileCallable; +import jenkins.agents.ControllerToAgentFileCallable; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.util.ContextResettingExecutorService; @@ -520,21 +520,7 @@ public int archive(final ArchiverFactory factory, OutputStream os, final DirScan return act(new Archive(factory, out, scanner, verificationRoot, openOptions)); } - private static class Archive extends MasterToSlaveFileCallable { - private final ArchiverFactory factory; - private final OutputStream out; - private final DirScanner scanner; - private final String verificationRoot; - private OpenOption[] openOptions; - - Archive(ArchiverFactory factory, OutputStream out, DirScanner scanner, String verificationRoot, OpenOption... openOptions) { - this.factory = factory; - this.out = out; - this.scanner = scanner; - this.verificationRoot = verificationRoot; - this.openOptions = openOptions; - } - + private record Archive(ArchiverFactory factory, OutputStream out, DirScanner scanner, String verificationRoot, OpenOption... openOptions) implements ControllerToAgentFileCallable { @Override public Integer invoke(File f, VirtualChannel channel) throws IOException { try (Archiver a = factory.create(out)) { @@ -542,8 +528,6 @@ public Integer invoke(File f, VirtualChannel channel) throws IOException { return a.countEntries(); } } - - private static final long serialVersionUID = 1L; } public int archive(final ArchiverFactory factory, OutputStream os, final FileFilter filter) throws IOException, InterruptedException { @@ -1185,12 +1169,7 @@ public void copyFrom(org.apache.commons.fileupload.FileItem file) throws IOExcep /** * Code that gets executed on the machine where the {@link FilePath} is local. * Used to act on {@link FilePath}. - * Warning: implementations must be serializable, so prefer a static nested class to an inner class. - * - *

- * Subtypes would likely want to extend from either {@link MasterToSlaveCallable} - * or {@link SlaveToMasterFileCallable}. - * + * A typical implementation would be a {@code record} implementing {@link ControllerToAgentFileCallable}. * @see FilePath#act(FileCallable) */ public interface FileCallable extends Serializable, RoleSensitive { diff --git a/core/src/main/java/hudson/Launcher.java b/core/src/main/java/hudson/Launcher.java index e6ba431691fb..195671b1b42e 100644 --- a/core/src/main/java/hudson/Launcher.java +++ b/core/src/main/java/hudson/Launcher.java @@ -55,6 +55,7 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.agents.ControllerToAgentCallable; import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.tasks.filters.EnvVarsFilterLocalRule; @@ -1114,8 +1115,7 @@ public Proc launch(ProcStarter ps) throws IOException { final String workDir = psPwd == null ? null : psPwd.getRemote(); try { - RemoteLaunchCallable remote = new RemoteLaunchCallable(ps.commands, ps.masks, ps.envs, in, ps.reverseStdin, out, ps.reverseStdout, err, ps.reverseStderr, ps.quiet, workDir, listener, ps.stdoutListener); - remote.setEnvVarsFilterRuleWrapper(envVarsFilterRuleWrapper); + RemoteLaunchCallable remote = new RemoteLaunchCallable(ps.commands, ps.masks, ps.envs, in, ps.reverseStdin, out, ps.reverseStdout, err, ps.reverseStderr, ps.quiet, workDir, listener, ps.stdoutListener, envVarsFilterRuleWrapper); // reset the rules to prevent build step without rules configuration to re-use those envVarsFilterRuleWrapper = null; return new ProcImpl(getChannel().call(remote)); @@ -1334,46 +1334,13 @@ public interface RemoteProcess { IOTriplet getIOtriplet(); } - private static class RemoteLaunchCallable extends MasterToSlaveCallable { - private final @NonNull List cmd; - private final @CheckForNull boolean[] masks; - private final @CheckForNull String[] env; - private final @CheckForNull InputStream in; - private final @CheckForNull OutputStream out; - private final @CheckForNull OutputStream err; - private final @CheckForNull String workDir; - private final @NonNull TaskListener listener; - private final @CheckForNull TaskListener stdoutListener; - private final boolean reverseStdin, reverseStdout, reverseStderr; - private final boolean quiet; - - private EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper; - - RemoteLaunchCallable(@NonNull List cmd, @CheckForNull boolean[] masks, @CheckForNull String[] env, + private record RemoteLaunchCallable(@NonNull List cmd, @CheckForNull boolean[] masks, @CheckForNull String[] env, @CheckForNull InputStream in, boolean reverseStdin, @CheckForNull OutputStream out, boolean reverseStdout, @CheckForNull OutputStream err, boolean reverseStderr, - boolean quiet, @CheckForNull String workDir, @NonNull TaskListener listener, @CheckForNull TaskListener stdoutListener) { - this.cmd = new ArrayList<>(cmd); - this.masks = masks; - this.env = env; - this.in = in; - this.out = out; - this.err = err; - this.workDir = workDir; - this.listener = listener; - this.stdoutListener = stdoutListener; - this.reverseStdin = reverseStdin; - this.reverseStdout = reverseStdout; - this.reverseStderr = reverseStderr; - this.quiet = quiet; - } - - @Restricted(NoExternalUse.class) - public void setEnvVarsFilterRuleWrapper(EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper) { - this.envVarsFilterRuleWrapper = envVarsFilterRuleWrapper; - } - + boolean quiet, @CheckForNull String workDir, + @NonNull TaskListener listener, @CheckForNull TaskListener stdoutListener, + @CheckForNull EnvVarsFilterRuleWrapper envVarsFilterRuleWrapper) implements ControllerToAgentCallable { @Override public RemoteProcess call() throws IOException { final Channel channel = getOpenChannelOrFail(); @@ -1433,8 +1400,6 @@ public IOTriplet getIOtriplet() { } }); } - - private static final long serialVersionUID = 1L; } private static class RemoteChannelLaunchCallable extends MasterToSlaveCallable { diff --git a/core/src/main/java/hudson/cli/CLIAction.java b/core/src/main/java/hudson/cli/CLIAction.java index a2fc5f590197..a2e756267178 100644 --- a/core/src/main/java/hudson/cli/CLIAction.java +++ b/core/src/main/java/hudson/cli/CLIAction.java @@ -118,12 +118,26 @@ public boolean isWebSocketSupported() { return WebSockets.isSupported(); } + /** + * Unlike {@link HttpResponses#errorWithoutStack} this sends the message in a header rather than the body. + * (Currently the WebSocket CLI is unable to process the body in an error message.) + */ + private static HttpResponse statusWithExplanation(int code, String errorMessage) { + return new HttpResponse() { + @Override + public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object node) { + rsp.setStatus(code); + rsp.setHeader("X-CLI-Error", errorMessage); + } + }; + } + /** * WebSocket endpoint. */ public HttpResponse doWs(StaplerRequest2 req) { if (!WebSockets.isSupported()) { - return HttpResponses.notFound(); + return statusWithExplanation(HttpServletResponse.SC_NOT_FOUND, "WebSocket is not supported in this servlet container (try the built-in Jetty instead)"); } if (ALLOW_WEBSOCKET == null) { final String actualOrigin = req.getHeader("Origin"); @@ -141,10 +155,10 @@ public HttpResponse doWs(StaplerRequest2 req) { if (actualOrigin == null || !actualOrigin.equals(expectedOrigin)) { LOGGER.log(Level.FINE, () -> "Rejecting origin: " + actualOrigin + "; expected was from request: " + expectedOrigin); - return HttpResponses.forbidden(); + return statusWithExplanation(HttpServletResponse.SC_FORBIDDEN, "Unexpected request origin (check your reverse proxy settings)"); } } else if (!ALLOW_WEBSOCKET) { - return HttpResponses.forbidden(); + return statusWithExplanation(HttpServletResponse.SC_FORBIDDEN, "WebSocket support for CLI disabled for this controller"); } Authentication authentication = Jenkins.getAuthentication2(); return WebSockets.upgrade(new WebSocketSession() { diff --git a/core/src/main/java/hudson/model/ModifiableItemGroup.java b/core/src/main/java/hudson/model/ModifiableItemGroup.java index 35e41305afb5..d0bcda31187c 100644 --- a/core/src/main/java/hudson/model/ModifiableItemGroup.java +++ b/core/src/main/java/hudson/model/ModifiableItemGroup.java @@ -33,6 +33,7 @@ import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.StaplerResponse2; +import org.kohsuke.stapler.interceptor.RequirePOST; /** * {@link ItemGroup} that is a general purpose container, which allows users and the rest of the program @@ -50,7 +51,7 @@ public interface ModifiableItemGroup extends ItemGroup { * The request format follows that of {@code <n:form xmlns:n="/lib/form">}. * */ - @StaplerNotDispatchable + @RequirePOST default T doCreateItem(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException, ServletException { if (ReflectionUtils.isOverridden( ModifiableItemGroup.class, diff --git a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java index 34afd3c11ae5..6296c6d65b28 100644 --- a/core/src/main/java/jenkins/MasterToSlaveFileCallable.java +++ b/core/src/main/java/jenkins/MasterToSlaveFileCallable.java @@ -1,26 +1,16 @@ package jenkins; import hudson.FilePath.FileCallable; -import hudson.remoting.VirtualChannel; -import java.io.File; -import jenkins.security.Roles; -import jenkins.slaves.RemotingVersionInfo; -import org.jenkinsci.remoting.RoleChecker; +import jenkins.agents.ControllerToAgentFileCallable; /** - * {@link FileCallable}s that are meant to be only used on the master. - * - * Note that the logic within {@link #invoke(File, VirtualChannel)} should use API of a minimum supported Remoting version. - * See {@link RemotingVersionInfo#getMinimumSupportedVersion()}. - * + * {@link FileCallable}s that could run on an agent. + * For new code, implement {@link ControllerToAgentFileCallable} + * which has the advantage that it can be used on {@code record}s. * @since 1.587 / 1.580.1 - * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @param the return type */ -public abstract class MasterToSlaveFileCallable implements FileCallable { - @Override - public void checkRoles(RoleChecker checker) throws SecurityException { - checker.check(this, Roles.SLAVE); - } +public abstract class MasterToSlaveFileCallable implements ControllerToAgentFileCallable { private static final long serialVersionUID = 1L; } diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java new file mode 100644 index 000000000000..edf057656569 --- /dev/null +++ b/core/src/main/java/jenkins/agents/ControllerToAgentCallable.java @@ -0,0 +1,48 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.agents; + +import hudson.remoting.Callable; +import jenkins.security.Roles; +import jenkins.slaves.RemotingVersionInfo; +import org.jenkinsci.remoting.RoleChecker; + +/** + * {@link Callable} meant to be serialized then run on an agent. + * A typical implementation will be a {@link Record} + * since instance state merely transfers a set of parameters to an agent JVM. + *

Note that the logic within {@link #call} may not use Remoting APIs + * newer than {@link RemotingVersionInfo#getMinimumSupportedVersion}. + * (Core and plugin APIs will be identical to those run inside the controller.) + * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @since 2.485 + */ +public interface ControllerToAgentCallable extends Callable { + + @Override + default void checkRoles(RoleChecker checker) throws SecurityException { + checker.check(this, Roles.SLAVE); + } +} diff --git a/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java new file mode 100644 index 000000000000..bd7f7a86c36d --- /dev/null +++ b/core/src/main/java/jenkins/agents/ControllerToAgentFileCallable.java @@ -0,0 +1,43 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.agents; + +import hudson.FilePath; +import jenkins.security.Roles; +import org.jenkinsci.remoting.RoleChecker; + +/** + * {@link FilePath.FileCallable} meant to be serialized then run on an agent. + * Like {@link ControllerToAgentCallable} this will typically be a {@link Record}. + * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @since 2.485 + */ +public interface ControllerToAgentFileCallable extends FilePath.FileCallable { + + @Override + default void checkRoles(RoleChecker checker) throws SecurityException { + checker.check(this, Roles.SLAVE); + } +} diff --git a/core/src/main/java/jenkins/model/Nodes.java b/core/src/main/java/jenkins/model/Nodes.java index a01c3fc342b5..ae78028c2d2f 100644 --- a/core/src/main/java/jenkins/model/Nodes.java +++ b/core/src/main/java/jenkins/model/Nodes.java @@ -118,6 +118,8 @@ public void setNodes(final @NonNull Collection nodes) throws IOE toRemove.putAll(Nodes.this.nodes); for (var node : nodes) { final var name = node.getNodeName(); + Nodes.this.nodes.put(name, node); + node.onLoad(Nodes.this, name); var oldNode = toRemove.get(name); if (oldNode != null) { NodeListener.fireOnUpdated(oldNode, node); @@ -125,8 +127,6 @@ public void setNodes(final @NonNull Collection nodes) throws IOE } else { NodeListener.fireOnCreated(node); } - Nodes.this.nodes.put(name, node); - node.onLoad(Nodes.this, name); } Nodes.this.nodes.keySet().removeAll(toRemove.keySet()); jenkins.updateComputerList(); diff --git a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java index db0406bcf548..7d3830bb9562 100644 --- a/core/src/main/java/jenkins/security/MasterToSlaveCallable.java +++ b/core/src/main/java/jenkins/security/MasterToSlaveCallable.java @@ -1,25 +1,17 @@ package jenkins.security; import hudson.remoting.Callable; -import jenkins.slaves.RemotingVersionInfo; -import org.jenkinsci.remoting.RoleChecker; +import jenkins.agents.ControllerToAgentCallable; /** - * Convenient {@link Callable} meant to be run on agent. - * - * Note that the logic within {@link #call()} should use API of a minimum supported Remoting version. - * See {@link RemotingVersionInfo#getMinimumSupportedVersion()}. - * + * {@link Callable} meant to be run on agent. + * For new code, implement {@link ControllerToAgentCallable} + * which has the advantage that it can be used on {@code record}s. * @author Kohsuke Kawaguchi * @since 1.587 / 1.580.1 - * @param the return type; note that this must either be defined in your plugin or included in the stock JEP-200 whitelist + * @param the return type */ -public abstract class MasterToSlaveCallable implements Callable { +public abstract class MasterToSlaveCallable implements ControllerToAgentCallable { private static final long serialVersionUID = 1L; - - @Override - public void checkRoles(RoleChecker checker) throws SecurityException { - checker.check(this, Roles.SLAVE); - } } diff --git a/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java b/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java index fb17b7243c9f..d595a21d22df 100644 --- a/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java +++ b/core/src/main/java/jenkins/slaves/RemotingVersionInfo.java @@ -31,6 +31,7 @@ import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.agents.ControllerToAgentCallable; /** * Provides information about Remoting versions used within the core. @@ -100,7 +101,7 @@ public static VersionNumber getEmbeddedVersion() { /** * Gets Remoting version which is supported by the core. - * Jenkins core and plugins make invoke operations on agents (e.g. {@link jenkins.security.MasterToSlaveCallable}) + * Jenkins core and plugins make invoke operations on agents (e.g. {@link ControllerToAgentCallable}) * and use Remoting-internal API within them. * In such case this API should be present on the remote side. * This method defines a minimum expected version, so that all calls should use a compatible API. diff --git a/core/src/main/java/jenkins/util/SetContextClassLoader.java b/core/src/main/java/jenkins/util/SetContextClassLoader.java index c486fa4607e1..9e0a4c7dec30 100644 --- a/core/src/main/java/jenkins/util/SetContextClassLoader.java +++ b/core/src/main/java/jenkins/util/SetContextClassLoader.java @@ -62,7 +62,7 @@ public final class SetContextClassLoader implements AutoCloseable { * @since 2.362 */ public SetContextClassLoader() { - this(StackWalker.getInstance().getCallerClass()); + this(StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass()); } /** diff --git a/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly index f11ee8837cdd..efaa6159136e 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly @@ -53,11 +53,13 @@ THE SOFTWARE. ${%NewVersionAvailable(ucData.core.version,ucData.core.url,changelog_url)} - -

- - - + + +
+ + +
+
diff --git a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json index 7dfa00bc6772..4eb62c4b49d9 100644 --- a/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json +++ b/core/src/main/resources/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor/end-of-life-data.json @@ -83,6 +83,10 @@ "pattern": "Fedora.* 40.*", "endOfLife": "2025-05-13" }, + { + "pattern": "Fedora.* 41.*", + "endOfLife": "2025-11-19" + }, { "pattern": "Oracle Linux.* 7.*", "endOfLife": "2023-11-16" diff --git a/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.groovy b/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.groovy index 56cbb0bb4ddd..89b634002006 100644 --- a/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.groovy +++ b/core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.groovy @@ -42,7 +42,7 @@ def listWarnings(warnings, boolean core) { } } } - if (fixables == warnings.size) { + if (fixables == warnings.size()) { dd { if (fixables == 1) { raw(_(core ? "allFixable1Core" : "allFixable1", rootURL)) diff --git a/core/src/main/resources/lib/form/helpLink.jelly b/core/src/main/resources/lib/form/helpLink.jelly index e7f2aa213c54..a388baf05f87 100644 --- a/core/src/main/resources/lib/form/helpLink.jelly +++ b/core/src/main/resources/lib/form/helpLink.jelly @@ -55,7 +55,7 @@ THE SOFTWARE. - + ? diff --git a/core/src/main/resources/lib/layout/card.jelly b/core/src/main/resources/lib/layout/card.jelly index 2c6845738227..e17f559be414 100644 --- a/core/src/main/resources/lib/layout/card.jelly +++ b/core/src/main/resources/lib/layout/card.jelly @@ -43,7 +43,7 @@ THE SOFTWARE.
${attrs.title}
- + diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 01aeebc17802..52c9edf3a7f3 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -41,7 +41,7 @@ org.apache.maven.skins maven-fluido-skin - 2.0.0-M11 + 2.0.0 diff --git a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java index 84bc3790241a..38a4531613d6 100644 --- a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java +++ b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java @@ -122,36 +122,7 @@ private String docsUrl(String component) { } private static Stream testReadDocumentationUrls() { - return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux-8.7-Stone-Smilodon"), - Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux-9.3-Shamrock-Pampas-Cat"), - Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine-Linux-v3.14"), - Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine-Linux-v3.15"), - Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine-Linux-v3.16"), - Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine-Linux-v3.17"), - Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine-Linux-v3.18"), - Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine-Linux-v3.19"), - Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon-Linux-2"), - Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon-Linux-2023"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS-Linux-7-Core"), - Arguments.of("os-release-centos-8", "CentOS Linux.* 8.*", "CentOS-Linux-8"), - Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian-GNU-Linux-10-buster"), - Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian-GNU-Linux-11-bullseye"), - Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian-GNU-Linux-12-bookworm"), - Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora-Linux-36-Container-Image"), - Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora-Linux-37-Container-Image"), - Arguments.of("os-release-fedora-38", "Fedora.* 38.*", "Fedora-Linux-38-Container-Image"), - Arguments.of("os-release-fedora-39", "Fedora.* 39.*", "Fedora-Linux-39-Container-Image"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle-Linux-Server-7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle-Linux-Server-8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red-Hat-Enterprise-Linux-Server-7.9-Maipo"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red-Hat-Enterprise-Linux-8.8-Ootpa"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky-Linux-8.7-Green-Obsidian"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific-Linux-7.9-Nitrogen"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu-18.04.6-LTS"), - Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu-20.04.6-LTS"), - Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu-22.04.3-LTS") - ); + return getArguments(true); } @ParameterizedTest @@ -182,33 +153,7 @@ public void testReadOperatingSystemListNoPattern() { } private static Stream testReadOperatingSystemNames() { - return Stream.of( - Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", "AlmaLinux 8.7 (Stone Smilodon)"), - Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", "AlmaLinux 9.3 (Shamrock Pampas Cat)"), - Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", "Alpine Linux v3.14"), - Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", "Alpine Linux v3.15"), - Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", "Alpine Linux v3.16"), - Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", "Alpine Linux v3.17"), - Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", "Alpine Linux v3.18"), - Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", "Alpine Linux v3.19"), - Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", "Amazon Linux 2"), - Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023", "Amazon Linux 2023"), - Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", "CentOS Linux 7 (Core)"), - Arguments.of("os-release-debian-10", "Debian.* 10.*", "Debian GNU/Linux 10 (buster)"), - Arguments.of("os-release-debian-11", "Debian.* 11.*", "Debian GNU/Linux 11 (bullseye)"), - Arguments.of("os-release-debian-12", "Debian.* 12.*", "Debian GNU/Linux 12 (bookworm)"), - Arguments.of("os-release-fedora-36", "Fedora.* 36.*", "Fedora Linux 36 (Container Image)"), - Arguments.of("os-release-fedora-37", "Fedora.* 37.*", "Fedora Linux 37 (Container Image)"), - Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", "Oracle Linux Server 7.9"), - Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", "Oracle Linux Server 8.7"), - Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", "Red Hat Enterprise Linux Server 7.9 (Maipo)"), - Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", "Red Hat Enterprise Linux 8.8 (Ootpa)"), - Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", "Rocky Linux 8.7 (Green Obsidian)"), - Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", "Scientific Linux 7.9 (Nitrogen)"), - Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", "Ubuntu 18.04.6 LTS"), - Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", "Ubuntu 20.04.6 LTS"), - Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", "Ubuntu 22.04.3 LTS") - ); + return getArguments(false); } @ParameterizedTest @@ -239,4 +184,65 @@ public void testReadOperatingSystemListOnWarningDate() throws Exception { public void testReadOperatingSystemNameMissingFile() { assertThat(monitor.readOperatingSystemName(new File("/this/file/does/not/exist"), ".*"), is("")); } + + private static String s(String fullString, boolean simplify) { + if (!simplify) { + return fullString; + } + return fullString.replace(" ", "-").replace("/", "-").replace("(", "").replace(")", ""); + } + + /** + * Returns resource file nanme, pattern match for operating system + * name, and expected value for each of the resource files used by + * the test. + * + * @param simplifyExpectedValue if true, then the expected value + * is simplified by replacing ' ' with '-', by replacing '/' with + * '-', and by removing '(' and ')'. + * @return arguments for ParameterizedTest, resource file name, + * pattern match for operating system name, and expected value + */ + private static Stream getArguments(boolean simplify) { + return Stream.of( + Arguments.of("os-release-alma-8", "AlmaLinux.* 8.*", s("AlmaLinux 8.10 (Cerulean Leopard)", simplify)), + Arguments.of("os-release-alma-9", "AlmaLinux.* 9.*", s("AlmaLinux 9.4 (Seafoam Ocelot)", simplify)), + Arguments.of("os-release-alpine-3.14", "Alpine Linux v3.14", s("Alpine Linux v3.14", simplify)), + Arguments.of("os-release-alpine-3.15", "Alpine Linux v3.15", s("Alpine Linux v3.15", simplify)), + Arguments.of("os-release-alpine-3.16", "Alpine Linux v3.16", s("Alpine Linux v3.16", simplify)), + Arguments.of("os-release-alpine-3.17", "Alpine Linux v3.17", s("Alpine Linux v3.17", simplify)), + Arguments.of("os-release-alpine-3.18", "Alpine Linux v3.18", s("Alpine Linux v3.18", simplify)), + Arguments.of("os-release-alpine-3.19", "Alpine Linux v3.19", s("Alpine Linux v3.19", simplify)), + Arguments.of("os-release-alpine-3.20", "Alpine Linux v3.20", s("Alpine Linux v3.20", simplify)), + Arguments.of("os-release-amazon-linux-2", "Amazon Linux 2", s("Amazon Linux 2", simplify)), + Arguments.of("os-release-amazon-linux-2023", "Amazon Linux 2023.*", s("Amazon Linux 2023.5.20241001", simplify)), + Arguments.of("os-release-centos-7", "CentOS Linux.* 7.*", s("CentOS Linux 7 (Core)", simplify)), + Arguments.of("os-release-debian-10", "Debian.* 10.*", s("Debian GNU/Linux 10 (buster)", simplify)), + Arguments.of("os-release-debian-11", "Debian.* 11.*", s("Debian GNU/Linux 11 (bullseye)", simplify)), + Arguments.of("os-release-debian-12", "Debian.* 12.*", s("Debian GNU/Linux 12 (bookworm)", simplify)), + Arguments.of("os-release-eurolinux-8", "EuroLinux.* 8.*", s("EuroLinux 8.10 (Bucharest)", simplify)), + Arguments.of("os-release-eurolinux-9", "EuroLinux.* 9.*", s("EuroLinux 9.4 (San Marino)", simplify)), + Arguments.of("os-release-fedora-36", "Fedora.* 36.*", s("Fedora Linux 36 (Container Image)", simplify)), + Arguments.of("os-release-fedora-37", "Fedora.* 37.*", s("Fedora Linux 37 (Container Image)", simplify)), + Arguments.of("os-release-fedora-38", "Fedora.* 38.*", s("Fedora Linux 38 (Container Image)", simplify)), + Arguments.of("os-release-fedora-39", "Fedora.* 39.*", s("Fedora Linux 39 (Container Image)", simplify)), + Arguments.of("os-release-fedora-39", "Fedora.* 39.*", s("Fedora Linux 39 (Container Image)", simplify)), + Arguments.of("os-release-fedora-40", "Fedora.* 40.*", s("Fedora Linux 40 (Container Image)", simplify)), + Arguments.of("os-release-fedora-41", "Fedora.* 41.*", s("Fedora Linux 41 (Container Image)", simplify)), + Arguments.of("os-release-oracle-7", "Oracle Linux.* 7.*", s("Oracle Linux Server 7.9", simplify)), + Arguments.of("os-release-oracle-8", "Oracle Linux.* 8.*", s("Oracle Linux Server 8.10", simplify)), + Arguments.of("os-release-oracle-9", "Oracle Linux.* 9.*", s("Oracle Linux Server 9.4", simplify)), + Arguments.of("os-release-redhat-7", "Red Hat Enterprise Linux.* 7.*", s("Red Hat Enterprise Linux Server 7.9 (Maipo)", simplify)), + Arguments.of("os-release-redhat-8", "Red Hat Enterprise Linux.* 8.*", s("Red Hat Enterprise Linux 8.10 (Ootpa)", simplify)), + Arguments.of("os-release-rocky-8", "Rocky Linux.* 8.*", s("Rocky Linux 8.10 (Green Obsidian)", simplify)), + Arguments.of("os-release-rocky-9", "Rocky Linux.* 9.*", s("Rocky Linux 9.4 (Blue Onyx)", simplify)), + Arguments.of("os-release-scientific-7", "Scientific Linux.* 7.*", s("Scientific Linux 7.9 (Nitrogen)", simplify)), + Arguments.of("os-release-ubi-8", "Red Hat Enterprise Linux.* 8.*", s("Red Hat Enterprise Linux 8.10 (Ootpa)", simplify)), + Arguments.of("os-release-ubi-9", "Red Hat Enterprise Linux.* 9.*", s("Red Hat Enterprise Linux 9.4 (Plow)", simplify)), + Arguments.of("os-release-ubuntu-18.04", "Ubuntu.* 18.*", s("Ubuntu 18.04.6 LTS", simplify)), + Arguments.of("os-release-ubuntu-20.04", "Ubuntu.* 20.*", s("Ubuntu 20.04.6 LTS", simplify)), + Arguments.of("os-release-ubuntu-22.04", "Ubuntu.* 22.*", s("Ubuntu 22.04.4 LTS", simplify)), + Arguments.of("os-release-ubuntu-24.04", "Ubuntu.* 24.*", s("Ubuntu 24.04.1 LTS", simplify)) + ); + } } diff --git a/core/src/test/resources/jenkins/monitor/os-release-alma-8 b/core/src/test/resources/jenkins/monitor/os-release-alma-8 index d483909db5b5..6b594068ed3d 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alma-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-alma-8 @@ -1,10 +1,10 @@ NAME="AlmaLinux" -VERSION="8.7 (Stone Smilodon)" +VERSION="8.10 (Cerulean Leopard)" ID="almalinux" ID_LIKE="rhel centos fedora" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="AlmaLinux 8.7 (Stone Smilodon)" +PRETTY_NAME="AlmaLinux 8.10 (Cerulean Leopard)" ANSI_COLOR="0;34" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos" @@ -13,6 +13,7 @@ DOCUMENTATION_URL="https://wiki.almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8" -ALMALINUX_MANTISBT_PROJECT_VERSION="8.7" +ALMALINUX_MANTISBT_PROJECT_VERSION="8.10" REDHAT_SUPPORT_PRODUCT="AlmaLinux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.7" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" +SUPPORT_END=2029-06-01 diff --git a/core/src/test/resources/jenkins/monitor/os-release-alma-9 b/core/src/test/resources/jenkins/monitor/os-release-alma-9 index d7c856620e81..0310fdd1ea0b 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alma-9 +++ b/core/src/test/resources/jenkins/monitor/os-release-alma-9 @@ -1,10 +1,10 @@ NAME="AlmaLinux" -VERSION="9.3 (Shamrock Pampas Cat)" +VERSION="9.4 (Seafoam Ocelot)" ID="almalinux" ID_LIKE="rhel centos fedora" -VERSION_ID="9.3" +VERSION_ID="9.4" PLATFORM_ID="platform:el9" -PRETTY_NAME="AlmaLinux 9.3 (Shamrock Pampas Cat)" +PRETTY_NAME="AlmaLinux 9.4 (Seafoam Ocelot)" ANSI_COLOR="0;34" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos" @@ -13,6 +13,7 @@ DOCUMENTATION_URL="https://wiki.almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9" -ALMALINUX_MANTISBT_PROJECT_VERSION="9.3" +ALMALINUX_MANTISBT_PROJECT_VERSION="9.4" REDHAT_SUPPORT_PRODUCT="AlmaLinux" -REDHAT_SUPPORT_PRODUCT_VERSION="9.3" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" +SUPPORT_END=2032-06-01 diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 index 8478d8e8bf32..357834f85742 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.17 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.17.3 +VERSION_ID=3.17.10 PRETTY_NAME="Alpine Linux v3.17" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 index a9e1d0057d7b..6dd7e71b9c13 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.18 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.18.0 +VERSION_ID=3.18.9 PRETTY_NAME="Alpine Linux v3.18" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 index 0c1a379f5fcf..f3770e65dc2d 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.19 @@ -1,6 +1,6 @@ NAME="Alpine Linux" ID=alpine -VERSION_ID=3.19.0 +VERSION_ID=3.19.4 PRETTY_NAME="Alpine Linux v3.19" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 new file mode 100644 index 000000000000..843e443cd895 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-alpine-3.20 @@ -0,0 +1,6 @@ +NAME="Alpine Linux" +ID=alpine +VERSION_ID=3.20.3 +PRETTY_NAME="Alpine Linux v3.20" +HOME_URL="https://alpinelinux.org/" +BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 index 97bdcb48a04a..a1bfc87cf06c 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 +++ b/core/src/test/resources/jenkins/monitor/os-release-amazon-linux-2023 @@ -4,9 +4,13 @@ ID="amzn" ID_LIKE="fedora" VERSION_ID="2023" PLATFORM_ID="platform:al2023" -PRETTY_NAME="Amazon Linux 2023" +PRETTY_NAME="Amazon Linux 2023.5.20241001" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023" -HOME_URL="https://aws.amazon.com/linux/" +HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/" +DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/" +SUPPORT_URL="https://aws.amazon.com/premiumsupport/" BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023" +VENDOR_NAME="AWS" +VENDOR_URL="https://aws.amazon.com/" SUPPORT_END="2028-03-15" diff --git a/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 new file mode 100644 index 000000000000..866ff8c05561 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-8 @@ -0,0 +1,14 @@ +NAME="EuroLinux" +VERSION="8.10 (Bucharest)" +ID="eurolinux" +ID_LIKE="rhel fedora centos" +VERSION_ID="8.10" +PLATFORM_ID="platform:el8" +PRETTY_NAME="EuroLinux 8.10 (Bucharest)" +ANSI_COLOR="0;34" +CPE_NAME="cpe:/o:eurolinux:eurolinux:8" +HOME_URL="https://www.euro-linux.com/" +DOCUMENTATION_URL="https://docs.euro-linux.com/" +BUG_REPORT_URL="https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc/" +REDHAT_SUPPORT_PRODUCT="EuroLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="8" diff --git a/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 new file mode 100644 index 000000000000..d436181116bb --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-eurolinux-9 @@ -0,0 +1,15 @@ +NAME="EuroLinux" +VERSION="9.4 (San Marino)" +ID="eurolinux" +ID_LIKE="rhel fedora centos" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="EuroLinux 9.4 (San Marino)" +ANSI_COLOR="0;34" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:eurolinux:eurolinux:9" +HOME_URL="https://www.euro-linux.com/" +DOCUMENTATION_URL="https://docs.euro-linux.com" +BUG_REPORT_URL="https://github.com/EuroLinux/eurolinux-distro-bugs-and-rfc/" +REDHAT_SUPPORT_PRODUCT="EuroLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="9" diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-39 b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 index 26c8fbaf0423..9d04f7e3798e 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-fedora-39 +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-39 @@ -17,6 +17,6 @@ REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=39 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=39 -SUPPORT_END=2024-05-14 +SUPPORT_END=2024-11-12 VARIANT="Container Image" VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-40 b/core/src/test/resources/jenkins/monitor/os-release-fedora-40 new file mode 100644 index 000000000000..90193fae8e8d --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-40 @@ -0,0 +1,22 @@ +NAME="Fedora Linux" +VERSION="40 (Container Image)" +ID=fedora +VERSION_ID=40 +VERSION_CODENAME="" +PLATFORM_ID="platform:f40" +PRETTY_NAME="Fedora Linux 40 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:40" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=40 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=40 +SUPPORT_END=2025-05-13 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-fedora-41 b/core/src/test/resources/jenkins/monitor/os-release-fedora-41 new file mode 100644 index 000000000000..135585f763a5 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-fedora-41 @@ -0,0 +1,23 @@ +NAME="Fedora Linux" +VERSION="41 (Container Image)" +RELEASE_TYPE=stable +ID=fedora +VERSION_ID=41 +VERSION_CODENAME="" +PLATFORM_ID="platform:f41" +PRETTY_NAME="Fedora Linux 41 (Container Image)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:41" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f41/system-administrators-guide/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=41 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=41 +SUPPORT_END=2025-05-13 +VARIANT="Container Image" +VARIANT_ID=container diff --git a/core/src/test/resources/jenkins/monitor/os-release-oracle-8 b/core/src/test/resources/jenkins/monitor/os-release-oracle-8 index b91c366e47ac..81c29c076b26 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-oracle-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-oracle-8 @@ -1,18 +1,18 @@ NAME="Oracle Linux Server" -VERSION="8.7" +VERSION="8.10" ID="ol" ID_LIKE="fedora" VARIANT="Server" VARIANT_ID="server" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Oracle Linux Server 8.7" +PRETTY_NAME="Oracle Linux Server 8.10" ANSI_COLOR="0;31" -CPE_NAME="cpe:/o:oracle:linux:8:7:server" +CPE_NAME="cpe:/o:oracle:linux:8:10:server" HOME_URL="https://linux.oracle.com/" -BUG_REPORT_URL="https://bugzilla.oracle.com/" +BUG_REPORT_URL="https://github.com/oracle/oracle-linux" ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8" -ORACLE_BUGZILLA_PRODUCT_VERSION=8.7 +ORACLE_BUGZILLA_PRODUCT_VERSION=8.10 ORACLE_SUPPORT_PRODUCT="Oracle Linux" -ORACLE_SUPPORT_PRODUCT_VERSION=8.7 +ORACLE_SUPPORT_PRODUCT_VERSION=8.10 diff --git a/core/src/test/resources/jenkins/monitor/os-release-oracle-9 b/core/src/test/resources/jenkins/monitor/os-release-oracle-9 new file mode 100644 index 000000000000..2de011e2b755 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-oracle-9 @@ -0,0 +1,18 @@ +NAME="Oracle Linux Server" +VERSION="9.4" +ID="ol" +ID_LIKE="fedora" +VARIANT="Server" +VARIANT_ID="server" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Oracle Linux Server 9.4" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:oracle:linux:9:4:server" +HOME_URL="https://linux.oracle.com/" +BUG_REPORT_URL="https://github.com/oracle/oracle-linux" + +ORACLE_BUGZILLA_PRODUCT="Oracle Linux 9" +ORACLE_BUGZILLA_PRODUCT_VERSION=9.4 +ORACLE_SUPPORT_PRODUCT="Oracle Linux" +ORACLE_SUPPORT_PRODUCT_VERSION=9.4 diff --git a/core/src/test/resources/jenkins/monitor/os-release-redhat-8 b/core/src/test/resources/jenkins/monitor/os-release-redhat-8 index 2fafad589d61..44a109a3eefb 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-redhat-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-redhat-8 @@ -1,17 +1,17 @@ NAME="Red Hat Enterprise Linux" -VERSION="8.8 (Ootpa)" +VERSION="8.10 (Ootpa)" ID="rhel" ID_LIKE="fedora" -VERSION_ID="8.8" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Red Hat Enterprise Linux 8.8 (Ootpa)" +PRETTY_NAME="Red Hat Enterprise Linux 8.10 (Ootpa)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" HOME_URL="https://www.redhat.com/" DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8" -BUG_REPORT_URL="https://bugzilla.redhat.com/" +BUG_REPORT_URL="https://issues.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" -REDHAT_BUGZILLA_PRODUCT_VERSION=8.8 +REDHAT_BUGZILLA_PRODUCT_VERSION=8.10 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.8" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-rocky-8 b/core/src/test/resources/jenkins/monitor/os-release-rocky-8 index 2fd5d0f4bcc6..514ac1171048 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-rocky-8 +++ b/core/src/test/resources/jenkins/monitor/os-release-rocky-8 @@ -1,16 +1,17 @@ NAME="Rocky Linux" -VERSION="8.7 (Green Obsidian)" +VERSION="8.10 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" -VERSION_ID="8.7" +VERSION_ID="8.10" PLATFORM_ID="platform:el8" -PRETTY_NAME="Rocky Linux 8.7 (Green Obsidian)" +PRETTY_NAME="Rocky Linux 8.10 (Green Obsidian)" ANSI_COLOR="0;32" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:rocky:rocky:8:GA" HOME_URL="https://rockylinux.org/" BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2029-05-31" ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8" -ROCKY_SUPPORT_PRODUCT_VERSION="8.7" +ROCKY_SUPPORT_PRODUCT_VERSION="8.10" REDHAT_SUPPORT_PRODUCT="Rocky Linux" -REDHAT_SUPPORT_PRODUCT_VERSION="8.7" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-rocky-9 b/core/src/test/resources/jenkins/monitor/os-release-rocky-9 new file mode 100644 index 000000000000..637ae1a12926 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-rocky-9 @@ -0,0 +1,17 @@ +NAME="Rocky Linux" +VERSION="9.4 (Blue Onyx)" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Rocky Linux 9.4 (Blue Onyx)" +ANSI_COLOR="0;32" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:rocky:rocky:9::baseos" +HOME_URL="https://rockylinux.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2032-05-31" +ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9" +ROCKY_SUPPORT_PRODUCT_VERSION="9.4" +REDHAT_SUPPORT_PRODUCT="Rocky Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubi-8 b/core/src/test/resources/jenkins/monitor/os-release-ubi-8 new file mode 100644 index 000000000000..44a109a3eefb --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubi-8 @@ -0,0 +1,17 @@ +NAME="Red Hat Enterprise Linux" +VERSION="8.10 (Ootpa)" +ID="rhel" +ID_LIKE="fedora" +VERSION_ID="8.10" +PLATFORM_ID="platform:el8" +PRETTY_NAME="Red Hat Enterprise Linux 8.10 (Ootpa)" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" +HOME_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" +REDHAT_BUGZILLA_PRODUCT_VERSION=8.10 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="8.10" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubi-9 b/core/src/test/resources/jenkins/monitor/os-release-ubi-9 new file mode 100644 index 000000000000..66458c5674e2 --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubi-9 @@ -0,0 +1,18 @@ +NAME="Red Hat Enterprise Linux" +VERSION="9.4 (Plow)" +ID="rhel" +ID_LIKE="fedora" +VERSION_ID="9.4" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Red Hat Enterprise Linux 9.4 (Plow)" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos" +HOME_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9" +REDHAT_BUGZILLA_PRODUCT_VERSION=9.4 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.4" diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 index 39240aa54b81..9027a5785123 100644 --- a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-22.04 @@ -1,7 +1,7 @@ -PRETTY_NAME="Ubuntu 22.04.3 LTS" +PRETTY_NAME="Ubuntu 22.04.4 LTS" NAME="Ubuntu" VERSION_ID="22.04" -VERSION="22.04.3 LTS (Jammy Jellyfish)" +VERSION="22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian diff --git a/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 new file mode 100644 index 000000000000..18cf4770e81a --- /dev/null +++ b/core/src/test/resources/jenkins/monitor/os-release-ubuntu-24.04 @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 24.04.1 LTS" +NAME="Ubuntu" +VERSION_ID="24.04" +VERSION="24.04.1 LTS (Noble Numbat)" +VERSION_CODENAME=noble +ID=ubuntu +ID_LIKE=debian +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +UBUNTU_CODENAME=noble +LOGO=ubuntu-logo diff --git a/package.json b/package.json index 45ba15920713..02976322bb18 100644 --- a/package.json +++ b/package.json @@ -26,26 +26,26 @@ "@babel/cli": "7.25.9", "@babel/core": "7.26.0", "@babel/preset-env": "7.26.0", - "@eslint/js": "9.14.0", + "@eslint/js": "9.15.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.14.0", + "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", - "globals": "15.11.0", + "globals": "15.12.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.2", - "postcss": "8.4.47", + "postcss": "8.4.49", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.9", + "postcss-preset-env": "10.1.1", "postcss-scss": "4.0.9", - "prettier": "3.3.3", - "sass": "1.80.6", + "prettier": "3.4.1", + "sass": "1.81.0", "sass-loader": "16.0.3", "style-loader": "4.0.0", - "stylelint": "16.10.0", + "stylelint": "16.11.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", "webpack": "5.96.1", @@ -57,7 +57,7 @@ "hotkeys-js": "3.12.2", "jquery": "3.7.1", "lodash": "4.17.21", - "sortablejs": "1.15.3", + "sortablejs": "1.15.6", "tippy.js": "6.3.7", "window-handle": "1.0.1" }, @@ -68,5 +68,5 @@ "engines": { "node": ">=20.0.0" }, - "packageManager": "yarn@4.5.1" + "packageManager": "yarn@4.5.3" } diff --git a/pom.xml b/pom.xml index 05bdaa5a09f9..8543045f068e 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.125 + 1.126 @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.485 + 2.488 -SNAPSHOT - 2024-11-05T13:51:04Z + 2024-11-25T19:14:52Z github @@ -98,7 +98,7 @@ THE SOFTWARE. false 8.2 - 20.18.0 + 20.18.1 org.jenkins-ci.plugins script-security - 1367.vdf2fc45f229c + 1369.v9b_98a_4e95b_2d org.jenkins-ci.plugins.workflow @@ -134,7 +134,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 932.vb_555de1b_a_b_94 + 936.v9fa_77211ca_e1 @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2345.v699712948764 + 2363.vf95c19b_2ca_72 test @@ -218,7 +218,7 @@ THE SOFTWARE. org.jenkins-ci.plugins cloudbees-folder - 6.955.v81e2a_35c08d3 + 6.959.v4ed5cc9e2dd4 test @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1307.vdd5b_2646279e + 1309.v0078b_fecd6ed test @@ -344,7 +344,7 @@ THE SOFTWARE. io.jenkins.plugins design-library - 307.vecc0205ca_707 + 325.v40b_a_ccf974db_ hpi ${project.build.outputDirectory}/plugins design-library.jpi @@ -352,7 +352,7 @@ THE SOFTWARE. io.jenkins.plugins prism-api - 1.29.0-17 + 1.29.0-18 hpi ${project.build.outputDirectory}/plugins prism-api.jpi diff --git a/test/src/test/java/hudson/jobs/CreateItemTest.java b/test/src/test/java/hudson/jobs/CreateItemTest.java index df8c577e30dc..284200abdef8 100644 --- a/test/src/test/java/hudson/jobs/CreateItemTest.java +++ b/test/src/test/java/hudson/jobs/CreateItemTest.java @@ -25,19 +25,25 @@ package hudson.jobs; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import hudson.model.Failure; import hudson.model.FreeStyleProject; import hudson.model.Item; import hudson.model.ItemGroup; +import hudson.model.ListView; +import hudson.model.User; import hudson.model.listeners.ItemListener; import java.net.HttpURLConnection; import java.net.URI; import java.net.URL; import java.text.MessageFormat; +import jenkins.model.Jenkins; import org.htmlunit.HttpMethod; import org.htmlunit.Page; import org.htmlunit.WebRequest; @@ -46,6 +52,7 @@ import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockFolder; import org.jvnet.hudson.test.TestExtension; @@ -142,4 +149,50 @@ public void onCheckCopy(Item src, ItemGroup parent) throws Failure { } } + @Issue("JENKINS-74795") + @Test + public void testCreateItemDoesNotPopulateDefaultView() throws Exception { + // Create a view that only displays jobs that start with 'a-' + FreeStyleProject aJob = rule.createFreeStyleProject("a-freestyle-job"); + ListView aView = new ListView("a-view"); + aView.setIncludeRegex("a-.*"); + rule.jenkins.addView(aView); + assertThat(aView.getItems(), containsInAnyOrder(aJob)); + assertFalse(aView.isDefault()); // Not yet the default view + + // Create a view that only displays jobs that start with 'b-' + FreeStyleProject bJob = rule.createFreeStyleProject("b-freestyle-job"); + ListView bView = new ListView("b-view"); + bView.setIncludeRegex("b-.*"); + rule.jenkins.addView(bView); + assertThat(bView.getItems(), containsInAnyOrder(bJob)); + assertFalse(bView.isDefault()); // Not the default view + + // Make the a-view the default + rule.jenkins.setPrimaryView(aView); + assertTrue(aView.isDefault()); // Now a-view is the default view + + // Use createItem API to create a new job + User user = User.getById("user", true); + rule.jenkins.setSecurityRealm(rule.createDummySecurityRealm()); + rule.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy() + .grant(Jenkins.READ, Item.CREATE) + .everywhere() + .to(user.getId())); + String b2JobName = "b-freestyle-job-2"; + try (JenkinsRule.WebClient wc = rule.createWebClient()) { + wc.login(user.getId()); + WebRequest request = new WebRequest(wc.createCrumbedUrl("createItem?name=" + b2JobName), HttpMethod.POST); + request.setAdditionalHeader("Content-Type", "application/xml"); + request.setRequestBody(""); + wc.getPage(request); + } + FreeStyleProject b2Job = rule.jenkins.getItemByFullName(b2JobName, FreeStyleProject.class); + assertThat(bView.getItems(), containsInAnyOrder(bJob, b2Job)); + assertFalse(bView.isDefault()); + + // Confirm new job is not visible in default view + assertTrue(aView.isDefault()); // a-view is still the default view + assertThat(aView.getItems(), containsInAnyOrder(aJob)); + } } diff --git a/test/src/test/java/jenkins/model/NodesTest.java b/test/src/test/java/jenkins/model/NodesTest.java index ef2bee08ef4a..5b222e313a5f 100644 --- a/test/src/test/java/jenkins/model/NodesTest.java +++ b/test/src/test/java/jenkins/model/NodesTest.java @@ -287,6 +287,7 @@ public static class CheckSetNodes extends NodeListener { @Override protected void onCreated(@NonNull Node node) { + node.getRootDir(); created.add(node.getNodeName()); } diff --git a/test/src/test/java/jenkins/security/Security2779Test.java b/test/src/test/java/jenkins/security/Security2779Test.java index ef8ef8fef7d5..8e2460687aaf 100644 --- a/test/src/test/java/jenkins/security/Security2779Test.java +++ b/test/src/test/java/jenkins/security/Security2779Test.java @@ -49,7 +49,7 @@ private void noCrossSiteScriptingInHelp(String selector) throws Exception { // assert leading space to identify unintentional double-escaping (&lt;) as test failure assertThat("tooltip does not contain dangerous HTML", jsResultString, not(containsString(" org.jenkins-ci.plugins script-security - 1367.vdf2fc45f229c + 1369.v9b_98a_4e95b_2d hpi org.jenkins-ci.plugins junit - 1307.vdd5b_2646279e + 1309.v0078b_fecd6ed hpi @@ -350,7 +350,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 932.vb_555de1b_a_b_94 + 936.v9fa_77211ca_e1 hpi @@ -439,7 +439,7 @@ THE SOFTWARE. org.jenkins-ci.plugins command-launcher - 115.vd8b_301cc15d0 + 116.vd85919c54a_d6 hpi diff --git a/yarn.lock b/yarn.lock index 335705829887..14a7d43ce2ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1166,30 +1166,30 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/css-calc@npm:2.0.4" +"@csstools/css-calc@npm:^2.1.0": + version: 2.1.0 + resolution: "@csstools/css-calc@npm:2.1.0" peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - checksum: 10c0/ecb68fc9f8d930b861d5c9c5d4fc6eb43dabc619a4cd6c82dc18034ee746f907dba106fa6cdb909ac727fbfc9b1f7ceac1f356641542faeb2fab99c5fcd52a2e + checksum: 10c0/c707bb533a6ea63ed5bb4b8f1ffcbf3cd2daf970a6d76d42b684243426f5aa7513179a8f34d2e3c5a85df3870f44d3bc2850ca40b085c5fe00b41a291a2ecae2 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/css-color-parser@npm:3.0.5" +"@csstools/css-color-parser@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/css-color-parser@npm:3.0.6" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - checksum: 10c0/535e2a38222ad7ee9e1143c3ef09ba07b2e70a4214bbdf7ca13398388b8d2db9ee295fe15d9d306342036e554d97dd235567a8c8ee03fea6825483f1c4dbbf7e + checksum: 10c0/7c4f42a704c8c44cece75f5dcd647a83634dec0f44d398ae1fbdc6e8527d4fbdc3a809eaaba3b739edf8e3c09d62c28234636f250f9b0b0d52a599e824c22047 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.4": +"@csstools/css-parser-algorithms@npm:^3.0.4": version: 3.0.4 resolution: "@csstools/css-parser-algorithms@npm:3.0.4" peerDependencies: @@ -1198,23 +1198,13 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.1, @csstools/css-tokenizer@npm:^3.0.3": +"@csstools/css-tokenizer@npm:^3.0.3": version: 3.0.3 resolution: "@csstools/css-tokenizer@npm:3.0.3" checksum: 10c0/c31bf410e1244b942e71798e37c54639d040cb59e0121b21712b40015fced2b0fb1ffe588434c5f8923c9cd0017cfc1c1c8f3921abc94c96edf471aac2eba5e5 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/media-query-list-parser@npm:3.0.1" - peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/fca1935cabf9fb94128da87f72c34aa2cfce8eb0beba4c78d685c7b42aaba3521067710afc6905b7347fc41fe53947536ce15a7ef3387b48763d8f7d71778d5e - languageName: node - linkType: hard - "@csstools/media-query-list-parser@npm:^4.0.2": version: 4.0.2 resolution: "@csstools/media-query-list-parser@npm:4.0.2" @@ -1237,33 +1227,33 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-color-function@npm:4.0.5" +"@csstools/postcss-color-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-color-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b47cc4567445eb12dd3e67a4298470d62a449a4d754fd4dd32eb78b23615ba6bd1fe8dacccc6c95087ce8749a6552bace8de0b9b6eee0c9a7b7202a0bcb8fcac + checksum: 10c0/facbae01fd58898a176219cfcffee9ffb06fb466a2c439fd28403819e48778b682621b86a69682c0f758c659f8ec5f14eca1a9612b12b8777a2198173f386b49 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.5" +"@csstools/postcss-color-mix-function@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a17d20dcc42d2c1ccd7a5ceb8d1413133ae9461bf973a9aad997a5782bf4cbbd847aef06accc20fa391ac6fbd44a1003e18c30a621d7c77052d4256fe39619aa + checksum: 10c0/66b906b2425ed137b1c2ef3d166036719ae69039668385dccce4e02bd91e41733b37dd3c884b74a2999067bfe8a8d8d1afa4082ef21a0bf044ba7e7fffb77e01 languageName: node linkType: hard @@ -1281,16 +1271,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.4" +"@csstools/postcss-exponential-functions@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/b174faa8782b7b3f3a9636412f90963740ff033c6506acf662f002fa07f59b370eb23937dbe3f1a05d7df277373f662d6970237d34ae938cf282a0b8dbde9a47 + checksum: 10c0/8935cb69f70d7448aa5a3dcdfd188bdcfbc34e9a99131306947df8847126272773212011dcff85e10bcee4c9d01f94f7f8557ef93933122a0b82743185684ab1 languageName: node linkType: hard @@ -1306,46 +1296,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.5": - version: 2.0.5 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.5" +"@csstools/postcss-gamut-mapping@npm:^2.0.6": + version: 2.0.6 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/a9d7365bed5c323dddad06d53c137ef3508870e541c6275dbdf3a73a50d44437830c22fa62c510d9316441d1e9f3b5552730778d1b73d083422245673bd00dac + checksum: 10c0/8a3f012774ab261924cc9f3519caa87a25a6abcd70d78f622144d8e7126a687bddbdaa92995fc30f53355759cd5971e71ac099b6b8cb85c89d8ca86455588e3b languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.5": - version: 5.0.5 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.5" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.6": + version: 5.0.6 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0ef258478270005ab3a879132dc6dbf2bf80788c79861515c826607953c551df1c2ef7005ba9592c31c6dad332d12ee247928a9fdd1569a51927a18a75dcc865 + checksum: 10c0/0d97be76837f972ea323b58189ded2310b618ad94b40777464d0d8ac050b557ca9fd1f20af5ada105d61574cc9d8c119ae0daf294a3aacaaa89926f864d9d674 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-hwb-function@npm:4.0.5" +"@csstools/postcss-hwb-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-hwb-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/9ce0a66bf288c9ec7f1fc28323d56ec54d38a30cb2ab722d1afbd46ec070cc5e61121bacb503803cb00293fc5ed117269969ac21071d7f4ce94b385c96168445 + checksum: 10c0/e7bcc98095ef2873a7b1a7326f1618bbeecc1c78660b23805bbefd8ec067bf2f35f2a2d4675be51a02d2280046f36f74d55f6af78e3ce107b82624d1a421ffcf languageName: node linkType: hard @@ -1447,17 +1437,17 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-media-minmax@npm:2.0.4" +"@csstools/postcss-media-minmax@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-media-minmax@npm:2.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/media-query-list-parser": "npm:^4.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/f9fe1e99b83a0724250f9426335da6f13bfbc28be6d10ebfafbf037766fc5245240ec33be7e68c9c5b60c013fbc2fa0be96fbed0d41383c919ee9e6f1b8225ce + checksum: 10c0/0d17782076fcaba2c3c85bd769fc102d95809e9ee6141ad9de706ee116466cada62424fd68623c58cc2456771725291c356e550377ba73a102ab6fe628931e30 languageName: node linkType: hard @@ -1497,18 +1487,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.5": - version: 4.0.5 - resolution: "@csstools/postcss-oklab-function@npm:4.0.5" +"@csstools/postcss-oklab-function@npm:^4.0.6": + version: 4.0.6 + resolution: "@csstools/postcss-oklab-function@npm:4.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a49e2ee60066f7da18316c7c80e5b2ced286ec962052f83c01f1952a1c5fe5b65ba9803a04698260125270a1dd47416f0b287a8f42e591f0d88c9a660ae844ce + checksum: 10c0/74ec74eb7171881deeff7a79e0dc696097fb53dcdcd9627d9559cd7be63f41adecec06c1e88ddd5d8a37f4705715d1c0c135ca2b001fb70fdc0b76ab1e491b66 languageName: node linkType: hard @@ -1523,18 +1513,31 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.5" +"@csstools/postcss-random-function@npm:^1.0.1": + version: 1.0.1 + resolution: "@csstools/postcss-random-function@npm:1.0.1" + dependencies: + "@csstools/css-calc": "npm:^2.1.0" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/5e8f29c024aa6ed1f89ee8b9c8ece39c8e72602d63faa82d9684e3183828f01971cf2f760b7d5b773605d44a4ea661d6d4389ec03f7e21002f9aa9e8db613a61 + languageName: node + linkType: hard + +"@csstools/postcss-relative-color-syntax@npm:^3.0.6": + version: 3.0.6 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/505da97e7b219095a9fb6fa0ad6c6a1358ce1f5debada00564e635e1aa11d034c588be9ce2f76263172a8d1bd07d90647fde826f4565de22dcfc0a76beb68ff1 + checksum: 10c0/207ae711831f8ae9170093dbea3727cd6f32ca31d22c1231b5b678592679eb49e329e87ea403714b8e10feb5b9137780364cc7e1e7d8cc4c90d47483a42132dc languageName: node linkType: hard @@ -1549,16 +1552,29 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.4" +"@csstools/postcss-sign-functions@npm:^1.1.0": + version: 1.1.0 + resolution: "@csstools/postcss-sign-functions@npm:1.1.0" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/c8413a855a5ee9ad5b800263545d24d1bbd815f5ae0693c7dfd10c5f5b47bae5a9d985efdb2c46b03194ed3cae39f3d82c3ccfde502dee0b35d620fa539906be + checksum: 10c0/503bbaa8fe1d1a619880d5d6b838f07f1898a5820889e5db3c4e02bb8b340dab18b88f439f9f1da44c6669bab2d4ba3f9543643ccc459d8a21191c5d22109c9b + languageName: node + linkType: hard + +"@csstools/postcss-stepped-value-functions@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.5" + dependencies: + "@csstools/css-calc": "npm:^2.1.0" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + peerDependencies: + postcss: ^8.4 + checksum: 10c0/76f1f60c24b9e6a80b044eb19f37c1816788a2335fbf7c25f3fbea1cd7104857f424a451dcff60e4f8841618c6b6ffa6091f8b840d6d5930c1c7100c2f8ae74b languageName: node linkType: hard @@ -1574,16 +1590,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.4" +"@csstools/postcss-trigonometric-functions@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.5" dependencies: - "@csstools/css-calc": "npm:^2.0.4" + "@csstools/css-calc": "npm:^2.1.0" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" peerDependencies: postcss: ^8.4 - checksum: 10c0/344c07961d24894f315faebf43c0128167fb2e33964c70d0d39d99a051c045678511d7378959105d672c5286a5360fde28fe390cdebfe823f3949e3cd1d50c4e + checksum: 10c0/b8518c8b81da047448dcee12a5f3716dbc19671333387a4a673991a16f1a120441d2768de8a30ce1e2ef8d0d76509b9509f506ef1e8630da84834451414b23a3 languageName: node linkType: hard @@ -1605,15 +1621,6 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/selector-specificity@npm:4.0.0" - peerDependencies: - postcss-selector-parser: ^6.1.0 - checksum: 10c0/6f4d4ecfdcd37f950100de8ffe0b4c1b1cc8c004aab2c2ebaa5c3e2bca2412d15b17d4628435f47a62d2c56db41bcbf985cb9c69e74b89964d48e421e93e75ba - languageName: node - linkType: hard - "@csstools/selector-specificity@npm:^5.0.0": version: 5.0.0 resolution: "@csstools/selector-specificity@npm:5.0.0" @@ -1664,27 +1671,27 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.18.0": - version: 0.18.0 - resolution: "@eslint/config-array@npm:0.18.0" +"@eslint/config-array@npm:^0.19.0": + version: 0.19.0 + resolution: "@eslint/config-array@npm:0.19.0" dependencies: "@eslint/object-schema": "npm:^2.1.4" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f + checksum: 10c0/def23c6c67a8f98dc88f1b87e17a5668e5028f5ab9459661aabfe08e08f2acd557474bbaf9ba227be0921ae4db232c62773dbb7739815f8415678eb8f592dbf5 languageName: node linkType: hard -"@eslint/core@npm:^0.7.0": - version: 0.7.0 - resolution: "@eslint/core@npm:0.7.0" - checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a +"@eslint/core@npm:^0.9.0": + version: 0.9.0 + resolution: "@eslint/core@npm:0.9.0" + checksum: 10c0/6d8e8e0991cef12314c49425d8d2d9394f5fb1a36753ff82df7c03185a4646cb7c8736cf26638a4a714782cedf4b23cfc17667d282d3e5965b3920a0e7ce20d4 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.1.0": - version: 3.1.0 - resolution: "@eslint/eslintrc@npm:3.1.0" +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -1695,14 +1702,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 + checksum: 10c0/43867a07ff9884d895d9855edba41acf325ef7664a8df41d957135a81a477ff4df4196f5f74dc3382627e5cc8b7ad6b815c2cea1b58f04a75aced7c43414ab8b languageName: node linkType: hard -"@eslint/js@npm:9.14.0": - version: 9.14.0 - resolution: "@eslint/js@npm:9.14.0" - checksum: 10c0/a423dd435e10aa3b461599aa02f6cbadd4b5128cb122467ee4e2c798e7ca4f9bb1fce4dcea003b29b983090238cf120899c1af657cf86300b399e4f996b83ddc +"@eslint/js@npm:9.15.0": + version: 9.15.0 + resolution: "@eslint/js@npm:9.15.0" + checksum: 10c0/56552966ab1aa95332f70d0e006db5746b511c5f8b5e0c6a9b2d6764ff6d964e0b2622731877cbc4e3f0e74c5b39191290d5f48147be19175292575130d499ab languageName: node linkType: hard @@ -1713,12 +1720,12 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.2.0": - version: 0.2.0 - resolution: "@eslint/plugin-kit@npm:0.2.0" +"@eslint/plugin-kit@npm:^0.2.3": + version: 0.2.3 + resolution: "@eslint/plugin-kit@npm:0.2.3" dependencies: levn: "npm:^0.4.1" - checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c + checksum: 10c0/89a8035976bb1780e3fa8ffe682df013bd25f7d102d991cecd3b7c297f4ce8c1a1b6805e76dd16465b5353455b670b545eff2b4ec3133e0eab81a5f9e99bd90f languageName: node linkType: hard @@ -1753,10 +1760,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.4.0": - version: 0.4.0 - resolution: "@humanwhocodes/retry@npm:0.4.0" - checksum: 10c0/28dcf1ed70b28ae8bc07b268c457a02f6b53fe4591b73e31f6735e7673dfd9e662f24a69e065aada1a64311bf5692d93d4ef35aba849314e8a87a870ba3b47aa +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: 10c0/be7bb6841c4c01d0b767d9bb1ec1c9359ee61421ce8ba66c249d035c5acdfd080f32d55a5c9e859cdd7868788b8935774f65b2caf24ec0b7bd7bf333791f063b languageName: node linkType: hard @@ -2995,14 +3002,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + checksum: 10c0/aa82ce7ac0814a27e6f2b738c5a7cf1fa21a3558a1e42df449fc96541ba3ba731e4d3ecffa4435348808a86212f287c6f20a1ee551ef1ff95d01cfec5f434944 languageName: node linkType: hard @@ -3131,13 +3138,13 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^3.0.0": - version: 3.0.0 - resolution: "css-tree@npm:3.0.0" +"css-tree@npm:^3.0.1": + version: 3.0.1 + resolution: "css-tree@npm:3.0.1" dependencies: - mdn-data: "npm:2.10.0" + mdn-data: "npm:2.12.1" source-map-js: "npm:^1.0.1" - checksum: 10c0/43d44fdf7004ae91d73d486f17894fef77efa33747a6752b9241cf0f5fb47fabc16ec34a96a993651d9014dfdeee803d7c5fcd3548214252ee19f4e5c98999b2 + checksum: 10c0/9f117f3067e68e9edb0b3db0134f420db1a62bede3e84d8835767ecfaa6f8ced5e87989cf39b65ffe65d788c134c8ea9abd7393d7c35838a9da84326adf57a9b languageName: node linkType: hard @@ -3158,10 +3165,10 @@ __metadata: languageName: node linkType: hard -"cssdb@npm:^8.1.2": - version: 8.1.2 - resolution: "cssdb@npm:8.1.2" - checksum: 10c0/056149e713a78921f56d9ef0cd734577cedb93c27966c3d0eab01956a2aa8d3c260a911766064b57ded8b4d9c55dd5275626cbb022ccd8d2d0b93b53fefd1603 +"cssdb@npm:^8.2.1": + version: 8.2.1 + resolution: "cssdb@npm:8.2.1" + checksum: 10c0/d27d7db0a39e1105181aac119a98d6c92cd5ceba2e8bd349cdf2ba4a8d9ead149b685a1dba9542ca24f094cc70eca4a3e02973fe1f74c11a373b508606e5e1c0 languageName: node linkType: hard @@ -3500,25 +3507,25 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.14.0": - version: 9.14.0 - resolution: "eslint@npm:9.14.0" +"eslint@npm:9.15.0": + version: 9.15.0 + resolution: "eslint@npm:9.15.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.7.0" - "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.14.0" - "@eslint/plugin-kit": "npm:^0.2.0" + "@eslint/config-array": "npm:^0.19.0" + "@eslint/core": "npm:^0.9.0" + "@eslint/eslintrc": "npm:^3.2.0" + "@eslint/js": "npm:9.15.0" + "@eslint/plugin-kit": "npm:^0.2.3" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.4.0" + "@humanwhocodes/retry": "npm:^0.4.1" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" + cross-spawn: "npm:^7.0.5" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" eslint-scope: "npm:^8.2.0" @@ -3538,7 +3545,6 @@ __metadata: minimatch: "npm:^3.1.2" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" - text-table: "npm:^0.2.0" peerDependencies: jiti: "*" peerDependenciesMeta: @@ -3546,7 +3552,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/e1cbf571b75519ad0b24c27e66a6575e57cab2671ef5296e7b345d9ac3adc1a549118dcc74a05b651a7a13a5e61ebb680be6a3e04a80e1f22eba1931921b5187 + checksum: 10c0/d0d7606f36bfcccb1c3703d0a24df32067b207a616f17efe5fb1765a91d13f085afffc4fc97ecde4ab9c9f4edd64d9b4ce750e13ff7937a25074b24bee15b20f languageName: node linkType: hard @@ -3955,10 +3961,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.11.0": - version: 15.11.0 - resolution: "globals@npm:15.11.0" - checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c +"globals@npm:15.12.0": + version: 15.12.0 + resolution: "globals@npm:15.12.0" + checksum: 10c0/f34e0a1845b694f45188331742af9f488b07ba7440a06e9d2039fce0386fbbfc24afdbb9846ebdccd4092d03644e43081c49eb27b30f4b88e43af156e1c1dc34 languageName: node linkType: hard @@ -4138,10 +4144,10 @@ __metadata: languageName: node linkType: hard -"immutable@npm:^4.0.0": - version: 4.3.7 - resolution: "immutable@npm:4.3.7" - checksum: 10c0/9b099197081b22f6433003e34929da8ecddbbdc1474cdc8aa3b7669dee4adda349c06143de22def36016d1b6de5322b043eccd7a11db1dad2ca85dad4fff5435 +"immutable@npm:^5.0.2": + version: 5.0.2 + resolution: "immutable@npm:5.0.2" + checksum: 10c0/0d97ad95384e49563b6ed68f90e5ea83c149fd96ff417fae8274e1c524e3ef800eb1a2e8009e29d9b8ffdf63affd7692f87c8af72714181aad8dca88747fb5ac languageName: node linkType: hard @@ -4366,31 +4372,31 @@ __metadata: "@babel/cli": "npm:7.25.9" "@babel/core": "npm:7.26.0" "@babel/preset-env": "npm:7.26.0" - "@eslint/js": "npm:9.14.0" + "@eslint/js": "npm:9.15.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.14.0" + eslint: "npm:9.15.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" - globals: "npm:15.11.0" + globals: "npm:15.12.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" jquery: "npm:3.7.1" lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.9.2" - postcss: "npm:8.4.47" + postcss: "npm:8.4.49" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.9" + postcss-preset-env: "npm:10.1.1" postcss-scss: "npm:4.0.9" - prettier: "npm:3.3.3" - sass: "npm:1.80.6" + prettier: "npm:3.4.1" + sass: "npm:1.81.0" sass-loader: "npm:16.0.3" - sortablejs: "npm:1.15.3" + sortablejs: "npm:1.15.6" style-loader: "npm:4.0.0" - stylelint: "npm:16.10.0" + stylelint: "npm:16.11.0" stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" @@ -4571,10 +4577,10 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.34.0": - version: 0.34.0 - resolution: "known-css-properties@npm:0.34.0" - checksum: 10c0/8549969f02b1858554e89faf4548ece37625d0d21b42e8d54fa53184e68e1512ef2531bb15941575ad816361ab7447b598c1b18c1b96ce0a868333d1a68f2e2c +"known-css-properties@npm:^0.35.0": + version: 0.35.0 + resolution: "known-css-properties@npm:0.35.0" + checksum: 10c0/04a4a2859d62670bb25b5b28091a1f03f6f0d3298a5ed3e7476397c5287b98c434f6dd9c004a0c67a53b7f21acc93f83c972e98c122f568d4d0bd21fd2b90fb6 languageName: node linkType: hard @@ -4756,10 +4762,10 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.10.0": - version: 2.10.0 - resolution: "mdn-data@npm:2.10.0" - checksum: 10c0/f6f1a6a6eb092bab250d06f6f6c7cb1733a77a17e7119aac829ad67d4322bbf6a30df3c6d88686e71942e66bd49274b2ddfede22a1d3df0d6c49a56fbd09eb7c +"mdn-data@npm:2.12.1": + version: 2.12.1 + resolution: "mdn-data@npm:2.12.1" + checksum: 10c0/1a09f441bdd423f2b0ab712665a1a3329fe7b15e9a2dad8c1c10c521ddb204ed186e7ac91052fd53a5ae0a07ac6eae53b5bcbb59ba8a1fb654268611297eea4a languageName: node linkType: hard @@ -5241,10 +5247,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard @@ -5337,18 +5343,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.5": - version: 7.0.5 - resolution: "postcss-color-functional-notation@npm:7.0.5" +"postcss-color-functional-notation@npm:^7.0.6": + version: 7.0.6 + resolution: "postcss-color-functional-notation@npm:7.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5e1771b8a43abd3cb18142842e8ac100b205f37a6757d6686da49e0c61ecf33d09244d256f3802962105e7ef79fbde2dffbfc1eedf1700198c54d2d5e48f3dc1 + checksum: 10c0/15f6dfc9a24d6f5186fb054623a92bcf9e804f4eaa35b339551a8048cdb0c7bd2e4655fdbb09a0c9a89f854e9fb1d71e298e8749597660ac034e79bd0d38d7dd languageName: node linkType: hard @@ -5559,18 +5565,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.5": - version: 7.0.5 - resolution: "postcss-lab-function@npm:7.0.5" +"postcss-lab-function@npm:^7.0.6": + version: 7.0.6 + resolution: "postcss-lab-function@npm:7.0.6" dependencies: - "@csstools/css-color-parser": "npm:^3.0.5" + "@csstools/css-color-parser": "npm:^3.0.6" "@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b688f6332ac12974452c97c5a40f4d0a604ce16b074124a1106add9cf9c25fbe7717d23423d6e92d937dc6e288e03e885b70e0793b96f41d28d2f7403bce7bf5 + checksum: 10c0/8b8d498dbc939ee79737b29232b39d09cbda26cc92e8926fb74fe56a1bb05af1198e85a67a822f39cc69109ac6757a6ff7b20842ba5ffafce891abc9bc1c3c68 languageName: node linkType: hard @@ -5887,19 +5893,19 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.9": - version: 10.0.9 - resolution: "postcss-preset-env@npm:10.0.9" +"postcss-preset-env@npm:10.1.1": + version: 10.1.1 + resolution: "postcss-preset-env@npm:10.1.1" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.1" - "@csstools/postcss-color-function": "npm:^4.0.5" - "@csstools/postcss-color-mix-function": "npm:^3.0.5" + "@csstools/postcss-color-function": "npm:^4.0.6" + "@csstools/postcss-color-mix-function": "npm:^3.0.6" "@csstools/postcss-content-alt-text": "npm:^2.0.4" - "@csstools/postcss-exponential-functions": "npm:^2.0.4" + "@csstools/postcss-exponential-functions": "npm:^2.0.5" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.5" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.5" - "@csstools/postcss-hwb-function": "npm:^4.0.5" + "@csstools/postcss-gamut-mapping": "npm:^2.0.6" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.6" + "@csstools/postcss-hwb-function": "npm:^4.0.6" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.1" @@ -5909,27 +5915,29 @@ __metadata: "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" "@csstools/postcss-logical-viewport-units": "npm:^3.0.3" - "@csstools/postcss-media-minmax": "npm:^2.0.4" + "@csstools/postcss-media-minmax": "npm:^2.0.5" "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.4" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.5" + "@csstools/postcss-oklab-function": "npm:^4.0.6" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.5" + "@csstools/postcss-random-function": "npm:^1.0.1" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.6" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.4" + "@csstools/postcss-sign-functions": "npm:^1.1.0" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.5" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.4" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.5" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" css-blank-pseudo: "npm:^7.0.1" css-has-pseudo: "npm:^7.0.1" css-prefers-color-scheme: "npm:^10.0.0" - cssdb: "npm:^8.1.2" + cssdb: "npm:^8.2.1" postcss-attribute-case-insensitive: "npm:^7.0.1" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.5" + postcss-color-functional-notation: "npm:^7.0.6" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" postcss-custom-media: "npm:^11.0.5" @@ -5942,7 +5950,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.5" + postcss-lab-function: "npm:^7.0.6" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.1" postcss-opacity-percentage: "npm:^3.0.0" @@ -5954,7 +5962,7 @@ __metadata: postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/985ef4cfd2dd6a94d8a802db8e392c4b4c47ae0de8fd5224c60d8172cac3d7ce9011e63ab80470cddc77f21f09b2be850f97ac2478f651bc0a8956b538b079fe + checksum: 10c0/99931117735a66827c7318be023ddb614990457617ccbe7fd2fdc1f10345554652df180d4842768d68d57e14fc0be4d86d0b413c65e77e02db5511e57ed07c4f languageName: node linkType: hard @@ -6087,14 +6095,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": - version: 8.4.47 - resolution: "postcss@npm:8.4.47" +"postcss@npm:8.4.49, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" dependencies: nanoid: "npm:^3.3.7" - picocolors: "npm:^1.1.0" + picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 + checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 languageName: node linkType: hard @@ -6105,12 +6113,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.3.3": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" +"prettier@npm:3.4.1": + version: 3.4.1 + resolution: "prettier@npm:3.4.1" bin: prettier: bin/prettier.cjs - checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 + checksum: 10c0/2d6cc3101ad9de72b49c59339480b0983e6ff6742143da0c43f476bf3b5ef88ede42ebd9956d7a0a8fa59f7a5990e8ef03c9ad4c37f7e4c9e5db43ee0853156c languageName: node linkType: hard @@ -6373,20 +6381,20 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.6": - version: 1.80.6 - resolution: "sass@npm:1.80.6" +"sass@npm:1.81.0": + version: 1.81.0 + resolution: "sass@npm:1.81.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" - immutable: "npm:^4.0.0" + immutable: "npm:^5.0.2" source-map-js: "npm:>=0.6.2 <2.0.0" dependenciesMeta: "@parcel/watcher": optional: true bin: sass: sass.js - checksum: 10c0/04ce40d4dcf06cf2a94a66c1cc4fd4a9eb4033fd039291acd0be9d1d4123860da568c5cbef9de8493ffbedd8acae1cd0b8346f5da21c6f7cf0ffd3477730beca + checksum: 10c0/9c59b3c9b4231c18fcb4583cc232dbc4de501ddc11101b7a025e44833e3f3ce6031546dc1cd109ee9f04ebcfb1fe30ff870810af33b8feb9aa9e36dfba9ec1ef languageName: node linkType: hard @@ -6534,10 +6542,10 @@ __metadata: languageName: node linkType: hard -"sortablejs@npm:1.15.3": - version: 1.15.3 - resolution: "sortablejs@npm:1.15.3" - checksum: 10c0/dfd79a7dd7041fe1080d58d2191cd4df62cfc9912bbb4069f295fb2c5f23eb31112931614faddce7011d30fe784d26af3416c94182e02bcf4f6274509b60242e +"sortablejs@npm:1.15.6": + version: 1.15.6 + resolution: "sortablejs@npm:1.15.6" + checksum: 10c0/a75dcf53e5613b4106d46434e40114830f9c6449b3b439bc1925c1fbf0a0c1f044727a8f3d4ae1759fa7beaa33e7eb0c4a413e6aa88d6026577b59f3658ff727 languageName: node linkType: hard @@ -6688,20 +6696,20 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.10.0": - version: 16.10.0 - resolution: "stylelint@npm:16.10.0" +"stylelint@npm:16.11.0": + version: 16.11.0 + resolution: "stylelint@npm:16.11.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" - "@csstools/selector-specificity": "npm:^4.0.0" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + "@csstools/media-query-list-parser": "npm:^4.0.2" + "@csstools/selector-specificity": "npm:^5.0.0" "@dual-bundle/import-meta-resolve": "npm:^4.1.0" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" css-functions-list: "npm:^3.2.3" - css-tree: "npm:^3.0.0" + css-tree: "npm:^3.0.1" debug: "npm:^4.3.7" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" @@ -6713,16 +6721,16 @@ __metadata: ignore: "npm:^6.0.2" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" - known-css-properties: "npm:^0.34.0" + known-css-properties: "npm:^0.35.0" mathml-tag-names: "npm:^2.1.3" meow: "npm:^13.2.0" micromatch: "npm:^4.0.8" normalize-path: "npm:^3.0.0" - picocolors: "npm:^1.0.1" - postcss: "npm:^8.4.47" + picocolors: "npm:^1.1.1" + postcss: "npm:^8.4.49" postcss-resolve-nested-selector: "npm:^0.1.6" postcss-safe-parser: "npm:^7.0.1" - postcss-selector-parser: "npm:^6.1.2" + postcss-selector-parser: "npm:^7.0.0" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" @@ -6732,7 +6740,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/d07dd156c225d16c740995daacd78090f7fc317602e87bda2fca323a4ae427a8526d724f3089df3b2185df4520f987547668ceea9b30985988ccbc514034aa21 + checksum: 10c0/65638247fb4e5eacb032e3a98412a13ad8b343d2d58e22d61b96ada72808b5b7e736c845937b3bcfde04c0bfa2120383b507e530afe876dafe824a93c337258f languageName: node linkType: hard @@ -6865,13 +6873,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - "tippy.js@npm:6.3.7": version: 6.3.7 resolution: "tippy.js@npm:6.3.7"