diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 86d55282ebba..3bb991579de8 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -16,11 +16,11 @@ jobs: is-rc: ${{ steps.set-version.outputs.is-rc }} steps: - uses: actions/checkout@v4 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: "temurin" - java-version: 11 + java-version: 17 cache: "maven" - name: Set version id: set-version diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e6dbffdda9d..77c012b44c68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ This page provides information about contributing code to the Jenkins core codeb 1. Fork the repository on GitHub 2. Clone the forked repository to your machine 3. Install the necessary development tools. In order to develop Jenkins, you need the following: - - Java Development Kit (JDK) 11 or 17. + - Java Development Kit (JDK) 11, 17 or 21. In the Jenkins project we usually use [Eclipse Temurin](https://adoptium.net/) or [OpenJDK](https://openjdk.java.net/), but you can use other JDKs as well. - Apache Maven 3.8.1 or above. You can [download Maven here](https://maven.apache.org/download.cgi). In the Jenkins project we usually use the most recent Maven release. diff --git a/bom/pom.xml b/bom/pom.xml index 28a945e2321e..4ecb6251acea 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -22,7 +22,7 @@ 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. --> - + 4.0.0 @@ -39,7 +39,7 @@ THE SOFTWARE. 9.6 - 2.0.9 + 2.0.10 1822.v120278426e1c 2.4.21 @@ -64,7 +64,7 @@ THE SOFTWARE. org.springframework.security spring-security-bom - 5.8.8 + 5.8.9 pom import @@ -82,7 +82,7 @@ THE SOFTWARE. com.google.guava guava - 32.1.3-jre + 33.0.0-jre @@ -196,9 +196,9 @@ THE SOFTWARE. ${groovy.version} - org.connectbot.jbcrypt + org.connectbot jbcrypt - 1.0.0 + 1.0.2 diff --git a/cli/pom.xml b/cli/pom.xml index 21aabc88e649..50588e3e692b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -1,5 +1,5 @@ - + 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 45539865962a..4280e9075da9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -23,7 +23,7 @@ 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. --> - + 4.0.0 @@ -282,7 +282,7 @@ THE SOFTWARE. groovy-all - org.connectbot.jbcrypt + org.connectbot jbcrypt diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index cdc057ef9c54..1da338d6e549 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -28,6 +28,7 @@ import static hudson.Util.fileToPath; import static hudson.Util.fixEmpty; +import static hudson.Util.fixEmptyAndTrim; import com.google.common.annotations.VisibleForTesting; import com.jcraft.jzlib.GZIPInputStream; @@ -962,7 +963,7 @@ public Void invoke(File dir, VirtualChannel channel) throws IOException { * * * @param archive - * The resource that represents the tgz/zip file. This URL must support the {@code Last-Modified} header. + * The resource that represents the tgz/zip file. This URL must support the {@code Last-Modified} header or the {@code ETag} header. * (For example, you could use {@link ClassLoader#getResource}.) * @param listener * If non-null, a message will be printed to this listener once this method decides to @@ -984,12 +985,18 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen try { FilePath timestamp = this.child(".timestamp"); long lastModified = timestamp.lastModified(); + // https://httpwg.org/specs/rfc9110.html#field.etag is the ETag specification + // Read previously stored ETag if timestamp is available + String etag = timestamp.exists() ? fixEmptyAndTrim(timestamp.readToString()) : null; URLConnection con; try { con = ProxyConfiguration.open(archive); if (lastModified != 0) { con.setIfModifiedSince(lastModified); } + if (etag != null) { + con.setRequestProperty("If-None-Match", etag); + } con.connect(); } catch (IOException x) { if (this.exists()) { @@ -1016,7 +1023,7 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen return false; } } - if (lastModified != 0) { + if (lastModified != 0 || etag != null) { if (responseCode == HttpURLConnection.HTTP_NOT_MODIFIED) { return false; } else if (responseCode != HttpURLConnection.HTTP_OK) { @@ -1027,8 +1034,12 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen } long sourceTimestamp = con.getLastModified(); + String resultEtag = fixEmptyAndTrim(con.getHeaderField("ETag")); if (this.exists()) { + if (equalETags(etag, resultEtag)) { + return false; // already up to date + } if (lastModified != 0 && sourceTimestamp == lastModified) return false; // already up to date this.deleteContents(); @@ -1042,6 +1053,10 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen // First try to download from the agent machine. try { act(new Unpack(archive)); + if (resultEtag != null && !equalETags(etag, resultEtag)) { + /* Store the ETag value in the timestamp file for later use */ + timestamp.write(resultEtag, "UTF-8"); + } timestamp.touch(sourceTimestamp); return true; } catch (IOException x) { @@ -1061,6 +1076,10 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen throw new IOException(String.format("Failed to unpack %s (%d bytes read of total %d)", archive, cis.getByteCount(), con.getContentLength()), e); } + if (resultEtag != null && !equalETags(etag, resultEtag)) { + /* Store the ETag value in the timestamp file for later use */ + timestamp.write(resultEtag, "UTF-8"); + } timestamp.touch(sourceTimestamp); return true; } catch (IOException e) { @@ -1068,6 +1087,25 @@ private boolean installIfNecessaryFrom(@NonNull URL archive, @NonNull TaskListen } } + /* Return true if etag1 equals etag2 as defined by the etag specification + https://httpwg.org/specs/rfc9110.html#field.etag + */ + private boolean equalETags(String etag1, String etag2) { + if (etag1 == null || etag2 == null) { + return false; + } + if (etag1.equals(etag2)) { + return true; + } + /* Weak tags are identified by leading characters "W/" as a marker */ + /* Weak tag marker must not be considered in tag comparison. + This implements the weak comparison in the specification at + https://httpwg.org/specs/rfc9110.html#field.etag */ + String opaqueTag1 = etag1.startsWith("W/") ? etag1.substring(2) : etag1; + String opaqueTag2 = etag2.startsWith("W/") ? etag2.substring(2) : etag2; + return opaqueTag1.equals(opaqueTag2); + } + // this reads from arbitrary URL private static final class Unpack extends MasterToSlaveFileCallable { private final URL archive; diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 0d5786815ed0..9cc4659ef33b 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -692,13 +692,13 @@ public static String getUserTimeZone() { } @Restricted(NoExternalUse.class) - public static String getUserTimeZonePostfix() { + public static String getUserTimeZonePostfix(Date date) { if (!isUserTimeZoneOverride()) { return ""; } TimeZone tz = TimeZone.getTimeZone(getUserTimeZone()); - return tz.getDisplayName(tz.observesDaylightTime(), TimeZone.SHORT); + return tz.getDisplayName(tz.inDaylightTime(date), TimeZone.SHORT, getCurrentLocale()); } @Restricted(NoExternalUse.class) diff --git a/core/src/main/java/hudson/cli/declarative/CLIMethod.java b/core/src/main/java/hudson/cli/declarative/CLIMethod.java index 7b9c35202bb9..3a6bc3c7f2c9 100644 --- a/core/src/main/java/hudson/cli/declarative/CLIMethod.java +++ b/core/src/main/java/hudson/cli/declarative/CLIMethod.java @@ -28,12 +28,12 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; import hudson.cli.CLICommand; -import hudson.util.ListBoxModel.Option; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import org.jvnet.hudson.annotation_indexer.Indexed; import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; /** * Annotates methods on model objects to expose them as CLI commands. diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index 3e11407ef6ba..4645f3ffbeeb 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -53,11 +53,11 @@ * @author Stephen Connolly * @author Kohsuke Kawaguchi */ +@SuppressWarnings("deprecation") // see comments about CasC public class JNLPLauncher extends ComputerLauncher { /** * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. */ - @DataBoundSetter @CheckForNull public String tunnel; @@ -67,11 +67,9 @@ public class JNLPLauncher extends ComputerLauncher { @Deprecated public final transient String vmargs = null; - @Deprecated @NonNull private RemotingWorkDirSettings workDirSettings = RemotingWorkDirSettings.getEnabledDefaults(); - @Deprecated private boolean webSocket; /** @@ -131,7 +129,9 @@ protected Object readResolve() { return this; } - @Deprecated + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ public RemotingWorkDirSettings getWorkDirSettings() { return workDirSettings; } @@ -149,7 +149,9 @@ public boolean isLaunchSupported() { return false; } - @Deprecated + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ public boolean isWebSocket() { return webSocket; } @@ -162,6 +164,21 @@ public void setWebSocket(boolean webSocket) { this.webSocket = webSocket; } + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ + public String getTunnel() { + return tunnel; + } + + /** + * Deprecated (only used with deprecated {@code -jnlpUrl} mode), but cannot mark it as such without breaking CasC. + */ + @DataBoundSetter + public void setTunnel(String tunnel) { + this.tunnel = tunnel; + } + @Override public void launch(SlaveComputer computer, TaskListener listener) { // do nothing as we cannot self start diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index 6f09e8109973..ef6e3d0c8658 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -169,6 +169,11 @@ public boolean isManualLaunchAllowed(final SlaveComputer c) { return isOnlineScheduled(); } + @Override + public boolean isAcceptingTasks(SlaveComputer c) { + return isOnlineScheduled(); + } + @Override @GuardedBy("hudson.model.Queue.lock") public synchronized long check(final SlaveComputer c) { @@ -191,7 +196,6 @@ public void run() { LOGGER.log(INFO, "Enabling new jobs for computer {0} as it has started its scheduled uptime", new Object[]{c.getName()}); - c.setAcceptingTasks(true); } } catch (InterruptedException | ExecutionException e) { } @@ -199,45 +203,44 @@ public void run() { }); } } else if (!shouldBeOnline && c.isOnline()) { - if (keepUpWhenActive) { - if (!c.isIdle() && c.isAcceptingTasks()) { - c.setAcceptingTasks(false); - LOGGER.log(INFO, - "Disabling new jobs for computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - return 1; - } else if (c.isIdle() && c.isAcceptingTasks()) { - Queue.withLock(new Runnable() { - @Override - public void run() { - if (c.isIdle()) { - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - c.disconnect(OfflineCause - .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); - } else { - c.setAcceptingTasks(false); + if (c.isLaunchSupported()) { + if (keepUpWhenActive) { + if (!c.isIdle() && c.isAcceptingTasks()) { + LOGGER.log(INFO, + "Disabling new jobs for computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + return 1; + } else if (c.isIdle() && c.isAcceptingTasks()) { + Queue.withLock(new Runnable() { + @Override + public void run() { + if (c.isIdle()) { + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + c.disconnect(OfflineCause + .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + } } - } - }); - } else if (c.isIdle() && !c.isAcceptingTasks()) { - Queue.withLock(new Runnable() { - @Override - public void run() { - if (c.isIdle()) { - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished all jobs running when " - + "it completed its scheduled uptime", new Object[]{c.getName()}); - c.disconnect(OfflineCause - .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + }); + } else if (c.isIdle() && !c.isAcceptingTasks()) { + Queue.withLock(new Runnable() { + @Override + public void run() { + if (c.isIdle()) { + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished all jobs running when " + + "it completed its scheduled uptime", new Object[]{c.getName()}); + c.disconnect(OfflineCause + .create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); + } } - } - }); + }); + } + } else { + // no need to get the queue lock as the user has selected the break builds option! + LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", + new Object[]{c.getName()}); + c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } - } else { - // no need to get the queue lock as the user has selected the break builds option! - LOGGER.log(INFO, "Disconnecting computer {0} as it has finished its scheduled uptime", - new Object[]{c.getName()}); - c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } } return 1; diff --git a/core/src/main/java/hudson/util/AtomicFileWriter.java b/core/src/main/java/hudson/util/AtomicFileWriter.java index 4e871b3262f0..fabe15c5a6b6 100644 --- a/core/src/main/java/hudson/util/AtomicFileWriter.java +++ b/core/src/main/java/hudson/util/AtomicFileWriter.java @@ -26,11 +26,13 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +import hudson.Functions; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.lang.ref.Cleaner; +import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.AtomicMoveNotSupportedException; @@ -62,6 +64,9 @@ public class AtomicFileWriter extends Writer { private static /* final */ boolean DISABLE_FORCED_FLUSH = SystemProperties.getBoolean( AtomicFileWriter.class.getName() + ".DISABLE_FORCED_FLUSH"); + private static /* final */ boolean REQUIRES_DIR_FSYNC = SystemProperties.getBoolean( + AtomicFileWriter.class.getName() + ".REQUIRES_DIR_FSYNC", !Functions.isWindows()); + static { if (DISABLE_FORCED_FLUSH) { LOGGER.log(Level.WARNING, "DISABLE_FORCED_FLUSH flag used, this could result in dataloss if failures happen in your storage subsystem."); @@ -234,6 +239,18 @@ public void commit() throws IOException { throw replaceFailed; } } + + /* + * From fsync(2) on Linux: + * + * Calling fsync() does not necessarily ensure that the entry in the directory containing the file has also + * reached disk. For that an explicit fsync() on a file descriptor for the directory is also needed. + */ + if (!DISABLE_FORCED_FLUSH && REQUIRES_DIR_FSYNC) { + try (FileChannel parentChannel = FileChannel.open(destPath.getParent())) { + parentChannel.force(true); + } + } } private static final class CleanupChecker implements Runnable { diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index ec4d2ab97883..1725b24b6fbc 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -56,8 +56,8 @@ THE SOFTWARE. - - + +
@@ -123,6 +123,7 @@ THE SOFTWARE.
S
+ diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index e0721b8fd0af..96950428fee4 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -119,8 +119,8 @@ Executor.NotAvailable=N/A FreeStyleProject.DisplayName=Freestyle project FreeStyleProject.Description=\ - This is the central feature of Jenkins. Jenkins will build your project, combining any SCM with any build system, \ - and this can be even used for something other than software build. + Classic, general-purpose job type that checks out from up to one SCM, executes build steps serially, \ + followed by post-build steps like archiving artifacts and sending email notifications. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_bg.properties b/core/src/main/resources/hudson/model/Messages_bg.properties index b6468b07f70e..8117419f0a71 100644 --- a/core/src/main/resources/hudson/model/Messages_bg.properties +++ b/core/src/main/resources/hudson/model/Messages_bg.properties @@ -163,11 +163,6 @@ Executor.NotAvailable=\ FreeStyleProject.DisplayName=\ Потребителска задача -FreeStyleProject.Description=\ - Това е основна функционалност в Jenkins. Jenkins може да изгради проект като\ - комбинира произволна система за управление на версиите с произволна система за\ - изграждане на проект. Това ви позволява да ползвате Jenkins и за различни от\ - основната му цели. Hudson.BadPortNumber=\ diff --git a/core/src/main/resources/hudson/model/Messages_ca.properties b/core/src/main/resources/hudson/model/Messages_ca.properties index c92afa092c78..c952bcda1e90 100644 --- a/core/src/main/resources/hudson/model/Messages_ca.properties +++ b/core/src/main/resources/hudson/model/Messages_ca.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Configuració de Jenkins -FreeStyleProject.Description=Aquesta és la funcionalitat principal de Jenkins. Jenkins farà un build del vostre projecte combinant qualsevol SCM amb qualsevol sistema de build. Això també es pot usar per tasques que no siguin un build de software diff --git a/core/src/main/resources/hudson/model/Messages_cs.properties b/core/src/main/resources/hudson/model/Messages_cs.properties index 7ae3f033c417..6efe7371a14d 100644 --- a/core/src/main/resources/hudson/model/Messages_cs.properties +++ b/core/src/main/resources/hudson/model/Messages_cs.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Administrace -FreeStyleProject.Description=Toto je hlavní funkce Jenkins. Jenkins sestaví váš projekt, spojí jakýkoli systém pro správu verzí se systémem pro sestavení. Nemusí být použit jen pro sestavení softwaru. diff --git a/core/src/main/resources/hudson/model/Messages_da.properties b/core/src/main/resources/hudson/model/Messages_da.properties index c4818f58b170..9047645c5c27 100644 --- a/core/src/main/resources/hudson/model/Messages_da.properties +++ b/core/src/main/resources/hudson/model/Messages_da.properties @@ -59,7 +59,6 @@ Run.Summary.BrokenForALongTime=fejlet længe CLI.safe-restart.shortDescription=Sikker genstart af Jenkins FreeStyleProject.DisplayName=Byg et free-style projekt -FreeStyleProject.Description=Dette er den centrale feature i Jenkins. Jenkins vil bygge dit projekt i enhver kombination af kildekodestyring (SCM) med ethvert byggesystem og dette kan bruges til meget andet end at bygge software. ProxyView.DisplayName=Inkluder en global visning Run.Permissions.Title=Kør diff --git a/core/src/main/resources/hudson/model/Messages_de.properties b/core/src/main/resources/hudson/model/Messages_de.properties index 917c6238b57e..e03f38f6403b 100644 --- a/core/src/main/resources/hudson/model/Messages_de.properties +++ b/core/src/main/resources/hudson/model/Messages_de.properties @@ -114,7 +114,9 @@ Executor.NotAvailable=nicht verfügbar FreeStyleProject.DisplayName="Free Style"-Softwareprojekt bauen -FreeStyleProject.Description=Dieses Profil ist das meistgenutzte in Jenkins. Jenkins baut Ihr Projekt, wobei Sie universell jedes SCM System mit jedem Build-Verfahren kombinieren können. Dieses Profil ist nicht nur auf das Bauen von Software beschränkt, sondern kann darüber hinaus auch für weitere Anwendungsgebiete verwendet werden. +FreeStyleProject.Description=Der klassische, generische Projekt-Typ in Jenkins. Ein Build kann ein SCM auschecken, \ + verschiedene Buildschritte nacheinander ausführen und anschließend Post-Build-Aktionen, wie E-Mailversand oder \ + Archivierung von Artefakten, durchführen. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_es.properties b/core/src/main/resources/hudson/model/Messages_es.properties index d57de3106e8e..f725a5070e39 100644 --- a/core/src/main/resources/hudson/model/Messages_es.properties +++ b/core/src/main/resources/hudson/model/Messages_es.properties @@ -72,7 +72,6 @@ Executor.NotAvailable=N/D FreeStyleProject.DisplayName=Crear un proyecto de estilo libre -FreeStyleProject.Description=Esta es la característica principal de Jenkins, la de ejecutar el proyecto combinando cualquier tipo de repositorio de software (SCM) con cualquier modo de construcción o ejecución (make, ant, mvn, rake, script ...). Por tanto se podrá tanto compilar y empaquetar software, como ejecutar cualquier proceso que requiera monitorización. Hudson.BadPortNumber=Número erróneo de puerto {0} Hudson.Computer.Caption=Principal diff --git a/core/src/main/resources/hudson/model/Messages_et.properties b/core/src/main/resources/hudson/model/Messages_et.properties index 72f77a12ac0c..67e791fe6163 100644 --- a/core/src/main/resources/hudson/model/Messages_et.properties +++ b/core/src/main/resources/hudson/model/Messages_et.properties @@ -1,2 +1 @@ -FreeStyleProject.Description=See on Jenkinsi põhifunktsioon! Jenkins ehitab su projekti, kombineerides sinu versioonihalduse mistahes ehitusprotsessiga. Sa võid seda kasutada ka muudeks asjadeks kui tarkvara ehitamine. ParametersDefinitionProperty.BuildButtonText=Bild diff --git a/core/src/main/resources/hudson/model/Messages_fi.properties b/core/src/main/resources/hudson/model/Messages_fi.properties index 3b101c72919e..b059ff22aac8 100644 --- a/core/src/main/resources/hudson/model/Messages_fi.properties +++ b/core/src/main/resources/hudson/model/Messages_fi.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Hallitse Jenkinsia -FreeStyleProject.Description=Tämä on Jenkins tärkein ominaisuus. Jenkins rakentaa projektisi käyttäen versionhallintaa ja buildijärjestelmiä. Voit käyttää tätä myös muuhun kuin ohjelmien kääntämiseen. diff --git a/core/src/main/resources/hudson/model/Messages_fr.properties b/core/src/main/resources/hudson/model/Messages_fr.properties index 073805ad5139..f2a938f9c9e4 100644 --- a/core/src/main/resources/hudson/model/Messages_fr.properties +++ b/core/src/main/resources/hudson/model/Messages_fr.properties @@ -113,7 +113,6 @@ Descriptor.From=(de {0}< Executor.NotAvailable=N/A FreeStyleProject.DisplayName=Construire un projet free-style -FreeStyleProject.Description=Ceci est la fonction principale de Jenkins qui sert à builder (construire) votre projet. Vous pouvez intégrer tous les outils de gestion de version avec tous les systèmes de build. Il est même possible d''utiliser Jenkins pour toute autre chose qu''un build logiciel. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_it.properties b/core/src/main/resources/hudson/model/Messages_it.properties index 23938f9ea828..b61b7fe92c18 100644 --- a/core/src/main/resources/hudson/model/Messages_it.properties +++ b/core/src/main/resources/hudson/model/Messages_it.properties @@ -160,11 +160,6 @@ Descriptor.From=(da {0}) Executor.NotAvailable=N/D FileParameterDefinition.DisplayName=Parametro file FileParameterValue.IndexTitle=Parametri file -FreeStyleProject.Description=Questa è la funzionalità principale di Jenkins. \ - Jenkins eseguirà la compilazione del progetto, combinando qualunque sistema \ - di gestione del codice sorgente con qualunque sistema di compilazione, e \ - questo progetto può essere anche utilizzato per compiti diversi dalla \ - compilazione di software. FreeStyleProject.DisplayName=Progetto libero HealthReport.EmptyString= Hudson.AdministerPermission.Description=Questo permesso concede la capacità \ diff --git a/core/src/main/resources/hudson/model/Messages_ja.properties b/core/src/main/resources/hudson/model/Messages_ja.properties index 475606108217..155fed39f632 100644 --- a/core/src/main/resources/hudson/model/Messages_ja.properties +++ b/core/src/main/resources/hudson/model/Messages_ja.properties @@ -85,10 +85,6 @@ Executor.NotAvailable=N/A FreeStyleProject.DisplayName=フリースタイル・プロジェクトのビルド -FreeStyleProject.Description=\ - もっとも汎用性の高いJenkinsの中核機能です。任意のSCMからソースコードをチェックアウトし、\ - 任意のビルドシステムでプロジェクトがビルドできます。往々にして、ソフトウェアのビルド以外にも\ - 様々な仕事の自動化に利用することができます。 HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_ko.properties b/core/src/main/resources/hudson/model/Messages_ko.properties index 1b1194608e72..53667c659a42 100644 --- a/core/src/main/resources/hudson/model/Messages_ko.properties +++ b/core/src/main/resources/hudson/model/Messages_ko.properties @@ -1,5 +1,4 @@ ManageJenkinsAction.DisplayName=Jenkins 관리 ParametersDefinitionProperty.DisplayName=이 빌드는 매개변수가 있습니다 -FreeStyleProject.Description=이것은 Jenkins의 주요 기능입니다. Jenkins은 어느 빌드 시스템과 어떤 SCM(형상관리)으로 묶인 당신의 프로젝트를 빌드할 것이고, 소프트웨어 빌드보다 다른 어떤 것에 자주 사용될 수 있습니다. ParametersDefinitionProperty.BuildButtonText=매개변수가 필요한 빌드입니다. diff --git a/core/src/main/resources/hudson/model/Messages_lt.properties b/core/src/main/resources/hudson/model/Messages_lt.properties index 3248fdb97d67..dc319685ad2a 100644 --- a/core/src/main/resources/hudson/model/Messages_lt.properties +++ b/core/src/main/resources/hudson/model/Messages_lt.properties @@ -85,9 +85,6 @@ Descriptor.From=(iš {0}) Executor.NotAvailable=Nėra FreeStyleProject.DisplayName=Laisvo stiliaus projektas -FreeStyleProject.Description=\ - Pagrindinė Jenkinso funkcija. Jenkinsas sukurs jūsų projektą, kombinuojant bet kokią SCM su bet kokia kūrimo sistema, \ - ir visa tai galima naudoti nebūtinai programų kūrimui. HealthReport.EmptyString= diff --git a/core/src/main/resources/hudson/model/Messages_nb_NO.properties b/core/src/main/resources/hudson/model/Messages_nb_NO.properties index fa756d519fe5..99ac81854dbe 100644 --- a/core/src/main/resources/hudson/model/Messages_nb_NO.properties +++ b/core/src/main/resources/hudson/model/Messages_nb_NO.properties @@ -1,4 +1,3 @@ ManageJenkinsAction.DisplayName=Konfigurer Jenkins ParametersDefinitionProperty.DisplayName=Denne build har parametre -FreeStyleProject.Description=Dette er en sentral egenskap ved Jenkins. Jenkins bygger dine prosjekter, kombinerer SCM (Source Control Management - Kildekodekontrollsystem ) med forskjellige byggsystemer og denne kan også brukes til mer enn bare å bygge applikasjoner. diff --git a/core/src/main/resources/hudson/model/Messages_nl.properties b/core/src/main/resources/hudson/model/Messages_nl.properties index 2e81c05617b4..1ce8a56458d4 100644 --- a/core/src/main/resources/hudson/model/Messages_nl.properties +++ b/core/src/main/resources/hudson/model/Messages_nl.properties @@ -49,7 +49,6 @@ Executor.NotAvailable=Niet beschikbaar FreeStyleProject.DisplayName=Bouw een vrije stijl type software project -FreeStyleProject.Description=Dit is de basisfunctionaliteit van Jenkins. Bij dit type project kun je gebruik maken van een willekeurige combinatie van versiebeheer- en bouwsysteem. Je zou Jenkins zelfs kunnen gebruiken voor andere zaken dan het bouwen van software. Hudson.BadPortNumber=Verkeerd poortnummer {0} Hudson.Computer.Caption=Hoofdnode diff --git a/core/src/main/resources/hudson/model/Messages_pl.properties b/core/src/main/resources/hudson/model/Messages_pl.properties index a9d2c94080d5..4da9a364a8da 100644 --- a/core/src/main/resources/hudson/model/Messages_pl.properties +++ b/core/src/main/resources/hudson/model/Messages_pl.properties @@ -68,7 +68,6 @@ UpdateCenter.Status.CheckingJavaNet=Sprawdzanie połączenia z centrum aktualiza UpdateCenter.Status.Success=Zakończono MyViewsProperty.DisplayName=Moje widoki MyViewsProperty.GlobalAction.DisplayName=Moje widoki -FreeStyleProject.Description=To jest podstawowa funkcja Jenkinsa. Jenkins stworzy projekt łączący dowolny SCM z dowolnym systemem budującym, może to być również wykorzystane do czegoś innego niż budowanie oprogramowania. FreeStyleProject.DisplayName=Ogólny projekt Node.Mode.NORMAL=Wykorzystuj ten węzeł tak bardzo, jak to tylko możliwe ComputerSet.DisplayName=Węzły diff --git a/core/src/main/resources/hudson/model/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/Messages_pt_BR.properties index 9643b131f2a9..f07c6fc49da0 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_BR.properties @@ -45,9 +45,6 @@ BallColor.Success=Sucesso BallColor.Unstable=Instável Executor.NotAvailable=N/D FreeStyleProject.DisplayName=Construir um projeto de software de estilo livre. -FreeStyleProject.Description=Esta é a central de funcionalidades do Jenkins. Ela construirá seu projeto e você pode \ - combinar qualquer SCM com qualquer sistema de construção, e ele até mesmo pode ser usado para outras tarefas \ - diferentes de construções de software. Hudson.BadPortNumber=Número de porta ruim {0} Hudson.Computer.Caption=Mestre Hudson.Computer.DisplayName=mestre diff --git a/core/src/main/resources/hudson/model/Messages_pt_PT.properties b/core/src/main/resources/hudson/model/Messages_pt_PT.properties index 6978146ab722..585168602775 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_PT.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_PT.properties @@ -1,3 +1,2 @@ ManageJenkinsAction.DisplayName=Gerir o Jenkins -FreeStyleProject.Description=Isto é uma característica central do Jenkins. Jenkins vai construir o seu projecto, combinando qualquer SCM com qualquer sistema de compilação e isto pode ser usado mesmo em qualquer outra compilação de software. diff --git a/core/src/main/resources/hudson/model/Messages_ro.properties b/core/src/main/resources/hudson/model/Messages_ro.properties index c0a2697b2e0e..2911c11d5d8c 100644 --- a/core/src/main/resources/hudson/model/Messages_ro.properties +++ b/core/src/main/resources/hudson/model/Messages_ro.properties @@ -1,3 +1,2 @@ ParametersDefinitionProperty.DisplayName=Acest build este parametrizat -FreeStyleProject.Description=Aceasta este funcționalitatea principală a lui Jenkins. Jenkins va construi proiectul dvs, combinând orice SCM cu orice sistem de build-uri, și aceasta poate fi folosită chiar și la altceva decât build-uri de aplicații. diff --git a/core/src/main/resources/hudson/model/Messages_ru.properties b/core/src/main/resources/hudson/model/Messages_ru.properties index 2217b2289be5..2ce7869ed999 100644 --- a/core/src/main/resources/hudson/model/Messages_ru.properties +++ b/core/src/main/resources/hudson/model/Messages_ru.properties @@ -56,10 +56,6 @@ Executor.NotAvailable=Неизвестно FreeStyleProject.DisplayName=Создать задачу со свободной конфигурацией -FreeStyleProject.Description=\ - Это - основной и наиболее универсальный тип задач в Jenkins. \ - Jenkins будет собирать ваш проект, комбинируя любую SCM с любой сборочной системой. \ - Данный тип проектов может использоваться для задач, отличных от сборки ПО. Hudson.BadPortNumber=Некорректный номер порта: {0} Hudson.Computer.Caption=Мастер diff --git a/core/src/main/resources/hudson/model/Messages_sv_SE.properties b/core/src/main/resources/hudson/model/Messages_sv_SE.properties index eae53e2bafe4..e5dc7d4759a4 100644 --- a/core/src/main/resources/hudson/model/Messages_sv_SE.properties +++ b/core/src/main/resources/hudson/model/Messages_sv_SE.properties @@ -6,5 +6,4 @@ Job.Pronoun=Projekt ManageJenkinsAction.DisplayName=Hantera Jenkins ParametersDefinitionProperty.DisplayName=Detta bygge är parametriserat -FreeStyleProject.Description=Detta är en central del i Jenkins. Jenkins kommer att bygga ditt projekt med valfri versionshanterare och med vilket byggsystem som helst, och detta kan även användas för något annat än mjukvarubyggen. ParametersDefinitionProperty.BuildButtonText=Bygg diff --git a/core/src/main/resources/hudson/model/Messages_tr.properties b/core/src/main/resources/hudson/model/Messages_tr.properties index 9a199011159d..5df1c7a3b5b9 100644 --- a/core/src/main/resources/hudson/model/Messages_tr.properties +++ b/core/src/main/resources/hudson/model/Messages_tr.properties @@ -52,9 +52,6 @@ BallColor.Unstable=Dengesiz Executor.NotAvailable=Mevcut Değil FreeStyleProject.DisplayName=Serbest stil proje -FreeStyleProject.Description=\ - Bu Jenkins''in en temel kullanım alanıdır. Jenkins, herhangi bir SCM''yi herhangi bir yapılandırma sistemiyle birleştirerek projenizi yapılandırır, \ - ve hatta yazılım yapılandırması dışında başka işler için bile kullanılabilir. Hudson.BadPortNumber=Yanlış Port Numarası {0} Hudson.Computer.Caption=Master diff --git a/core/src/main/resources/hudson/model/Messages_uk.properties b/core/src/main/resources/hudson/model/Messages_uk.properties index 0e17bda155e3..ed5b6dadb9b7 100644 --- a/core/src/main/resources/hudson/model/Messages_uk.properties +++ b/core/src/main/resources/hudson/model/Messages_uk.properties @@ -1,3 +1,2 @@ ParametersDefinitionProperty.DisplayName=Ця будова має параметри -FreeStyleProject.Description=Це - основна відмінність Jenkins. Jenkins побудує ваш проект, комбінуючи будь-які системи управління кодом з будь-якими системами збірки, що може бути використано навіть для цілей відмінних від збірки програмного забезпечення. diff --git a/core/src/main/resources/hudson/model/Messages_zh_TW.properties b/core/src/main/resources/hudson/model/Messages_zh_TW.properties index b0a151aced77..94d7c8f1a342 100644 --- a/core/src/main/resources/hudson/model/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/model/Messages_zh_TW.properties @@ -84,10 +84,6 @@ Descriptor.From=(from {0}) Executor.NotAvailable=N/A FreeStyleProject.DisplayName=建置 Free-Style 軟體專案 -FreeStyleProject.Description=\ - 這是 Jenkins 的主要功能。\ - Jenkins 能搭配各式程式碼管理、建置系統來建置您的專案,\ - 甚至還能做軟體建置以外的其他事情。 Hudson.BadPortNumber=連接埠號 {0} 無效 Hudson.Computer.Caption=Master diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly index ba75e740a89e..cd989c23f030 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink.jelly @@ -26,7 +26,6 @@ THE SOFTWARE. - | - ${%sign up} + ${%sign up} diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly b/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly index 8b065c318b2c..8fb92ed3dd1c 100644 --- a/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink.jelly @@ -25,5 +25,5 @@ THE SOFTWARE. - ${%login} + ${%login} diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly index 6495f391e85c..482473f16d43 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.jelly @@ -46,24 +46,28 @@ THE SOFTWARE.

${%The following polling activities are currently in progress:}

- - - - - - +
${%Project}${%Running for}
+ - - + + - + + + + + + + + +
- ${r.target.asItem().fullDisplayName} - - ${r.duration} - ${%Project}${%Running for}
+ ${r.target.asItem().fullDisplayName} + + ${r.duration} +
- \ No newline at end of file + diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index d203b8a98344..31dbb322fbd0 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -50,7 +50,7 @@ THE SOFTWARE. ${%Took} ${build.durationString} - ${h.getUserTimeZonePostfix()} + ${h.getUserTimeZonePostfix(build.timestamp.time)} @@ -71,7 +71,7 @@ THE SOFTWARE.
- +
diff --git a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly index c78c973137c6..cc1db0886eda 100644 --- a/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly +++ b/core/src/main/resources/jenkins/diagnosis/HsErrPidList/index.jelly @@ -31,33 +31,37 @@ THE SOFTWARE.

${%blurb}

- - - - - - +
${%Name}${%Date} -
+ - - - + + + - + + + + + + + + + +
- - - ${f.path} - - - - - (${%ago(f.timeSpanString)}) - -
- - -
${%Name}${%Date}
+ + + ${f.path} + + + + + (${%ago(f.timeSpanString)}) + +
+ + +
- \ No newline at end of file + diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css index 5960ecd93193..d5d817c6a223 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css @@ -1,5 +1,5 @@ .am-container { - height: 100%; + display: contents; } .am-button { @@ -14,89 +14,62 @@ border-radius: 50%; width: 0.65rem; height: 0.65rem; - background-color: #ff9800; + background-color: var(--warning-color); } .security-am .am-monitor__indicator-mobile { - background-color: #dc3545; + background-color: var(--error-color); } .am-button .am-monitor__count { - display: inline-block; display: inline-flex; justify-content: center; align-items: center; - height: 20px; - min-width: 20px; + height: 18px; + min-width: 18px; color: #fff; - background-color: #ff9800; - font-weight: bold; + background-color: var(--warning-color); + font-weight: 500; + font-size: var(--font-size-xs); - border-radius: 4px; + border-radius: 16px; } .am-button.security-am .am-monitor__count { color: #fff; - background-color: #dc3545; + background-color: var(--error-color); } .am-container div.am-list { position: absolute; top: 48px; right: 2%; height: auto; - z-index: 0; - padding: 2em; + padding: var(--section-padding); text-align: left; display: block; - background-color: #fff; background-color: var(--background); - border-radius: 5px; - - /* Darken the box shadow to make the popup visible over the search box */ - box-shadow: 0 1px 7px 0 rgba(0, 0, 0, 0.3); - - transition: all 0.15s cubic-bezier(0.84, 0.03, 0.21, 0.96); + box-shadow: var(--dropdown-box-shadow); + transition: var(--standard-transition); + border-radius: 15px; opacity: 0; - transform: scale(0); + transform: translateY(-10px) scale(0.975); + z-index: 1000; } .am-container.visible div.am-list { opacity: 1; transform: scale(1); - z-index: 1000; -} -.am-container.visible .am-button { - background-color: #404040; - background-color: var(--header-link-bg-classic-active); - text-decoration: none; -} -.am-container .am-button:after { - content: ""; - display: inline-block; - position: absolute; - bottom: 0; - left: 32%; - width: 0; - height: 0; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #fff; - opacity: 0; - transition-property: all; - transition-delay: 0s; - z-index: 1001; -} -.am-container.visible .am-button:after { - opacity: 1; - transition-property: all; - transition-delay: 0.15s; } .am-container .am-message { display: block; line-height: 1.4em; margin-bottom: 1.4em; } +.am-container.visible .am-button:after { + background: var(--button-background--hover); +} .am-message-list { padding: 0; + margin: 0; } .am-container .am-message .alert form { @@ -123,22 +96,18 @@ /* Restore hyperlink style overriden by the page header */ .am-container .am-list a:link { display: inline-block; - color: #204a87; color: var(--link-color); text-decoration: underline; margin-right: 0; padding: 0; - font-weight: 600; font-weight: var(--link-font-weight); } .am-container .am-list a:visited { - color: #5c3566; color: var(--link-color); } .am-container .am-list a:hover, .am-container .am-list a:focus, .am-container .am-list a:active { - color: #5c3566; color: var(--link-color); background-color: transparent; text-decoration: underline; @@ -146,22 +115,18 @@ } .am-container .am-list .alert-success a { - color: #155724; color: var(--alert-success-text-color); } .am-container .am-list .alert-info a { - color: #31708f; color: var(--alert-info-text-color); } .am-container .am-list .alert-warning a { - color: #8a6d3b; color: var(--alert-warning-text-color); } .am-container .am-list .alert-danger a { - color: #a94442; color: var(--alert-danger-text-color); } diff --git a/core/src/main/resources/jenkins/model/Jenkins/oops.properties b/core/src/main/resources/jenkins/model/Jenkins/oops.properties index d7060ef24991..2d7f460ca626 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/oops.properties +++ b/core/src/main/resources/jenkins/model/Jenkins/oops.properties @@ -1,4 +1,4 @@ -problemHappened=A problem occurred while processing the request. +problemHappened=A problem occurred while processing the request checkJIRA=Please check our bug tracker to see if a similar problem has already been reported. vote=If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. pleaseReport=If you think this is a new issue, please file a new issue. diff --git a/core/src/main/resources/lib/form/apply/apply.js b/core/src/main/resources/lib/form/apply/apply.js index c79c9ce7dbcf..c9752497d7a8 100644 --- a/core/src/main/resources/lib/form/apply/apply.js +++ b/core/src/main/resources/lib/form/apply/apply.js @@ -3,104 +3,59 @@ Behaviour.specify( "apply", 0, function (e) { - var id; - var containerId = "container" + iota++; - - var responseDialog = new YAHOO.widget.Panel("wait" + iota++, { - fixedcenter: true, - close: true, - draggable: true, - zindex: 4, - modal: true, - visible: false, - }); - - responseDialog.setHeader("Error"); - responseDialog.setBody("
"); - responseDialog.render(document.body); - var target; // iframe - - function attachIframeOnload(target, f) { - if (target.attachEvent) { - target.attachEvent("onload", f); - } else { - target.onload = f; - } - } - e.addEventListener("click", function (e) { - var f = e.target.closest("FORM"); + const f = e.target.closest("FORM"); // create a throw-away IFRAME to avoid back button from loading the POST result back - id = "iframe" + iota++; - target = document.createElement("iframe"); + const id = "iframe" + iota++; + const target = document.createElement("iframe"); target.setAttribute("id", id); target.setAttribute("name", id); target.style.height = "100%"; target.style.width = "100%"; - document.getElementById(containerId).appendChild(target); + document.querySelector("body").appendChild(target); - attachIframeOnload(target, function () { + f.target = target.id; + f.elements["core:apply"].value = "true"; + f.dispatchEvent(new Event("jenkins:apply")); // give everyone a chance to write back to DOM + + try { + buildFormTree(f); + f.submit(); + } finally { + f.elements["core:apply"].value = null; + f.target = "_self"; + } + + target.addEventListener("load", () => { if ( target.contentWindow && target.contentWindow.applyCompletionHandler ) { // apply-aware server is expected to set this handler target.contentWindow.applyCompletionHandler(window); - } else { - // otherwise this is possibly an error from the server, so we need to render the whole content. - var doc = target.contentDocument || target.contentWindow.document; - var error = doc.getElementById("error-description"); - var r = YAHOO.util.Dom.getClientRegion(); - var contentHeight = r.height / 5; - var contentWidth = r.width / 2; - if (!error) { - // fallback if it's not a regular error dialog from oops.jelly: use the entire body - error = document.createElement("div"); - error.setAttribute("id", "error-description"); - error.appendChild(doc.getElementsByTagName("body")[0]); - contentHeight = (r.height * 3) / 4; - contentWidth = (r.width * 3) / 4; - } - - let oldError = document.getElementById("error-description"); - if (oldError) { - // Remove old error if there is any - document.getElementById(containerId).removeChild(oldError); - } + // Remove the iframe from the DOM + target.remove(); + return; + } - document.getElementById(containerId).appendChild(error); + // otherwise this is possibly an error from the server, so we need to render the whole content. + const doc = target.contentDocument || target.contentWindow.document; + let error = doc.getElementById("error-description"); - var dialogStyleHeight = contentHeight + 40; - var dialogStyleWidth = contentWidth + 20; + if (!error) { + // Fallback if it's not a regular error dialog from oops.jelly: use the entire body + error = document.createElement("div"); + error.appendChild(doc.querySelector("#page-body")); + } - document.getElementById(containerId).style.height = - contentHeight + "px"; - document.getElementById(containerId).style.width = - contentWidth + "px"; - document.getElementById(containerId).style.overflow = "scroll"; + dialog.modal(error, { + minWidth: "850px", + }); - responseDialog.cfg.setProperty("width", dialogStyleWidth + "px"); - responseDialog.cfg.setProperty("height", dialogStyleHeight + "px"); - responseDialog.center(); - responseDialog.show(); - } - window.setTimeout(function () { - // otherwise Firefox will fail to leave the "connecting" state - document.getElementById(id).remove(); - }, 0); + // Remove the iframe from the DOM + target.remove(); }); - - f.target = target.id; - f.elements["core:apply"].value = "true"; - f.dispatchEvent(new Event("jenkins:apply")); // give everyone a chance to write back to DOM - try { - buildFormTree(f); - f.submit(); - } finally { - f.elements["core:apply"].value = null; - f.target = "_self"; - } }); }, ); diff --git a/core/src/main/resources/lib/hudson/buildCaption.jelly b/core/src/main/resources/lib/hudson/buildCaption.jelly index 2f29e2808f4b..6ae79d3b836e 100644 --- a/core/src/main/resources/lib/hudson/buildCaption.jelly +++ b/core/src/main/resources/lib/hudson/buildCaption.jelly @@ -49,7 +49,7 @@ THE SOFTWARE. + alt="${%cancel}"/> diff --git a/core/src/main/resources/lib/hudson/buildCaption.properties b/core/src/main/resources/lib/hudson/buildCaption.properties index 6aa3af4cc19b..435f11915242 100644 --- a/core/src/main/resources/lib/hudson/buildCaption.properties +++ b/core/src/main/resources/lib/hudson/buildCaption.properties @@ -1 +1,2 @@ confirm=Are you sure you want to abort {0}? +cancel=Cancel diff --git a/core/src/main/resources/lib/hudson/executors.properties b/core/src/main/resources/lib/hudson/executors.properties index 951d07ec26c1..8438e6602a32 100644 --- a/core/src/main/resources/lib/hudson/executors.properties +++ b/core/src/main/resources/lib/hudson/executors.properties @@ -2,3 +2,4 @@ Computers=built-in node{0,choice,0# ({1} of {2} executors busy)|1# + {0,number} agent ({1} of {2} executors busy)|1< + {0,number} agents ({1} of {2} executors busy)} confirm=Are you sure you want to abort {0}? launching=launching... +terminate\ this\ build=Cancel diff --git a/core/src/main/resources/lib/layout/stopButton.jelly b/core/src/main/resources/lib/layout/stopButton.jelly index 29f4ebcb6815..336184090622 100644 --- a/core/src/main/resources/lib/layout/stopButton.jelly +++ b/core/src/main/resources/lib/layout/stopButton.jelly @@ -39,13 +39,13 @@ THE SOFTWARE. - - + + - - + + diff --git a/core/src/spotbugs/excludesFilter.xml b/core/src/spotbugs/excludesFilter.xml index af99fff5055f..7d36952fc372 100644 --- a/core/src/spotbugs/excludesFilter.xml +++ b/core/src/spotbugs/excludesFilter.xml @@ -53,6 +53,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + 4.0.0 @@ -73,7 +73,7 @@ THE SOFTWARE. - 2.438 + 2.440 -SNAPSHOT @@ -90,7 +90,11 @@ THE SOFTWARE. 4.13 + + + 4.8.2.0 Max + FindReturnRef,ConstructorThrow Medium 1.33 @@ -332,7 +336,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.12.6 + 10.12.7 diff --git a/test/pom.xml b/test/pom.xml index bb493bb4a975..c91796e0c567 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -22,7 +22,7 @@ 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. --> - + 4.0.0 @@ -88,7 +88,7 @@ THE SOFTWARE. io.jenkins.plugins plugin-util-api - 3.6.0 + 3.8.0 org.jenkins-ci.plugins @@ -131,7 +131,7 @@ THE SOFTWARE. ${project.groupId} jenkins-test-harness - 2137.vb_4eb_49f51c4b_ + 2140.ve736dc2b_b_d2c test @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 818.v7eb_e657db_924 + 822.v01b_8c85d16d2 test diff --git a/test/src/test/java/hudson/model/ViewTest.java b/test/src/test/java/hudson/model/ViewTest.java index 3ea19e1ee59c..1c32f3ed314a 100644 --- a/test/src/test/java/hudson/model/ViewTest.java +++ b/test/src/test/java/hudson/model/ViewTest.java @@ -700,7 +700,7 @@ public void simplifiedOriginalDescription() throws Exception { assertThat(e.getStatusCode(), equalTo(500)); // This should have a different message, but this is the current behavior demonstrating the problem. - assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request.")); + assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request")); OldDataMonitor odm = ExtensionList.lookupSingleton(OldDataMonitor.class); Map data = odm.getData(); @@ -744,7 +744,7 @@ public void simplifiedWithValidXmlAndBadField() throws Exception { assertThat(e.getStatusCode(), equalTo(500)); // This should have a different message, but this is the current behavior demonstrating the problem. - assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request.")); + assertThat(e.getResponse().getContentAsString(), containsString("A problem occurred while processing the request")); OldDataMonitor odm = ExtensionList.lookupSingleton(OldDataMonitor.class); Map data = odm.getData(); diff --git a/test/src/test/java/jenkins/model/RunIdMigratorTest.java b/test/src/test/java/jenkins/model/RunIdMigratorTest.java new file mode 100644 index 000000000000..4ade1afc84e1 --- /dev/null +++ b/test/src/test/java/jenkins/model/RunIdMigratorTest.java @@ -0,0 +1,100 @@ +/* + * The MIT License + * + * Copyright 2023 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.model; + +import static hudson.cli.CLICommandInvoker.Matcher.succeededSilently; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import hudson.cli.CLICommandInvoker; +import hudson.cli.CreateJobCommand; +import hudson.model.FreeStyleProject; +import hudson.model.Item; +import hudson.model.User; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.nio.charset.StandardCharsets; +import org.htmlunit.HttpMethod; +import org.htmlunit.WebRequest; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; + +public class RunIdMigratorTest { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Test + public void legacyIdsPresent() throws Exception { + FreeStyleProject p = j.createFreeStyleProject(); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } + + @Ignore("TODO Item#onCreatedFromScratch is not called") + @Issue("JENKINS-64356") + @Test + public void legacyIdsPresentViaRestApi() throws Exception { + User user = User.getById("user", true); + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy() + .grant(Jenkins.READ, Item.CREATE) + .everywhere() + .to(user.getId())); + String jobName = "test" + j.jenkins.getItems().size(); + try (JenkinsRule.WebClient wc = j.createWebClient()) { + wc.login(user.getId()); + WebRequest req = new WebRequest(wc.createCrumbedUrl("createItem?name=" + jobName), HttpMethod.POST); + req.setAdditionalHeader("Content-Type", "application/xml"); + req.setRequestBody(""); + wc.getPage(req); + } + FreeStyleProject p = j.jenkins.getItemByFullName(jobName, FreeStyleProject.class); + assertNotNull(p); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } + + @Ignore("TODO Item#onCreatedFromScratch is not called") + @Issue("JENKINS-64356") + @Test + public void legacyIdsPresentViaCli() { + String jobName = "test" + j.jenkins.getItems().size(); + CLICommandInvoker invoker = new CLICommandInvoker(j, new CreateJobCommand()); + CLICommandInvoker.Result result = invoker.withStdin( + new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8))) + .invokeWithArgs(jobName); + assertThat(result, succeededSilently()); + FreeStyleProject p = j.jenkins.getItemByFullName(jobName, FreeStyleProject.class); + assertNotNull(p); + File legacyIds = new File(p.getBuildDir(), "legacyIds"); + assertTrue(legacyIds.exists()); + } +} diff --git a/test/src/test/java/jenkins/security/Security2278Test.java b/test/src/test/java/jenkins/security/Security2278Test.java index c556d5d079bf..7811c2afa884 100644 --- a/test/src/test/java/jenkins/security/Security2278Test.java +++ b/test/src/test/java/jenkins/security/Security2278Test.java @@ -70,7 +70,7 @@ public void testUi() throws Exception { assertThat(contentAsString, containsString("Build Executor Status")); assertThat(contentAsString, containsString("Unknown Task")); assertThat(contentAsString, not(containsString("job/foo/job/bar"))); - assertThat(contentAsString, not(containsString("icon-stop"))); + assertThat(contentAsString, not(containsString("stop-button-link"))); } @Test @@ -81,7 +81,7 @@ public void testUiWithPermission() throws Exception { assertThat(contentAsString, containsString("Build Executor Status")); assertThat(contentAsString, not(containsString("Unknown Task"))); assertThat(contentAsString, containsString("job/foo/job/bar")); - assertThat(contentAsString, containsString("icon-stop")); + assertThat(contentAsString, containsString("stop-button-link")); } @Test diff --git a/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java b/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java index 9e9b58777a52..b13a5d11c4d5 100644 --- a/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java +++ b/test/src/test/java/jenkins/security/StackTraceSuppressionTest.java @@ -161,7 +161,7 @@ public void save() { } private void checBaseResponseContent(String content) { - assertThat(content, containsString("A problem occurred while processing the request.")); + assertThat(content, containsString("A problem occurred while processing the request")); assertThat(content, containsString("Logging ID=")); assertThat(content, containsString("Oops!")); } diff --git a/war/package.json b/war/package.json index 5fd76f8acc31..90c31887382d 100644 --- a/war/package.json +++ b/war/package.json @@ -24,25 +24,25 @@ }, "devDependencies": { "@babel/cli": "7.23.4", - "@babel/core": "7.23.6", - "@babel/preset-env": "7.23.6", + "@babel/core": "7.23.7", + "@babel/preset-env": "7.23.7", "babel-loader": "9.1.3", "clean-webpack-plugin": "4.0.0", "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.7.6", "postcss": "8.4.32", - "postcss-loader": "7.3.3", + "postcss-loader": "7.3.4", "postcss-preset-env": "9.3.0", "postcss-scss": "4.0.9", "prettier": "3.1.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", + "sass": "1.69.6", + "sass-loader": "13.3.3", "style-loader": "3.3.3", - "stylelint": "16.0.2", + "stylelint": "16.1.0", "stylelint-checkstyle-reporter": "0.2.0", "stylelint-config-standard": "33.0.0", "webpack": "5.89.0", diff --git a/war/pom.xml b/war/pom.xml index 2808d786b3d4..8d6d579e5919 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -22,7 +22,7 @@ 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. --> - + 4.0.0 @@ -403,14 +403,6 @@ THE SOFTWARE. hpi - - - io.jenkins.plugins - popper2-api - 2.11.6-4 - hpi - - io.jenkins.plugins diff --git a/war/src/main/scss/components/_buttons.scss b/war/src/main/scss/components/_buttons.scss index 0368549deb7d..5108aca2c6eb 100644 --- a/war/src/main/scss/components/_buttons.scss +++ b/war/src/main/scss/components/_buttons.scss @@ -299,3 +299,33 @@ $jenkins-split-button-border-radius: 0.2rem; } } } + +.stop-button-link { + --item-background--hover: color-mix(in sRGB, var(--red) 20%, transparent); + --item-background--active: color-mix(in sRGB, var(--red) 25%, transparent); + --item-box-shadow--focus: transparent; + + @include mixins.item; + + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 1rem; + height: 1rem; + border-radius: 0.25rem; + + &::before { + background: color-mix(in sRGB, var(--red) 15%, transparent); + } + + svg { + width: 87.5%; + height: 87.5%; + color: var(--red); + + * { + stroke-width: 40px; + } + } +} diff --git a/war/src/main/scss/components/_page-header.scss b/war/src/main/scss/components/_page-header.scss index 13e63d91a771..e1b34ea09c71 100644 --- a/war/src/main/scss/components/_page-header.scss +++ b/war/src/main/scss/components/_page-header.scss @@ -1,3 +1,5 @@ +@use "../abstracts/mixins"; + .page-header { display: flex; align-items: center; @@ -36,8 +38,7 @@ a.page-header__brand-link { } .page-header__am-wrapper { - height: 100%; - padding: 0.5rem 0; + display: contents; } .page-header__hyperlinks { @@ -45,37 +46,22 @@ a.page-header__brand-link { align-items: center; } -.page-header__hyperlinks a { +.page-header__hyperlinks > a, +.am-container > a { + @include mixins.item; + --text-color: var(--header-link-color); display: inline-flex; align-items: center; - - // need to override an existing rule - /* stylelint-disable declaration-block-no-shorthand-property-overrides */ - padding-right: 0.5rem; + color: var(--text-color); + text-decoration: none; padding: 0.5rem; margin-right: 0 !important; - font-weight: bold; - - &:link, - &:visited { - color: var(--header-link-color); - border-radius: var(--header-item-border-radius); - text-decoration: none; - } - &:hover, - &:focus, - &.mouseIsOverMenuSelector { - color: var(--header-link-color-active); - background-color: var(--header-link-bg-classic-hover); - text-decoration: underline; - text-decoration-color: var(--header-link-color-active); - } - - &:active { - background-color: var(--header-link-bg-classic-active); + &::before, + &::after { + inset: 0 !important; } .jenkins-menu-dropdown-chevron { @@ -91,8 +77,6 @@ a.page-header__brand-link { } .page-header__hyperlinks a span { - font-weight: bold; - &:not(:first-child) { margin-left: 0.25rem; } diff --git a/war/yarn.lock b/war/yarn.lock index 26c631d7d84a..a4fe98ca0023 100644 --- a/war/yarn.lock +++ b/war/yarn.lock @@ -66,26 +66,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.23.6": - version: 7.23.6 - resolution: "@babel/core@npm:7.23.6" +"@babel/core@npm:7.23.7": + version: 7.23.7 + resolution: "@babel/core@npm:7.23.7" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.6" + "@babel/helpers": "npm:^7.23.7" "@babel/parser": "npm:^7.23.6" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.6" + "@babel/traverse": "npm:^7.23.7" "@babel/types": "npm:^7.23.6" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31 + checksum: 38c9934973d384ed83369712978453eac91dc3f22167404dbdb272b64f602e74728a6f37012c53ee57e521b8ae2da60097f050497d9b6a212d28b59cdfb2cd1d languageName: node linkType: hard @@ -164,9 +164,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.3": - version: 0.4.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" +"@babel/helper-define-polyfill-provider@npm:^0.4.4": + version: 0.4.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" dependencies: "@babel/helper-compilation-targets": "npm:^7.22.6" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -175,7 +175,7 @@ __metadata: resolve: "npm:^1.14.2" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 0007035157e0d32ee9cb4ca319b89d6f3705523383efe52a59eb3d4dfa2ed08c5147e49c10a6e6d69c15221d89c76c8e5875475d6710fb44a5c37b8e69388e40 + checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 languageName: node linkType: hard @@ -339,14 +339,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helpers@npm:7.23.6" +"@babel/helpers@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/helpers@npm:7.23.7" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.6" + "@babel/traverse": "npm:^7.23.7" "@babel/types": "npm:^7.23.6" - checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19 + checksum: f74a61ad28a1bc1fdd9133ad571c07787b66d6db017c707b87c203b0cd06879cea8b33e9c6a8585765a4949efa5df3cc9e19b710fe867f11be38ee29fd4a0488 languageName: node linkType: hard @@ -394,15 +394,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 0f43b74741d50e637ba4dcef2786621126fe4da6ccf4ee2e94423ee23f6a04ecd91d458e59764c43e4968be139e5197ee43be8a2fea2c09f0b202a3391e548cc + checksum: 355746e21ad7f43e4f4daef54cfe2ef461ecd19446b2afedd53c39df1bf9aa2eeeeaabee2279b1321de89a97c9360e4f76e9ba950fee50ff1676c25f6929d625 languageName: node linkType: hard @@ -625,9 +625,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -635,7 +635,7 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2eef4de609975a3f7da7832576b5ffc93e43c80f87e1a99e886b0f8591096cfc4c37e2d5f52fdeaa2a9c09a25a59f3e621159abaca75d3193922a5c0e4cbe0c + checksum: 63d314edc9fbeaf2700745ca0e19bf9840e87f2d7d1f6c5638e06d2aec3e7418d0d7493ed09087e2fe369cc15e9d96c113fb2cd367cb5e3ff922e3712c27b7d4 languageName: node linkType: hard @@ -1195,9 +1195,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.23.6": - version: 7.23.6 - resolution: "@babel/preset-env@npm:7.23.6" +"@babel/preset-env@npm:7.23.7": + version: 7.23.7 + resolution: "@babel/preset-env@npm:7.23.7" dependencies: "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.23.6" @@ -1205,7 +1205,7 @@ __metadata: "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.7" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" @@ -1226,7 +1226,7 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.7" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" "@babel/plugin-transform-block-scoping": "npm:^7.23.4" @@ -1274,14 +1274,14 @@ __metadata: "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.6" - babel-plugin-polyfill-corejs3: "npm:^0.8.5" - babel-plugin-polyfill-regenerator: "npm:^0.5.3" + babel-plugin-polyfill-corejs2: "npm:^0.4.7" + babel-plugin-polyfill-corejs3: "npm:^0.8.7" + babel-plugin-polyfill-regenerator: "npm:^0.5.4" core-js-compat: "npm:^3.31.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 + checksum: ac9def873cec52ee02a550bde6e22eced16d1ae331bb8ebc82c03e4c91c12ac17e3e4027647e61612937bcc25ac46e71370aaf99dc2e85dbd11f7777ffeed54e languageName: node linkType: hard @@ -1325,9 +1325,9 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/traverse@npm:7.23.6" +"@babel/traverse@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/traverse@npm:7.23.7" dependencies: "@babel/code-frame": "npm:^7.23.5" "@babel/generator": "npm:^7.23.6" @@ -1339,7 +1339,7 @@ __metadata: "@babel/types": "npm:^7.23.6" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d + checksum: e32fceb4249beec2bde83968ddffe17444221c1ee5cd18c543a2feaf94e3ca83f2a4dfbc2dcca87cf226e0105973e0fe3717063a21e982a9de9945615ab3f3f5 languageName: node linkType: hard @@ -1394,7 +1394,7 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:2.3.2, @csstools/css-parser-algorithms@npm:^2.3.2": +"@csstools/css-parser-algorithms@npm:2.3.2": version: 2.3.2 resolution: "@csstools/css-parser-algorithms@npm:2.3.2" peerDependencies: @@ -1403,20 +1403,29 @@ __metadata: languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.1": - version: 2.2.1 - resolution: "@csstools/css-tokenizer@npm:2.2.1" - checksum: 0c6901d291e99c567893846a47068057c2a28b3edc4219b6da589a530f55f51ddd4675f906f707b393bfe7a508ab2604bf3f75708f064db857bb277636bd5a44 +"@csstools/css-parser-algorithms@npm:^2.3.2, @csstools/css-parser-algorithms@npm:^2.4.0": + version: 2.4.0 + resolution: "@csstools/css-parser-algorithms@npm:2.4.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.2.2 + checksum: bcfc067b9d1bd5e0bc6044bfbf6450a4a6837d88c5ffd081e2159d4e442c28f018b58c7c2b3ce176ba0bf76cbbce0fd3c65468a40b9867ad9b3e3ef90b9b2655 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.5": - version: 2.1.5 - resolution: "@csstools/media-query-list-parser@npm:2.1.5" +"@csstools/css-tokenizer@npm:^2.2.1, @csstools/css-tokenizer@npm:^2.2.2": + version: 2.2.2 + resolution: "@csstools/css-tokenizer@npm:2.2.2" + checksum: 9e7374aab06a811f868a85127af1ff07ad7a56e22e8c46930e789a907098bdd4e6eec82e0cb0d4b8ac1cd5cd054c1f0e329ec50d8548f57d660aeee7cf9b3167 + languageName: node + linkType: hard + +"@csstools/media-query-list-parser@npm:^2.1.5, @csstools/media-query-list-parser@npm:^2.1.6": + version: 2.1.6 + resolution: "@csstools/media-query-list-parser@npm:2.1.6" peerDependencies: - "@csstools/css-parser-algorithms": ^2.3.2 - "@csstools/css-tokenizer": ^2.2.1 - checksum: ae0692c6f92cdc82053291c7a50028b692094dfed795f0259571c5eb40f4b3fa580182ac3701e56c2834e40a62a122ea6639299e43ae88b3a835ae4c869a1a12 + "@csstools/css-parser-algorithms": ^2.4.0 + "@csstools/css-tokenizer": ^2.2.2 + checksum: 06da3e5c01e4785963b821ee2eb31f4fcec622f3b0e4e0748113f287c876f241be211ba11d435d0cc1f0e9f2e26baf5fbf6f8563dc88a49709c3d49e79490b76 languageName: node linkType: hard @@ -1752,12 +1761,12 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/selector-specificity@npm:3.0.0" +"@csstools/selector-specificity@npm:^3.0.0, @csstools/selector-specificity@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/selector-specificity@npm:3.0.1" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: 6f0e2fa9a3c5dcbc7a446fd827d3eb85ca775cc884f73f0bbb119ab49b4f5f0af8763dd23a37d423f4e7989069c09bb977e7e5f017db296e1417abb1fba75c30 + checksum: 4280f494726d5e38de74e28dee2ff74ec86244560dff4edeec3ddff3ac73c774c19535bd1bb70cad77949bfb359cf87e977d0ec3264591e3b7260342a20dd84f languageName: node linkType: hard @@ -1803,10 +1812,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.55.0": - version: 8.55.0 - resolution: "@eslint/js@npm:8.55.0" - checksum: 88ab9fc57a651becd2b32ec40a3958db27fae133b1ae77bebd733aa5bbd00a92f325bb02f20ad680d31c731fa49b22f060a4777dd52eb3e27da013d940bd978d +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 60b3a1cf240e2479cec9742424224465dc50e46d781da1b7f5ef240501b2d1202c225bd456207faac4b34a64f4765833345bc4ddffd00395e1db40fa8c426f5a languageName: node linkType: hard @@ -1842,6 +1851,20 @@ __metadata: languageName: node linkType: hard +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + "@jest/schemas@npm:^29.4.3": version: 29.4.3 resolution: "@jest/schemas@npm:29.4.3" @@ -2018,6 +2041,13 @@ __metadata: languageName: node linkType: hard +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + "@popperjs/core@npm:^2.9.0": version: 2.11.6 resolution: "@popperjs/core@npm:2.11.6" @@ -2504,6 +2534,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + "ansis@npm:1.5.2": version: 1.5.2 resolution: "ansis@npm:1.5.2" @@ -2622,39 +2659,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.6": - version: 0.4.6 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" +"babel-plugin-polyfill-corejs2@npm:^0.4.7": + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 64a98811f343492aa6970ab253760194e389c0417e5b830522f944009c1f0c78e1251975fd1b9869cd48cc4623111b20a3389cf6732a1d10ba0d19de6fa5114f + checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.5": - version: 0.8.5 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.5" +"babel-plugin-polyfill-corejs3@npm:^0.8.7": + version: 0.8.7 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" - core-js-compat: "npm:^3.32.2" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" + core-js-compat: "npm:^3.33.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 577a072971bda2929a87655c816ad14b6a8f7276e6914851b98a6465bdb56f7f2e3db6136c8b8607bd6ba4cde3cd9cbde21f0078250cd93aee3df977c0a731d0 + checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.3": - version: 0.5.3 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" +"babel-plugin-polyfill-regenerator@npm:^0.5.4": + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: cc32313b9ebbf1d7bedc33524a861136b9e5d3b6e9be317ac360a1c2a59ae5ed1b465a6c68b2715cdefb089780ddfb0c11f4a148e49827a947beee76e43da598 + checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe languageName: node linkType: hard @@ -2995,24 +3032,29 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": - version: 3.33.0 - resolution: "core-js-compat@npm:3.33.0" +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": + version: 3.35.0 + resolution: "core-js-compat@npm:3.35.0" dependencies: - browserslist: "npm:^4.22.1" - checksum: 1db27222420548c65fdb92574192aa1ab434e8e3b80a347fc9c20004e459cc146e719dee8a8c3a3c0773190834e865542d3745ada27a160937fc312a14f66d5c + browserslist: "npm:^4.22.2" + checksum: 8c4379240b8decb94b21e81d5ba6f768418721061923b28c9dfc97574680c35d778d39c010207402fc7c8308a68a4cf6d5e02bcbcb96e931c52e6e0dce29a68c languageName: node linkType: hard -"cosmiconfig@npm:^8.2.0": - version: 8.2.0 - resolution: "cosmiconfig@npm:8.2.0" +"cosmiconfig@npm:^8.3.5": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: "npm:^3.2.1" + import-fresh: "npm:^3.3.0" js-yaml: "npm:^4.1.0" - parse-json: "npm:^5.0.0" + parse-json: "npm:^5.2.0" path-type: "npm:^4.0.0" - checksum: 4180aa6d1881b75ba591b2fc04b022741a3a4b67e9e243c0eb8d169b6e1efbd3cdf7e8ca19243c0f2e53a9d59ac3eccd5cad5f95f487fcbf4e740f9e86745747 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a languageName: node linkType: hard @@ -3033,7 +3075,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"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" dependencies: @@ -3369,6 +3411,13 @@ __metadata: languageName: node linkType: hard +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.601": version: 1.4.612 resolution: "electron-to-chromium@npm:1.4.612" @@ -3383,6 +3432,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + "emojis-list@npm:^3.0.0": version: 3.0.0 resolution: "emojis-list@npm:3.0.0" @@ -3514,14 +3570,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.55.0": - version: 8.55.0 - resolution: "eslint@npm:8.55.0" +"eslint@npm:8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.55.0" + "@eslint/js": "npm:8.56.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -3558,7 +3614,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: d28c0b60f19bb7d355cb8393e77b018c8f548dba3f820b799c89bb2e0c436ee26084e700c5e57e1e97e7972ec93065277849141b82e7b0c0d02c2dc1e553a2a1 + checksum: 2be598f7da1339d045ad933ffd3d4742bee610515cd2b0d9a2b8b729395a01d4e913552fff555b559fccaefd89d7b37632825789d1b06470608737ae69ab43fb languageName: node linkType: hard @@ -3695,12 +3751,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^7.0.2": - version: 7.0.2 - resolution: "file-entry-cache@npm:7.0.2" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.2.0" - checksum: 822664e35c3e295e6a8ca7ec490d8d8077017607f41f94b29922f1f49c6dd07025048e3ed528e2909a1439eba66d60f802c0774aa612cf6ee053ee4ecc16c8c5 + flat-cache: "npm:^4.0.0" + checksum: 9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 languageName: node linkType: hard @@ -3753,7 +3809,7 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": +"flat-cache@npm:^3.0.4": version: 3.2.0 resolution: "flat-cache@npm:3.2.0" dependencies: @@ -3764,6 +3820,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.0 + resolution: "flat-cache@npm:4.0.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + rimraf: "npm:^5.0.5" + checksum: 8f99e27bb3de94e91e7b4ca5120488cdc2b7f8cd952a538f1a566101963057eb42ca318e9fac0d36987dcca34316ff04b61c1dc3dcc8084f6f5e801a52a8e547 + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" @@ -3771,6 +3838,16 @@ __metadata: languageName: node linkType: hard +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 + languageName: node + linkType: hard + "fraction.js@npm:^4.3.6": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" @@ -3875,6 +3952,21 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.3.7": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^2.3.5" + minimatch: "npm:^9.0.1" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry: "npm:^1.10.1" + bin: + glob: dist/esm/bin.mjs + checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d + languageName: node + linkType: hard + "glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -4336,18 +4428,31 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 + languageName: node + linkType: hard + "jenkins-ui@workspace:.": version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.23.4" - "@babel/core": "npm:7.23.6" - "@babel/preset-env": "npm:7.23.6" + "@babel/core": "npm:7.23.7" + "@babel/preset-env": "npm:7.23.7" babel-loader: "npm:9.1.3" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:6.8.1" css-minimizer-webpack-plugin: "npm:5.0.1" - eslint: "npm:8.55.0" + eslint: "npm:8.56.0" eslint-config-prettier: "npm:9.1.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" @@ -4356,15 +4461,15 @@ __metadata: lodash: "npm:4.17.21" mini-css-extract-plugin: "npm:2.7.6" postcss: "npm:8.4.32" - postcss-loader: "npm:7.3.3" + postcss-loader: "npm:7.3.4" postcss-preset-env: "npm:9.3.0" postcss-scss: "npm:4.0.9" prettier: "npm:3.1.1" - sass: "npm:1.69.5" - sass-loader: "npm:13.3.2" + sass: "npm:1.69.6" + sass-loader: "npm:13.3.3" sortablejs: "npm:1.15.1" style-loader: "npm:3.3.3" - stylelint: "npm:16.0.2" + stylelint: "npm:16.1.0" stylelint-checkstyle-reporter: "npm:0.2.0" stylelint-config-standard: "npm:33.0.0" tippy.js: "npm:6.3.7" @@ -4412,12 +4517,12 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^1.18.2": - version: 1.18.2 - resolution: "jiti@npm:1.18.2" +"jiti@npm:^1.20.0": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" bin: jiti: bin/jiti.js - checksum: 578343e883838a5d6775350925d9e1a647e00132ade9c8cc318c163b692988612472f0af3cd9d92b8d8ca61e623092e86ab89563cbf6394900a5a39962e3c4e8 + checksum: 7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f languageName: node linkType: hard @@ -4531,7 +4636,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -4690,6 +4795,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e + languageName: node + linkType: hard + "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -4745,10 +4857,10 @@ __metadata: languageName: node linkType: hard -"meow@npm:^12.1.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 +"meow@npm:^13.0.0": + version: 13.0.0 + resolution: "meow@npm:13.0.0" + checksum: fab0f91578154c048e792a81704f3f28099ffff900f364df8a85f6e770a57e1c124859a25e186186e149dad30692c7893af0dfd71517bea343bfe5d749b1fa04 languageName: node linkType: hard @@ -4821,6 +4933,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.5": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -4888,6 +5009,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -5140,7 +5268,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": +"parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -5194,6 +5322,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: "npm:^9.1.1 || ^10.0.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -5523,17 +5661,17 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:7.3.3": - version: 7.3.3 - resolution: "postcss-loader@npm:7.3.3" +"postcss-loader@npm:7.3.4": + version: 7.3.4 + resolution: "postcss-loader@npm:7.3.4" dependencies: - cosmiconfig: "npm:^8.2.0" - jiti: "npm:^1.18.2" - semver: "npm:^7.3.8" + cosmiconfig: "npm:^8.3.5" + jiti: "npm:^1.20.0" + semver: "npm:^7.5.4" peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - checksum: d039654273f858be1f75dfdf8b550869d88905b73a7684b3e48a2937a6087619e84fd1a3551cdef78685a965a2573e985b29a532c3878d834071ecd2da0eb304 + checksum: 1bf7614aeea9ad1f8ee6be3a5451576c059391688ea67f825aedc2674056369597faeae4e4a81fe10843884c9904a71403d9a54197e1f560e8fbb9e61f2a2680 languageName: node linkType: hard @@ -6262,6 +6400,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" + dependencies: + glob: "npm:^10.3.7" + bin: + rimraf: dist/esm/bin.mjs + checksum: d50dbe724f33835decd88395b25ed35995077c60a50ae78ded06e0185418914e555817aad1b4243edbff2254548c2f6ad6f70cc850040bebb4da9e8cc016f586 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -6285,9 +6434,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:13.3.2": - version: 13.3.2 - resolution: "sass-loader@npm:13.3.2" +"sass-loader@npm:13.3.3": + version: 13.3.3 + resolution: "sass-loader@npm:13.3.3" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -6305,20 +6454,20 @@ __metadata: optional: true sass-embedded: optional: true - checksum: 7db8132101ed663f3cf936ce765b9b960a48b14f13f17d367a4e0c2ae259e91b6c401e33ab0f27ee88c98c8b5893c778848fc8366f1f387ac788ebef244e000a + checksum: 5e955a4ffce35ee0a46fce677ce51eaa69587fb5371978588c83af00f49e7edc36dcf3bb559cbae27681c5e24a71284463ebe03a1fb65e6ecafa1db0620e3fc8 languageName: node linkType: hard -"sass@npm:1.69.5": - version: 1.69.5 - resolution: "sass@npm:1.69.5" +"sass@npm:1.69.6": + version: 1.69.6 + resolution: "sass@npm:1.69.6" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: a9003a9482f2e467fc412cfe58ba4fa14fb78bef7e1283ce5d64a065f8a31114ec3bbf5d4e724f94eb8512c32c768a6f91f228c7f16a26a300bbf4db293b5608 + checksum: 8153db8e51e74a9007bb54332e14d122c34288c7d21a5f2eaefef753a1b7bb13f35e042dc6247253dab5b1550b05cea27970371e7548286b4f50f23dd1147d89 languageName: node linkType: hard @@ -6363,14 +6512,14 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" +"semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" dependencies: lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 7e581d679530db31757301c2117721577a2bb36a301a443aac833b8efad372cda58e7f2a464fe4412ae1041cc1f63a6c1fe0ced8c57ce5aca1e0b57bb0d627b9 + checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e languageName: node linkType: hard @@ -6529,7 +6678,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -6540,6 +6689,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -6549,7 +6709,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" dependencies: @@ -6558,7 +6718,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.1.0": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -6624,14 +6784,14 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.0.2": - version: 16.0.2 - resolution: "stylelint@npm:16.0.2" +"stylelint@npm:16.1.0": + version: 16.1.0 + resolution: "stylelint@npm:16.1.0" dependencies: - "@csstools/css-parser-algorithms": "npm:^2.3.2" - "@csstools/css-tokenizer": "npm:^2.2.1" - "@csstools/media-query-list-parser": "npm:^2.1.5" - "@csstools/selector-specificity": "npm:^3.0.0" + "@csstools/css-parser-algorithms": "npm:^2.4.0" + "@csstools/css-tokenizer": "npm:^2.2.2" + "@csstools/media-query-list-parser": "npm:^2.1.6" + "@csstools/selector-specificity": "npm:^3.0.1" balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" @@ -6640,7 +6800,7 @@ __metadata: debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" - file-entry-cache: "npm:^7.0.2" + file-entry-cache: "npm:^8.0.0" global-modules: "npm:^2.0.0" globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" @@ -6650,7 +6810,7 @@ __metadata: is-plain-object: "npm:^5.0.0" known-css-properties: "npm:^0.29.0" mathml-tag-names: "npm:^2.1.3" - meow: "npm:^12.1.1" + meow: "npm:^13.0.0" micromatch: "npm:^4.0.5" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.0" @@ -6668,7 +6828,7 @@ __metadata: write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 5ec755e209beb1877ff40d50f18c1ebb05bf251925da1f98f28fb3911e4031195eb86adaf641ac5cdb01ba973f4c999bc0c6b0270d08c1d5c070adbdd9e734cf + checksum: 765eea0b07319d1e7989502c07b8b5794938e5a8542bec00990b09ec10c3f7006891689930099e948d06c9ef9982066edb98b1ea64a435138a6b0f0905eb2b87 languageName: node linkType: hard @@ -7104,6 +7264,28 @@ __metadata: languageName: node linkType: hard +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" diff --git a/websocket/jetty10/pom.xml b/websocket/jetty10/pom.xml index eb4a169a59d1..c91e1583c039 100644 --- a/websocket/jetty10/pom.xml +++ b/websocket/jetty10/pom.xml @@ -22,7 +22,7 @@ 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. --> - + 4.0.0 diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 77abcc3b7248..a99aada6a446 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -22,7 +22,7 @@ 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. --> - + 4.0.0