From cd242d9ed4fdf8213fd10078fe515fabde25ea6a Mon Sep 17 00:00:00 2001 From: Kevin-CB Date: Wed, 25 Sep 2024 07:59:20 +0000 Subject: [PATCH 001/160] [SECURITY-3448] --- .../java/hudson/model/ItemGroupMixIn.java | 13 +- .../jenkins/security/Security3448Test.java | 171 ++++++++++++++++++ 2 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 test/src/test/java/jenkins/security/Security3448Test.java diff --git a/core/src/main/java/hudson/model/ItemGroupMixIn.java b/core/src/main/java/hudson/model/ItemGroupMixIn.java index 404d213f7344..f0b48787e24b 100644 --- a/core/src/main/java/hudson/model/ItemGroupMixIn.java +++ b/core/src/main/java/hudson/model/ItemGroupMixIn.java @@ -302,8 +302,17 @@ public synchronized TopLevelItem createProjectFromXML(String name, InputStream x } }); - success = acl.getACL().hasCreatePermission2(Jenkins.getAuthentication2(), parent, result.getDescriptor()) - && result.getDescriptor().isApplicableIn(parent); + boolean hasCreatePermission = acl.getACL().hasCreatePermission2(Jenkins.getAuthentication2(), parent, result.getDescriptor()); + boolean applicableIn = result.getDescriptor().isApplicableIn(parent); + + success = hasCreatePermission && applicableIn; + + if (!hasCreatePermission) { + throw new AccessDeniedException(Jenkins.getAuthentication2().getName() + " does not have required permissions to create " + result.getDescriptor().clazz.getName()); + } + if (!applicableIn) { + throw new AccessDeniedException(result.getDescriptor().clazz.getName() + " is not applicable in " + parent.getFullName()); + } add(result); diff --git a/test/src/test/java/jenkins/security/Security3448Test.java b/test/src/test/java/jenkins/security/Security3448Test.java new file mode 100644 index 000000000000..d2a4695317cf --- /dev/null +++ b/test/src/test/java/jenkins/security/Security3448Test.java @@ -0,0 +1,171 @@ +package jenkins.security; + +import static hudson.cli.CLICommandInvoker.Matcher.failedWith; +import static hudson.cli.CLICommandInvoker.Matcher.succeededSilently; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertTrue; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.cli.CLICommand; +import hudson.cli.CLICommandInvoker; +import hudson.cli.CreateJobCommand; +import hudson.model.Build; +import hudson.model.Descriptor; +import hudson.model.FreeStyleProject; +import hudson.model.ItemGroup; +import hudson.model.Project; +import hudson.model.TopLevelItem; +import hudson.model.TopLevelItemDescriptor; +import hudson.security.ACL; +import hudson.security.AuthorizationStrategy; +import hudson.security.Permission; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.Collection; +import java.util.Collections; +import jenkins.model.Jenkins; +import org.hamcrest.Matchers; +import org.htmlunit.HttpMethod; +import org.htmlunit.WebRequest; +import org.htmlunit.WebResponse; +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.TestExtension; +import org.kohsuke.stapler.DataBoundConstructor; +import org.springframework.security.core.Authentication; + +public class Security3448Test { + + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Issue("SECURITY-3448") + @Test + public void jobCreationFromCLI() { + CLICommand cmd = new CreateJobCommand(); + CLICommandInvoker invoker = new CLICommandInvoker(j, cmd); + + j.jenkins.setAuthorizationStrategy(AuthorizationStrategy.UNSECURED); + + assertThat(j.jenkins.getItems(), Matchers.hasSize(0)); + assertThat(invoker.withStdin(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8))).invokeWithArgs("job1"), succeededSilently()); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + + assertThat(invoker.withStdin(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8))).invokeWithArgs("job2"), failedWith(6)); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + + j.jenkins.setAuthorizationStrategy(new UnsecuredNoFreestyleAuthorizationStrategy()); + + assertThat(invoker.withStdin(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8))).invokeWithArgs("job2"), failedWith(6)); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + } + + @Test + @Issue("SECURITY-3448") + public void jobCreationFromREST() throws Exception { + j.jenkins.setCrumbIssuer(null); + + try (JenkinsRule.WebClient wc = j.createWebClient().withThrowExceptionOnFailingStatusCode(false)) { + String doCreateItem = j.getURL().toString() + "createItem?name="; + URL job1 = new URL(doCreateItem + "job1"); + WebRequest req = new WebRequest(job1, HttpMethod.POST); + req.setAdditionalHeader("Content-Type", "application/xml"); + req.setRequestBody(""); + j.jenkins.setAuthorizationStrategy(AuthorizationStrategy.UNSECURED); + + assertThat(j.jenkins.getItems(), Matchers.hasSize(0)); + wc.getPage(req); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + + URL job2 = new URL(doCreateItem + "job2"); + req.setUrl(job2); + req.setRequestBody(""); + + WebResponse rspJob2 = wc.getPage(req).getWebResponse(); + assertTrue(rspJob2.getContentAsString().contains("Security3448Test$NotApplicableProject is not applicable in")); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + + URL job3 = new URL(doCreateItem + "job3"); + req.setUrl(job3); + req.setRequestBody(""); + j.jenkins.setAuthorizationStrategy(new UnsecuredNoFreestyleAuthorizationStrategy()); + + WebResponse rspJob3 = wc.getPage(req).getWebResponse(); + assertTrue(rspJob3.getContentAsString().contains("does not have required permissions to create hudson.model.FreeStyleProject")); + assertThat(j.jenkins.getItems(), Matchers.hasSize(1)); + } + } + + public static class UnsecuredNoFreestyleAuthorizationStrategy extends AuthorizationStrategy { + + @DataBoundConstructor + public UnsecuredNoFreestyleAuthorizationStrategy() {} + + @Override + public ACL getRootACL() { + return new ACL() { + + @Override + public boolean hasPermission2(Authentication a, Permission permission) { + return true; + } + + @Override + public boolean hasCreatePermission2( + @NonNull Authentication a, @NonNull ItemGroup c, @NonNull TopLevelItemDescriptor d) { + return d.clazz != FreeStyleProject.class; + } + }; + } + + @Override + public Collection getGroups() { + return Collections.emptyList(); + } + + @TestExtension + public static class DescriptorImpl extends Descriptor {} + } + + public static class NotApplicableProject extends Project implements TopLevelItem { + + NotApplicableProject(ItemGroup parent, String name) { + super(parent, name); + } + + @Override + protected Class getBuildClass() { + return NotApplicableBuild.class; + } + + @Override + public TopLevelItemDescriptor getDescriptor() { + return (NotApplicableProject.DescriptorImpl) Jenkins.get().getDescriptorOrDie(getClass()); + } + + @TestExtension + public static class DescriptorImpl extends AbstractProjectDescriptor { + + @Override + public boolean isApplicableIn(ItemGroup parent) { + return false; + } + + @Override + public TopLevelItem newInstance(ItemGroup parent, String name) { + return new NotApplicableProject(parent, name); + } + } + } + + public static class NotApplicableBuild extends Build { + + protected NotApplicableBuild(NotApplicableProject project) throws IOException { + super(project); + } + } +} From d0c0d07bc4644bc7045ac321472d0a9822dbb8b8 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 25 Sep 2024 07:59:26 +0000 Subject: [PATCH 002/160] [SECURITY-3451] --- .../resources/lib/form/secretTextarea.jelly | 2 +- ...etJsonInErrorMessageSanitizerHtmlTest.java | 80 +++++++++++++++++++ .../TestSecretTextarea/index.jelly | 39 +++++++++ .../main/webapp/scripts/hudson-behavior.js | 3 + 4 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 test/src/test/resources/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest/TestSecretTextarea/index.jelly diff --git a/core/src/main/resources/lib/form/secretTextarea.jelly b/core/src/main/resources/lib/form/secretTextarea.jelly index 323a8435d0f3..379023919528 100644 --- a/core/src/main/resources/lib/form/secretTextarea.jelly +++ b/core/src/main/resources/lib/form/secretTextarea.jelly @@ -101,7 +101,7 @@ Example usage:
diff --git a/test/src/test/java/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest.java b/test/src/test/java/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest.java index 0fe9b8865d16..b1435951f0e2 100644 --- a/test/src/test/java/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest.java +++ b/test/src/test/java/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest.java @@ -31,19 +31,24 @@ import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.not; +import hudson.ExtensionList; import hudson.model.Describable; import hudson.model.Descriptor; import hudson.model.RootAction; import hudson.util.Secret; +import jakarta.servlet.ServletException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.logging.Level; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.htmlunit.Page; +import org.htmlunit.html.HtmlElement; +import org.htmlunit.html.HtmlElementUtil; import org.htmlunit.html.HtmlForm; import org.htmlunit.html.HtmlInput; import org.htmlunit.html.HtmlPage; +import org.htmlunit.html.HtmlTextArea; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -223,6 +228,81 @@ public void checkSanitizationIsApplied_inStapler() throws Exception { )); } + @Test + @Issue("SECURITY-3451") + public void secretTextAreaSubmissionRedaction() throws Exception { + final TestSecretTextarea action = ExtensionList.lookupSingleton(TestSecretTextarea.class); + + logging.record("", Level.WARNING).capture(100); + + final String secretValue = "s3cr3t"; + + try (JenkinsRule.WebClient wc = j.createWebClient().withThrowExceptionOnFailingStatusCode(false)) { + + HtmlPage page = wc.goTo("test"); + + final HtmlForm form = page.getFormByName("config"); + final HtmlElement button = form.getElementsByTagName("button").stream().filter(b -> HtmlElementUtil.hasClassName(b, "secret-update-btn")).findFirst().orElseThrow(); + HtmlElementUtil.click(button); + + ((HtmlTextArea) form.getElementsByTagName("textarea").stream().filter(field -> HtmlElementUtil.hasClassName(field, "secretTextarea-redact")).findFirst().orElseThrow()).setText(secretValue); + + Page formSubmitPage = j.submit(form); + assertThat(formSubmitPage.getWebResponse().getContentAsString(), allOf( + containsString(RedactSecretJsonInErrorMessageSanitizer.REDACT_VALUE), + not(containsString(secretValue)) + )); + } + + // check the system log also + Throwable thrown = logging.getRecords().stream().filter(r -> r.getMessage().contains("Error while serving")).findAny().get().getThrown(); + // the exception from RequestImpl + assertThat(thrown.getCause().getMessage(), allOf( + containsString(RedactSecretJsonInErrorMessageSanitizer.REDACT_VALUE), + not(containsString(secretValue)) + )); + + StringWriter buffer = new StringWriter(); + thrown.printStackTrace(new PrintWriter(buffer)); + String fullStack = buffer.getBuffer().toString(); + assertThat(fullStack, allOf( + containsString(RedactSecretJsonInErrorMessageSanitizer.REDACT_VALUE), + not(containsString(secretValue)) + )); + } + + public static class SecretTextareaDescribable { + @DataBoundConstructor + public SecretTextareaDescribable(Secret secret) { + throw new IllegalArgumentException("there is something wrong with the secret"); + } + } + + @TestExtension("secretTextAreaSubmissionRedaction") + public static class TestSecretTextarea implements RootAction { + + public JSONObject lastJsonReceived; + + public void doSubmitTest(StaplerRequest2 req) throws ServletException { + req.bindJSON(SecretTextareaDescribable.class, req.getSubmittedForm()); + } + + @Override + public String getIconFileName() { + return null; + } + + @Override + public String getDisplayName() { + return null; + } + + @Override + public String getUrlName() { + return "test"; + } + } + public static class TestDescribable implements Describable { @DataBoundConstructor diff --git a/test/src/test/resources/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest/TestSecretTextarea/index.jelly b/test/src/test/resources/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest/TestSecretTextarea/index.jelly new file mode 100644 index 000000000000..05b146af865b --- /dev/null +++ b/test/src/test/resources/jenkins/security/RedactSecretJsonInErrorMessageSanitizerHtmlTest/TestSecretTextarea/index.jelly @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js index 6f877b5f8332..da691e76c97f 100644 --- a/war/src/main/webapp/scripts/hudson-behavior.js +++ b/war/src/main/webapp/scripts/hudson-behavior.js @@ -2531,6 +2531,9 @@ function buildFormTree(form) { if (e.classList.contains("complex-password-field")) { addProperty(p, "$redact", shortenName(e.name)); } + if (e.classList.contains("secretTextarea-redact")) { + addProperty(p, "$redact", shortenName(e.name)); + } break; } } From dfd7a9c48bea58213586a887e0ee8da82096497c Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 25 Sep 2024 07:59:32 +0000 Subject: [PATCH 003/160] [SECURITY-3373] --- .../main/java/hudson/model/AbstractItem.java | 21 +++++------ .../java/hudson/model/ItemGroupMixIn.java | 26 +++++++------- .../security/ExtendedReadRedaction.java | 36 +++++++++++++++++++ .../security/ExtendedReadSecretRedaction.java | 28 +++++++++++++++ test/src/test/java/lib/form/PasswordTest.java | 3 ++ 5 files changed, 88 insertions(+), 26 deletions(-) create mode 100644 core/src/main/java/jenkins/security/ExtendedReadRedaction.java create mode 100644 core/src/main/java/jenkins/security/ExtendedReadSecretRedaction.java diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 8ba7aafe15cd..e1a448d1f06e 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -59,8 +59,6 @@ import java.util.ListIterator; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.sax.SAXSource; @@ -70,6 +68,7 @@ import jenkins.model.Jenkins; import jenkins.model.Loadable; import jenkins.model.queue.ItemDeletion; +import jenkins.security.ExtendedReadRedaction; import jenkins.security.NotReallyRoleSensitiveCallable; import jenkins.security.stapler.StaplerNotDispatchable; import jenkins.util.SystemProperties; @@ -870,11 +869,11 @@ private void doConfigDotXmlImpl(StaplerRequest2 req, StaplerResponse2 rsp) rsp.sendError(SC_BAD_REQUEST); } - static final Pattern SECRET_PATTERN = Pattern.compile(">(" + Secret.ENCRYPTED_VALUE_PATTERN + ")<"); /** * Writes {@code config.xml} to the specified output stream. * The user must have at least {@link #EXTENDED_READ}. - * If he lacks {@link #CONFIGURE}, then any {@link Secret}s detected will be masked out. + * If he lacks {@link #CONFIGURE}, then any {@link Secret}s or other sensitive information detected will be masked out. + * @see jenkins.security.ExtendedReadRedaction */ @Restricted(NoExternalUse.class) @@ -886,15 +885,13 @@ public void writeConfigDotXml(OutputStream os) throws IOException { } else { String encoding = configFile.sniffEncoding(); String xml = Files.readString(Util.fileToPath(configFile.getFile()), Charset.forName(encoding)); - Matcher matcher = SECRET_PATTERN.matcher(xml); - StringBuilder cleanXml = new StringBuilder(); - while (matcher.find()) { - if (Secret.decrypt(matcher.group(1)) != null) { - matcher.appendReplacement(cleanXml, ">********<"); - } + + for (ExtendedReadRedaction redaction : ExtendedReadRedaction.all()) { + LOGGER.log(Level.FINE, () -> "Applying redaction " + redaction.getClass().getName()); + xml = redaction.apply(xml); } - matcher.appendTail(cleanXml); - org.apache.commons.io.IOUtils.write(cleanXml.toString(), os, encoding); + + org.apache.commons.io.IOUtils.write(xml, os, encoding); } } diff --git a/core/src/main/java/hudson/model/ItemGroupMixIn.java b/core/src/main/java/hudson/model/ItemGroupMixIn.java index f0b48787e24b..89945267edc5 100644 --- a/core/src/main/java/hudson/model/ItemGroupMixIn.java +++ b/core/src/main/java/hudson/model/ItemGroupMixIn.java @@ -31,7 +31,6 @@ import hudson.security.AccessControlled; import hudson.util.CopyOnWriteMap; import hudson.util.Function1; -import hudson.util.Secret; import io.jenkins.servlet.ServletExceptionWrapper; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletResponse; @@ -44,11 +43,11 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.regex.Matcher; import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import jenkins.model.Jenkins; +import jenkins.security.ExtendedReadRedaction; import jenkins.security.NotReallyRoleSensitiveCallable; import jenkins.util.xml.XMLUtils; import org.kohsuke.stapler.StaplerRequest; @@ -239,18 +238,17 @@ public synchronized T copy(T src, String name) throws I src.checkPermission(Item.EXTENDED_READ); XmlFile srcConfigFile = Items.getConfigFile(src); if (!src.hasPermission(Item.CONFIGURE)) { - Matcher matcher = AbstractItem.SECRET_PATTERN.matcher(srcConfigFile.asString()); - while (matcher.find()) { - if (Secret.decrypt(matcher.group(1)) != null) { - // AccessDeniedException2 does not permit a custom message, and anyway redirecting the user to the login screen is obviously pointless. - throw new AccessDeniedException( - Messages.ItemGroupMixIn_may_not_copy_as_it_contains_secrets_and_( - src.getFullName(), - Jenkins.getAuthentication2().getName(), - Item.PERMISSIONS.title, - Item.EXTENDED_READ.name, - Item.CONFIGURE.name)); - } + final String originalConfigDotXml = srcConfigFile.asString(); + final String redactedConfigDotXml = ExtendedReadRedaction.applyAll(originalConfigDotXml); + if (!originalConfigDotXml.equals(redactedConfigDotXml)) { + // AccessDeniedException2 does not permit a custom message, and anyway redirecting the user to the login screen is obviously pointless. + throw new AccessDeniedException( + Messages.ItemGroupMixIn_may_not_copy_as_it_contains_secrets_and_( + src.getFullName(), + Jenkins.getAuthentication2().getName(), + Item.PERMISSIONS.title, + Item.EXTENDED_READ.name, + Item.CONFIGURE.name)); } } src.getDescriptor().checkApplicableIn(parent); diff --git a/core/src/main/java/jenkins/security/ExtendedReadRedaction.java b/core/src/main/java/jenkins/security/ExtendedReadRedaction.java new file mode 100644 index 000000000000..31436c5622f2 --- /dev/null +++ b/core/src/main/java/jenkins/security/ExtendedReadRedaction.java @@ -0,0 +1,36 @@ +package jenkins.security; + +import hudson.ExtensionList; +import hudson.ExtensionPoint; + +/** + * Redact {@code config.xml} contents for users with ExtendedRead permission + * while lacking the required Configure permission to see the full unredacted + * configuration. + * + * @see SECURITY-266 + * @see Jenkins Security Advisory 2016-05-11 + * @since TODO + */ +public interface ExtendedReadRedaction extends ExtensionPoint { + /** + * Redacts sensitive information from the provided {@code config.xml} file content. + * Input may already have redactions applied; output may be passed through further redactions. + * These methods are expected to retain the basic structure of the XML document contained in input/output strings. + * + * @param configDotXml String representation of (potentially already redacted) config.xml file + * @return Redacted config.xml file content + */ + String apply(String configDotXml); + + static ExtensionList all() { + return ExtensionList.lookup(ExtendedReadRedaction.class); + } + + static String applyAll(String configDotXml) { + for (ExtendedReadRedaction redaction : all()) { + configDotXml = redaction.apply(configDotXml); + } + return configDotXml; + } +} diff --git a/core/src/main/java/jenkins/security/ExtendedReadSecretRedaction.java b/core/src/main/java/jenkins/security/ExtendedReadSecretRedaction.java new file mode 100644 index 000000000000..91a79f354d71 --- /dev/null +++ b/core/src/main/java/jenkins/security/ExtendedReadSecretRedaction.java @@ -0,0 +1,28 @@ +package jenkins.security; + +import hudson.Extension; +import hudson.util.Secret; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; + +@Restricted(NoExternalUse.class) +@Extension +public class ExtendedReadSecretRedaction implements ExtendedReadRedaction { + + private static final Pattern SECRET_PATTERN = Pattern.compile(">(" + Secret.ENCRYPTED_VALUE_PATTERN + ")<"); + + @Override + public String apply(String configDotXml) { + Matcher matcher = SECRET_PATTERN.matcher(configDotXml); + StringBuilder cleanXml = new StringBuilder(); + while (matcher.find()) { + if (Secret.decrypt(matcher.group(1)) != null) { + matcher.appendReplacement(cleanXml, ">********<"); + } + } + matcher.appendTail(cleanXml); + return cleanXml.toString(); + } +} diff --git a/test/src/test/java/lib/form/PasswordTest.java b/test/src/test/java/lib/form/PasswordTest.java index facb1d7418df..526ef1586ae9 100644 --- a/test/src/test/java/lib/form/PasswordTest.java +++ b/test/src/test/java/lib/form/PasswordTest.java @@ -67,6 +67,7 @@ import jenkins.model.GlobalConfiguration; import jenkins.model.Jenkins; import jenkins.model.TransientActionFactory; +import jenkins.security.ExtendedReadSecretRedaction; import jenkins.tasks.SimpleBuildStep; import org.htmlunit.Page; import org.htmlunit.html.DomElement; @@ -76,6 +77,7 @@ import org.htmlunit.html.HtmlTextInput; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.For; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.MockAuthorizationStrategy; @@ -124,6 +126,7 @@ public String getUrlName() { @Issue({"SECURITY-266", "SECURITY-304"}) @Test + @For(ExtendedReadSecretRedaction.class) public void testExposedCiphertext() throws Exception { boolean saveEnabled = Item.EXTENDED_READ.getEnabled(); Item.EXTENDED_READ.setEnabled(true); From 969d9feab9c11d5f88546c7233ce5296ecf4cc61 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:17:44 +0000 Subject: [PATCH 004/160] [maven-release-plugin] prepare release jenkins-2.479 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 47321614432c..e96af7b2a734 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 6309811a2e8b..480f8fec0195 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..c9a663db60e9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..18cf45c994fb 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 jenkins-coverage diff --git a/pom.xml b/pom.xml index 61ca93c2edc6..aa50414d9d98 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.479 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.479 -SNAPSHOT - 2024-09-24T13:48:23Z + 2024-09-27T08:03:11Z github diff --git a/test/pom.xml b/test/pom.xml index 0f3aa999e08e..6bf8c5567bc7 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index f256a95017ca..f4bae3397003 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..f2379f4f1116 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..0640a96de3a3 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.479 ../.. From 0db93161d61f31f3841e1b7e035c74f4255c41e7 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:18:06 +0000 Subject: [PATCH 005/160] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index e96af7b2a734..47321614432c 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 480f8fec0195..6309811a2e8b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index c9a663db60e9..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 18cf45c994fb..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index aa50414d9d98..8dc88a8f32ef 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.479 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.479 + 2.480 -SNAPSHOT - 2024-09-27T08:03:11Z + 2024-09-27T11:17:44Z github diff --git a/test/pom.xml b/test/pom.xml index 6bf8c5567bc7..0f3aa999e08e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index f4bae3397003..f256a95017ca 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index f2379f4f1116..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 0640a96de3a3..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.479 + ${revision}${changelist} ../.. From 7a1c2ce67adcc61e7a1c28e812ea14d454591874 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:44:18 +0200 Subject: [PATCH 006/160] [JENKINS-60866][JENKINS-71515] Use `JSON#parse` to process `codemirror-config` argument (#6867) * [JENKINS-60866] Use JSON#parse to process codemirror-config argument * Add backward compatibility for most common setting * Integrate fixed antisamy-markup-formatter to pass test * Fix JS and revert unnecessary antisamy-markup-formatter update How do we have a billion different linters and not one did tell me I'm redefining a variable? * Remove comment --------- Co-authored-by: Daniel Beck Co-authored-by: Basil Crow --- .../java/hudson/markup/MarkupFormatter.java | 11 ++++++--- .../hudson/tasks/Shell/config.groovy | 2 +- .../resources/lib/form/textarea/textarea.js | 23 ++++++++++++++++++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/markup/MarkupFormatter.java b/core/src/main/java/hudson/markup/MarkupFormatter.java index a3bf53a739a1..95af637af974 100644 --- a/core/src/main/java/hudson/markup/MarkupFormatter.java +++ b/core/src/main/java/hudson/markup/MarkupFormatter.java @@ -62,9 +62,14 @@ * This is an extension point in Hudson, allowing plugins to implement different markup formatters. * *

- * Implement the following methods to enable and control CodeMirror syntax highlighting - * public String getCodeMirrorMode() // return null to disable CodeMirror dynamically - * public String getCodeMirrorConfig() + * Implement the following methods to enable and control CodeMirror syntax highlighting: + *

    + *
  • public String getCodeMirrorMode() (return null to disable CodeMirror dynamically)
  • + *
  • + * public String getCodeMirrorConfig() (JSON snippet without surrounding curly braces, e.g., "mode": "text/css". + * Historically this allowed invalid JSON, but since TODO it needs to be properly quoted etc. + *
  • + *
* *

Views

*

diff --git a/core/src/main/resources/hudson/tasks/Shell/config.groovy b/core/src/main/resources/hudson/tasks/Shell/config.groovy index f895ffe88f3e..bfd163196917 100644 --- a/core/src/main/resources/hudson/tasks/Shell/config.groovy +++ b/core/src/main/resources/hudson/tasks/Shell/config.groovy @@ -25,7 +25,7 @@ package hudson.tasks.Shell f=namespace(lib.FormTagLib) f.entry(title:_("Command"),description:_("description",rootURL)) { - f.textarea(name: "command", value: instance?.command, class: "fixed-width", 'codemirror-mode': 'shell', 'codemirror-config': "mode: 'text/x-sh'") + f.textarea(name: "command", value: instance?.command, class: "fixed-width", 'codemirror-mode': 'shell', 'codemirror-config': '"mode": "text/x-sh"') } f.advanced() { diff --git a/core/src/main/resources/lib/form/textarea/textarea.js b/core/src/main/resources/lib/form/textarea/textarea.js index 1677e11fdd16..e1253cdfdab7 100644 --- a/core/src/main/resources/lib/form/textarea/textarea.js +++ b/core/src/main/resources/lib/form/textarea/textarea.js @@ -3,7 +3,28 @@ Behaviour.specify("TEXTAREA.codemirror", "textarea", 0, function (e) { if (!config) { config = ""; } - config = eval("({" + config + "})"); + try { + config = JSON.parse("{" + config + "}"); + } catch (ex) { + /* + * Attempt to parse fairly common legacy format whose exact content is: + * mode:'' + */ + let match = config.match("^mode: ?'([^']+)'$"); + if (match) { + console.log( + "Parsing simple legacy codemirror-config value using fallback: " + + config + ); + config = { mode: match[1] }; + } else { + console.log( + "Failed to parse codemirror-config '{" + config + "}' as JSON", + ex + ); + config = {}; + } + } if (!config.onBlur) { config.onBlur = function (editor) { editor.save(); From 9036086e29e276374e7bbe0612ad600106b67758 Mon Sep 17 00:00:00 2001 From: Yen Cheng Lin <92412722+ridemountainpig@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:44:36 +0800 Subject: [PATCH 007/160] [JENKINS-73437] Fix build history no automatic line wrapping (#9693) * Fix build history no automatic line wrapping * Update _job.scss --- war/src/main/scss/pages/_job.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/war/src/main/scss/pages/_job.scss b/war/src/main/scss/pages/_job.scss index 3b982fcffcf4..8692d19dc3f9 100644 --- a/war/src/main/scss/pages/_job.scss +++ b/war/src/main/scss/pages/_job.scss @@ -129,9 +129,12 @@ font-weight: 450; flex-grow: 1; padding: 0.45rem 0 0; + word-break: normal; + overflow-wrap: anywhere; .app-builds-container__item__time { color: var(--text-color-secondary); + white-space: nowrap; } } @@ -168,6 +171,8 @@ padding-left: 2.25rem; margin-top: -2px; grid-column: 1 / span 2; + word-break: normal; + overflow-wrap: anywhere; &::before { content: ""; From 68ea077ed1ac67ee5da2962e1c1b60331e45e762 Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:45:04 +0100 Subject: [PATCH 008/160] Refine 'Administrative monitors' interface (#9735) * Squashed commit of the following: * Rename section * Push * Update _plugin-manager.scss * Update _checkbox.scss * Reset files * Update _badges.scss * Update _badges.scss * Update _theme.scss * Remove label * Fix lint --------- Co-authored-by: Tim Jacomb --- .../config.groovy | 23 ++++---- .../config_it.properties | 2 - .../config_ru.properties | 2 - .../config_sv_SE.properties | 2 - .../config_tr.properties | 2 - war/src/main/scss/abstracts/_theme.scss | 6 --- war/src/main/scss/components/_badges.scss | 54 +++++-------------- war/src/main/scss/form/_checkbox.scss | 2 - 8 files changed, 25 insertions(+), 68 deletions(-) diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config.groovy b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config.groovy index f470918608d3..78b82d5a5021 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config.groovy +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config.groovy @@ -29,22 +29,21 @@ import hudson.model.AdministrativeMonitor f = namespace(lib.FormTagLib) st = namespace("jelly:stapler") -f.section(title: _("Administrative monitors configuration")) { +f.section(title: _("Administrative monitors"), description: _("blurb")) { f.advanced(title: _("Administrative monitors")) { - f.entry(title: _("Enabled administrative monitors")) { - p(class: "jenkins-form-description", _("blurb")) + f.entry() { for (AdministrativeMonitor am : new ArrayList<>(AdministrativeMonitor.all()) .sort({ o1, o2 -> o1.getDisplayName() <=> o2.getDisplayName() })) { - div(class: "jenkins-checkbox-help-wrapper") { - f.checkbox(name: "administrativeMonitor", - title: am.displayName, - checked: am.enabled, - json: am.id) - if (am.isSecurity()) { - span(style: 'margin-left: 0.5rem', class: 'am-badge', _("Security")) + div(style: "margin-bottom: 0.625rem") { + div(class: "jenkins-checkbox-help-wrapper") { + f.checkbox(name: "administrativeMonitor", + title: am.displayName, + checked: am.enabled, + json: am.id) + if (am.isSecurity()) { + span(style: 'margin-left: 0.5rem', class: 'jenkins-badge', _("Security")) + } } - } - div(class: "tr") { div(class: "jenkins-checkbox__description") { st.include(it: am, page: "description", optional: true) } diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_it.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_it.properties index 99774b93a33c..e6a4cda88b8d 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_it.properties +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_it.properties @@ -22,10 +22,8 @@ # THE SOFTWARE. Administrative\ monitors=Monitor amministrativi -Administrative\ monitors\ configuration=Configurazione monitor amministrativi blurb=I monitor amministrativi sono avvisi visualizzati agli amministratori \ di Jenkins riguardanti lo stato dell''istanza di Jenkins. In generale è \ caldamente consigliato mantenere tutti i monitor amministrativi abilitati, \ ma se non si è interessati a ricevere specifici avvisi, li si deselezioni \ qui per nasconderli permanentemente. -Enabled\ administrative\ monitors=Monitor amministrativi abilitati diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_ru.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_ru.properties index fabeb6e453ef..fc794e82e30f 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_ru.properties +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_ru.properties @@ -21,8 +21,6 @@ # THE SOFTWARE. Administrative\ monitors=Мониторы администрирования -Administrative\ monitors\ configuration=Настройка мониторов администрирования blurb=Мониторы администрирования - это предупреждения о состоянии экземпляра Jenkins, которые показываются \ администраторам Jenkins. Обычно настоятельно рекомендуется оставить все мониторы администрирования включёнными, но \ если некоторые предупреждения вас не интересуют, отключите их здесь, чтобы навсегда скрыть их. -Enabled\ administrative\ monitors=Включённые мониторы администрирования diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_sv_SE.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_sv_SE.properties index 2d46f007949b..4d20f2a9ff9b 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_sv_SE.properties +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_sv_SE.properties @@ -4,5 +4,3 @@ blurb=Administrativa övervakningar är varningar som visas för Jenkins-adminis inte är intresserad av specifika varningar kan du avmarkera dem här för att \ dölja dem permanent. Administrative\ monitors=Administrativa övervakningar -Administrative\ monitors\ configuration=Konfiguration av administrativa övervakningar -Enabled\ administrative\ monitors=Aktiverade administrativa övervakningar \ No newline at end of file diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_tr.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_tr.properties index 188640215ba6..63b7ff3612b0 100644 --- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_tr.properties +++ b/core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config_tr.properties @@ -1,4 +1,2 @@ -Administrative\ monitors\ configuration=İdari monitör ayarları Administrative\ monitors=İdari monitörler -Enabled\ administrative\ monitors=Aktif idari monitörler blurb=İdari monitörler, Jenkins yöneticilerine Jenkins örneğinin durumu hakkında gösterilen uyarılardır. Genel olarak tüm yönetim monitörlerini etkin tutmanız şiddetle tavsiye edilir, ancak belirli uyarılarla ilgilenmiyorsanız, kalıcı olarak gizlemek için buradaki işaretlerini kaldırın. diff --git a/war/src/main/scss/abstracts/_theme.scss b/war/src/main/scss/abstracts/_theme.scss index c108634f7c85..0558369c9ac3 100644 --- a/war/src/main/scss/abstracts/_theme.scss +++ b/war/src/main/scss/abstracts/_theme.scss @@ -331,12 +331,6 @@ $semantics: ( // Plugin manager --plugin-manager-bg-color-already-upgraded: var(--light-grey); - --plugin-manager-category-link-bg-color: var(--very-light-grey); - --plugin-manager-category-link-bg-color--hover: #f2f2f2; - --plugin-manager-category-link-border-color: var(--medium-grey); - --plugin-manager-category-link-border-color--hover: var(--black); - --plugin-manager-category-text-color: var(--text-color); - --plugin-manager-category-link-color--hover: var(--text-color); // Auto complete --auto-complete-bg-color--prehighlight: #b3d4ff; diff --git a/war/src/main/scss/components/_badges.scss b/war/src/main/scss/components/_badges.scss index 7fc69376af34..45fc8b9dc803 100644 --- a/war/src/main/scss/components/_badges.scss +++ b/war/src/main/scss/components/_badges.scss @@ -1,39 +1,5 @@ -.am-badge, -.plugin-manager__category-label:link, -.plugin-manager__category-label:visited { - display: inline-block; - border: 1px solid var(--plugin-manager-category-link-border-color); - background-color: var(--plugin-manager-category-link-bg-color); - color: var(--plugin-manager-category-text-color); - border-radius: 4px; - font-size: 0.75rem; - font-weight: 500; - padding: 0 0.5rem; - margin: 0 0.25rem 0 0; - text-decoration: none; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - transition: all 0.15s ease-in-out; -} - -.plugin-manager__category-label:link, -.plugin-manager__category-label:visited { - &:hover, - &:focus, - &:active { - background-color: var(--plugin-manager-category-link-bg-color--hover); - border-color: var(--plugin-manager-category-link-border-color--hover); - color: var(--plugin-manager-category-link-color--hover); - } -} - -.am-badge { - display: inline; -} - .jenkins-badge { - display: flex; + display: inline-flex; align-items: center; justify-content: center; border-radius: 100px; @@ -42,9 +8,17 @@ min-height: 20px; min-width: 20px; padding: 0 0.4rem; - background: color-mix(in sRGB, var(--color) 85%, transparent); - box-shadow: inset 0 -1px 2px var(--color); - color: var(--white) !important; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(2.5px); + background: color-mix( + in sRGB, + var(--text-color-secondary) 12.5%, + transparent + ); + + &[class*="color"] { + background: color-mix(in sRGB, var(--color) 85%, transparent); + color: var(--white) !important; + box-shadow: inset 0 -1px 2px var(--color, var(--text-color-secondary)); + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(2.5px); + } } diff --git a/war/src/main/scss/form/_checkbox.scss b/war/src/main/scss/form/_checkbox.scss index d9cd5f18c951..6e5633dd991f 100644 --- a/war/src/main/scss/form/_checkbox.scss +++ b/war/src/main/scss/form/_checkbox.scss @@ -187,9 +187,7 @@ } .jenkins-checkbox__description { - margin-top: 0.3rem; margin-left: 34px; - margin-bottom: 1rem; color: var(--text-color-secondary); line-height: 1.66; } From a6f723cef725ea66c992f286516e872857dc6d9d Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Wed, 2 Oct 2024 16:45:44 +0200 Subject: [PATCH 009/160] Introduce `SaveableListener#onDeleted` (#9743) * Introduce SaveableListener#onDeleted Usually `Saveable` objects are written, but it can happen on occasion that they get deleted, and it wasn't generating an event for every case. This provides a more fine-grained event that can be handled by implemented listeners. In my case, I have a use case in CloudBees CI where I need to clear a cache entry when a Saveable gets deleted from disk. * Spotless * Explicitly test that the user that has performed the change can be obtained from the Saveable listener. --- .../main/java/hudson/logging/LogRecorder.java | 2 +- .../main/java/hudson/model/AbstractItem.java | 1 + core/src/main/java/hudson/model/Run.java | 2 + .../model/listeners/SaveableListener.java | 30 +++++--- core/src/main/java/jenkins/model/Nodes.java | 1 + .../logging/LogRecorderManagerTest.java | 2 +- .../java/hudson/model/AbstractItemTest.java | 68 ++++++++++++++++--- test/src/test/java/hudson/model/RunTest.java | 14 ++++ .../test/java/jenkins/model/NodesTest.java | 17 +++++ 9 files changed, 115 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index ad4c40028547..c11c1bbfa57e 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -556,7 +556,7 @@ public void delete() throws IOException { loggers.forEach(Target::disable); getParent().getRecorders().forEach(logRecorder -> logRecorder.getLoggers().forEach(Target::enable)); - SaveableListener.fireOnChange(this, getConfigFile()); + SaveableListener.fireOnDeleted(this, getConfigFile()); } /** diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index e1a448d1f06e..f31316c31656 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -814,6 +814,7 @@ public void delete() throws IOException, InterruptedException { ItemDeletion.deregister(this); } } + SaveableListener.fireOnDeleted(this, getConfigFile()); getParent().onDeleted(AbstractItem.this); Jenkins.get().rebuildDependencyGraphAsync(); } diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 37b09fd47d25..450be07b7f1a 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1570,6 +1570,7 @@ public void delete() throws IOException { )); //Still firing the delete listeners; just no need to clean up rootDir RunListener.fireDeleted(this); + SaveableListener.fireOnDeleted(this, getDataFile()); synchronized (this) { // avoid holding a lock while calling plugin impls of onDeleted removeRunFromParent(); } @@ -1578,6 +1579,7 @@ public void delete() throws IOException { //The root dir exists and is a directory that needs to be purged RunListener.fireDeleted(this); + SaveableListener.fireOnDeleted(this, getDataFile()); if (artifactManager != null) { deleteArtifacts(); diff --git a/core/src/main/java/hudson/model/listeners/SaveableListener.java b/core/src/main/java/hudson/model/listeners/SaveableListener.java index 46bbc6ab60be..02747877e76f 100644 --- a/core/src/main/java/hudson/model/listeners/SaveableListener.java +++ b/core/src/main/java/hudson/model/listeners/SaveableListener.java @@ -30,8 +30,7 @@ import hudson.ExtensionPoint; import hudson.XmlFile; import hudson.model.Saveable; -import java.util.logging.Level; -import java.util.logging.Logger; +import jenkins.util.Listeners; /** * Receives notifications about save actions on {@link Saveable} objects in Hudson. @@ -54,6 +53,17 @@ public abstract class SaveableListener implements ExtensionPoint { */ public void onChange(Saveable o, XmlFile file) {} + /** + * Called when a {@link Saveable} object gets deleted. + * + * @param o + * The saveable object. + * @param file + * The {@link XmlFile} for this saveable object. + * @since TODO + */ + public void onDeleted(Saveable o, XmlFile file) {} + /** * Registers this object as an active listener so that it can start getting * callbacks invoked. @@ -77,13 +87,15 @@ public void unregister() { * Fires the {@link #onChange} event. */ public static void fireOnChange(Saveable o, XmlFile file) { - for (SaveableListener l : all()) { - try { - l.onChange(o, file); - } catch (Throwable t) { - Logger.getLogger(SaveableListener.class.getName()).log(Level.WARNING, null, t); - } - } + Listeners.notify(SaveableListener.class, false, l -> l.onChange(o, file)); + } + + /** + * Fires the {@link #onDeleted} event. + * @since TODO + */ + public static void fireOnDeleted(Saveable o, XmlFile file) { + Listeners.notify(SaveableListener.class, false, l -> l.onDeleted(o, file)); } /** diff --git a/core/src/main/java/jenkins/model/Nodes.java b/core/src/main/java/jenkins/model/Nodes.java index 8f4c0e5eafc6..e15d391c4975 100644 --- a/core/src/main/java/jenkins/model/Nodes.java +++ b/core/src/main/java/jenkins/model/Nodes.java @@ -295,6 +295,7 @@ public void run() { jenkins.trimLabels(node); } NodeListener.fireOnDeleted(node); + SaveableListener.fireOnDeleted(node, getConfigFile(node)); } } diff --git a/test/src/test/java/hudson/logging/LogRecorderManagerTest.java b/test/src/test/java/hudson/logging/LogRecorderManagerTest.java index 608e7eb0b464..101729038a33 100644 --- a/test/src/test/java/hudson/logging/LogRecorderManagerTest.java +++ b/test/src/test/java/hudson/logging/LogRecorderManagerTest.java @@ -229,7 +229,7 @@ public static class DeletingLogRecorderListener extends SaveableListener { private static boolean recordDeletion; @Override - public void onChange(Saveable o, XmlFile file) { + public void onDeleted(Saveable o, XmlFile file) { if (o instanceof LogRecorder && "dummy".equals(((LogRecorder) o).getName())) { if (!file.exists()) { recordDeletion = true; diff --git a/test/src/test/java/hudson/model/AbstractItemTest.java b/test/src/test/java/hudson/model/AbstractItemTest.java index 165c39a96e6e..8e2a5036b14a 100644 --- a/test/src/test/java/hudson/model/AbstractItemTest.java +++ b/test/src/test/java/hudson/model/AbstractItemTest.java @@ -6,6 +6,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import hudson.ExtensionList; import hudson.XmlFile; @@ -33,6 +34,7 @@ import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.SleepBuilder; import org.jvnet.hudson.test.TestExtension; +import org.springframework.security.core.Authentication; public class AbstractItemTest { @@ -45,12 +47,21 @@ public class AbstractItemTest { @Test public void reload() throws Exception { Jenkins jenkins = j.jenkins; - FreeStyleProject p = jenkins.createProject(FreeStyleProject.class, "foo"); - p.setDescription("Hello World"); + jenkins.setSecurityRealm(j.createDummySecurityRealm()); + MockAuthorizationStrategy mas = new MockAuthorizationStrategy(); + mas.grant(Item.CONFIGURE).everywhere().to("alice", "bob"); + mas.grant(Item.READ).everywhere().to("alice"); - FreeStyleBuild b = j.buildAndAssertSuccess(p); - b.setDescription("This is my build"); + FreeStyleProject p; + FreeStyleBuild b; + var alice = User.getById("alice", true); + try (ACLContext ignored = ACL.as(alice)) { + p = jenkins.createProject(FreeStyleProject.class, "foo"); + p.setDescription("Hello World"); + b = j.buildAndAssertSuccess(p); + b.setDescription("This is my build"); + } // update on disk representation Path path = p.getConfigFile().getFile().toPath(); Files.writeString(path, Files.readString(path, StandardCharsets.UTF_8).replaceAll("Hello World", "Good Evening"), StandardCharsets.UTF_8); @@ -61,15 +72,25 @@ public void reload() throws Exception { // reload away p.doReload(); - assertFalse(SaveableListener.class.getSimpleName() + " should not have been called", testSaveableListener.wasCalled()); - - + assertFalse(SaveableListener.class.getSimpleName() + " should not have been called", testSaveableListener.isChangeCalled()); assertEquals("Good Evening", p.getDescription()); FreeStyleBuild b2 = p.getBuildByNumber(1); assertNotEquals(b, b2); // should be different object assertEquals(b.getDescription(), b2.getDescription()); // but should have the same properties + + try (var ignored = ACL.as(alice)) { + p.setDescription("This is Alice's project"); + } + assertTrue(SaveableListener.class.getSimpleName() + " should have been called", testSaveableListener.isChangeCalled()); + assertThat(testSaveableListener.getChangeUser(), equalTo(alice.impersonate2())); + + try (var ignored = ACL.as(alice)) { + p.delete(); + } + assertTrue(SaveableListener.class.getSimpleName() + " should have been called", testSaveableListener.isDeleteCalled()); + assertThat(testSaveableListener.getDeleteUser(), equalTo(alice.impersonate2())); } @Test @@ -158,20 +179,45 @@ private String getPath(URL u) { public static class TestSaveableListener extends SaveableListener { private Saveable saveable; - private boolean called; + private boolean changeCalled; + private Authentication changeUser; + + private boolean deleteCalled; + private Authentication deleteUser; private void setSaveable(Saveable saveable) { this.saveable = saveable; } - public boolean wasCalled() { - return called; + public boolean isChangeCalled() { + return changeCalled; + } + + public Authentication getChangeUser() { + return changeUser; + } + + public boolean isDeleteCalled() { + return deleteCalled; + } + + public Authentication getDeleteUser() { + return deleteUser; } @Override public void onChange(Saveable o, XmlFile file) { if (o == saveable) { - this.called = true; + changeCalled = true; + changeUser = Jenkins.getAuthentication2(); + } + } + + @Override + public void onDeleted(Saveable o, XmlFile file) { + if (o == saveable) { + deleteCalled = true; + deleteUser = Jenkins.getAuthentication2(); } } } diff --git a/test/src/test/java/hudson/model/RunTest.java b/test/src/test/java/hudson/model/RunTest.java index b6a145857020..34be1f14c2ef 100644 --- a/test/src/test/java/hudson/model/RunTest.java +++ b/test/src/test/java/hudson/model/RunTest.java @@ -32,8 +32,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import hudson.ExtensionList; import hudson.FilePath; import hudson.Launcher; +import hudson.XmlFile; +import hudson.model.listeners.SaveableListener; import hudson.tasks.ArtifactArchiver; import hudson.tasks.BuildTrigger; import hudson.tasks.Builder; @@ -112,6 +115,17 @@ public class RunTest { FreeStyleBuild b = j.buildAndAssertSuccess(p); b.delete(); assertTrue(Mgr.deleted.get()); + assertTrue(ExtensionList.lookupSingleton(SaveableListenerImpl.class).deleted); + } + + @TestExtension("deleteArtifactsCustom") + public static class SaveableListenerImpl extends SaveableListener { + boolean deleted; + + @Override + public void onDeleted(Saveable o, XmlFile file) { + deleted = true; + } } @Issue("SECURITY-1902") diff --git a/test/src/test/java/jenkins/model/NodesTest.java b/test/src/test/java/jenkins/model/NodesTest.java index 275dd9a3e5fb..c7207b9977c5 100644 --- a/test/src/test/java/jenkins/model/NodesTest.java +++ b/test/src/test/java/jenkins/model/NodesTest.java @@ -37,10 +37,13 @@ import edu.umd.cs.findbugs.annotations.NonNull; import hudson.ExtensionList; +import hudson.XmlFile; import hudson.model.Descriptor; import hudson.model.Failure; import hudson.model.Node; +import hudson.model.Saveable; import hudson.model.Slave; +import hudson.model.listeners.SaveableListener; import hudson.slaves.ComputerLauncher; import hudson.slaves.DumbSlave; import java.io.IOException; @@ -99,6 +102,10 @@ public void addNodeShouldReplaceExistingNode() throws Exception { assertEquals(0, l.deleted); assertEquals(1, l.updated); assertEquals(1, l.created); + var saveableListener = ExtensionList.lookupSingleton(SaveableListenerImpl.class); + assertEquals(0, saveableListener.deleted); + r.jenkins.removeNode(newNode); + assertEquals(1, saveableListener.deleted); } @TestExtension("addNodeShouldReplaceExistingNode") @@ -122,6 +129,16 @@ protected void onCreated(Node node) { } } + @TestExtension("addNodeShouldReplaceExistingNode") + public static final class SaveableListenerImpl extends SaveableListener { + int deleted; + + @Override + public void onDeleted(Saveable o, XmlFile file) { + deleted++; + } + } + @Test @Issue("JENKINS-56403") public void replaceNodeShouldRemoveOldNode() throws Exception { From 39e6622524293ff496ecfccec858a94fd66380c1 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Wed, 2 Oct 2024 16:46:21 +0200 Subject: [PATCH 010/160] Extract interfaces for objects to be used through the executors widget (#9749) * Extract interfaces for objects to be used through the executors widget This is required for CloudBees CI HA support: we provide alternate implementations of these interfaces to represent computers and related objects that exist in different physical replicas of the same logical instance. This allows to be build an aggregated view of computers and executors, some local, some remote. * Fix Deprecated annotation * Missing @Override annotations * Missing @since TODO * No longer true according to AbstractSubTask javadoc * Restore old signature for compatibility * Fix reviews * Javadoc * Typo * Fix inconsistency between hasOfflineCause and getOfflineCauseReason * Remove default implementation of ITask#getUrl * Provide default impl in SubTask for compatibility * Mark as CheckForNull * Spotbugs * ComputerSet#getComputers returns a collection that is sorted by name * Missing Override * Move permission declaration to the right place, closer to usage --- core/src/main/java/hudson/model/Computer.java | 174 ++++------------- .../main/java/hudson/model/ComputerSet.java | 52 ++++- core/src/main/java/hudson/model/Executor.java | 59 ++---- core/src/main/java/hudson/model/Queue.java | 19 +- .../main/java/hudson/model/queue/SubTask.java | 17 +- .../security/AuthorizationStrategy.java | 17 ++ .../java/jenkins/model/DisplayExecutor.java | 97 ++++++++++ .../main/java/jenkins/model/IComputer.java | 182 ++++++++++++++++++ .../java/jenkins/model/IDisplayExecutor.java | 55 ++++++ .../main/java/jenkins/model/IExecutor.java | 144 ++++++++++++++ core/src/main/java/jenkins/model/Jenkins.java | 18 +- .../model/ModelObjectWithContextMenu.java | 12 ++ .../main/java/jenkins/model/queue/ITask.java | 76 ++++++++ .../hudson/model/ComputerSet/index.jelly | 4 +- .../main/resources/lib/hudson/executors.jelly | 46 ++--- .../java/hudson/model/ComputerSetTest.java | 7 +- 16 files changed, 726 insertions(+), 253 deletions(-) create mode 100644 core/src/main/java/jenkins/model/DisplayExecutor.java create mode 100644 core/src/main/java/jenkins/model/IComputer.java create mode 100644 core/src/main/java/jenkins/model/IDisplayExecutor.java create mode 100644 core/src/main/java/jenkins/model/IExecutor.java create mode 100644 core/src/main/java/jenkins/model/queue/ITask.java diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 081f73dd1625..1047fe97000c 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -41,7 +41,6 @@ import hudson.console.AnnotatedLargeText; import hudson.init.Initializer; import hudson.model.Descriptor.FormException; -import hudson.model.Queue.FlyweightTask; import hudson.model.labels.LabelAtom; import hudson.model.queue.WorkUnit; import hudson.node_monitors.AbstractDiskSpaceMonitor; @@ -106,6 +105,9 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; +import jenkins.model.DisplayExecutor; +import jenkins.model.IComputer; +import jenkins.model.IDisplayExecutor; import jenkins.model.Jenkins; import jenkins.security.ImpersonatingExecutorService; import jenkins.security.MasterToSlaveCallable; @@ -116,8 +118,6 @@ import jenkins.util.SystemProperties; import jenkins.widgets.HasWidgets; import net.jcip.annotations.GuardedBy; -import org.jenkins.ui.icon.Icon; -import org.jenkins.ui.icon.IconSet; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -150,7 +150,7 @@ * if a {@link Node} is configured (probably temporarily) with 0 executors, * you won't have a {@link Computer} object for it (except for the built-in node, * which always gets its {@link Computer} in case we have no static executors and - * we need to run a {@link FlyweightTask} - see JENKINS-7291 for more discussion.) + * we need to run a {@link Queue.FlyweightTask} - see JENKINS-7291 for more discussion.) * * Also, even if you remove a {@link Node}, it takes time for the corresponding * {@link Computer} to be removed, if some builds are already in progress on that @@ -164,7 +164,7 @@ * @author Kohsuke Kawaguchi */ @ExportedBean -public /*transient*/ abstract class Computer extends Actionable implements AccessControlled, ExecutorListener, DescriptorByNameOwner, StaplerProxy, HasWidgets { +public /*transient*/ abstract class Computer extends Actionable implements AccessControlled, IComputer, ExecutorListener, DescriptorByNameOwner, StaplerProxy, HasWidgets { private final CopyOnWriteArrayList executors = new CopyOnWriteArrayList<>(); // TODO: @@ -351,12 +351,6 @@ public AnnotatedLargeText getLogText() { return new AnnotatedLargeText<>(getLogFile(), Charset.defaultCharset(), false, this); } - @NonNull - @Override - public ACL getACL() { - return Jenkins.get().getAuthorizationStrategy().getACL(this); - } - /** * If the computer was offline (either temporarily or not), * this method will return the cause. @@ -369,14 +363,13 @@ public OfflineCause getOfflineCause() { return offlineCause; } - /** - * If the computer was offline (either temporarily or not), - * this method will return the cause as a string (without user info). - * - * @return - * empty string if the system was put offline without given a cause. - */ + @Override + public boolean hasOfflineCause() { + return offlineCause != null; + } + @Exported + @Override public String getOfflineCauseReason() { if (offlineCause == null) { return ""; @@ -581,9 +574,6 @@ public int getNumExecutors() { return numExecutors; } - /** - * Returns {@link Node#getNodeName() the name of the node}. - */ public @NonNull String getName() { return nodeName != null ? nodeName : ""; } @@ -628,6 +618,7 @@ public BuildTimelineWidget getTimeline() { } @Exported + @Override public boolean isOffline() { return temporarilyOffline || getChannel() == null; } @@ -645,12 +636,6 @@ public boolean isManualLaunchAllowed() { return getRetentionStrategy().isManualLaunchAllowed(this); } - - /** - * Is a {@link #connect(boolean)} operation in progress? - */ - public abstract boolean isConnecting(); - /** * Returns true if this computer is supposed to be launched via inbound protocol. * @deprecated since 2008-05-18. @@ -662,14 +647,8 @@ public boolean isJnlpAgent() { return false; } - /** - * Returns true if this computer can be launched by Hudson proactively and automatically. - * - *

- * For example, inbound agents return {@code false} from this, because the launch process - * needs to be initiated from the agent side. - */ @Exported + @Override public boolean isLaunchSupported() { return true; } @@ -727,14 +706,8 @@ public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause } } - /** - * Returns the icon for this computer. - * - * It is both the recommended and default implementation to serve different icons based on {@link #isOffline} - * - * @see #getIconClassName() - */ @Exported + @Override public String getIcon() { // The machine was taken offline by someone if (isTemporarilyOffline() && getOfflineCause() instanceof OfflineCause.UserCause) return "symbol-computer-disconnected"; @@ -748,19 +721,15 @@ public String getIcon() { } /** - * Returns the class name that will be used to lookup the icon. + * {@inheritDoc} * - * This class name will be added as a class tag to the html img tags where the icon should - * show up followed by a size specifier given by {@link Icon#toNormalizedIconSizeClass(String)} - * The conversion of class tag to src tag is registered through {@link IconSet#addIcon(Icon)} - * - * It is both the recommended and default implementation to serve different icons based on {@link #isOffline} - * - * @see #getIcon() + *

+ * It is both the recommended and default implementation to serve different icons based on {@link #isOffline}. */ @Exported + @Override public String getIconClassName() { - return getIcon(); + return IComputer.super.getIconClassName(); } public String getIconAltText() { @@ -780,6 +749,8 @@ public String getCaption() { return Messages.Computer_Caption(nodeName); } + @Override + @NonNull public String getUrl() { return "computer/" + Util.fullEncode(getName()) + "/"; } @@ -947,19 +918,18 @@ public int countIdle() { return n; } - /** - * Returns the number of {@link Executor}s that are doing some work right now. - */ + @Override public final int countBusy() { return countExecutors() - countIdle(); } /** - * Returns the current size of the executor pool for this computer. + * {@inheritDoc} * This number may temporarily differ from {@link #getNumExecutors()} if there * are busy tasks when the configured size is decreased. OneOffExecutors are * not included in this count. */ + @Override public final int countExecutors() { return executors.size(); } @@ -996,14 +966,14 @@ public List getAllExecutors() { } /** - * Used to render the list of executors. - * @return a snapshot of the executor display information + * {@inheritDoc} * @since 1.607 */ - @Restricted(NoExternalUse.class) - public List getDisplayExecutors() { + @Override + @NonNull + public List getDisplayExecutors() { // The size may change while we are populating, but let's start with a reasonable guess to minimize resizing - List result = new ArrayList<>(executors.size() + oneOffExecutors.size()); + List result = new ArrayList<>(executors.size() + oneOffExecutors.size()); int index = 0; for (Executor e : executors) { if (e.isDisplayCell()) { @@ -1659,15 +1629,8 @@ public Object getTarget() { return e != null ? e.getOwner() : null; } - /** - * Returns {@code true} if the computer is accepting tasks. Needed to allow agents programmatic suspension of task - * scheduling that does not overlap with being offline. - * - * @return {@code true} if the computer is accepting tasks - * @see hudson.slaves.RetentionStrategy#isAcceptingTasks(Computer) - * @see hudson.model.Node#isAcceptingTasks() - */ @OverrideMustInvoke + @Override public boolean isAcceptingTasks() { final Node node = getNode(); return getRetentionStrategy().isAcceptingTasks(this) && (node == null || node.isAcceptingTasks()); @@ -1727,79 +1690,12 @@ public static void relocateOldLogs() { } } - /** - * A value class to provide a consistent snapshot view of the state of an executor to avoid race conditions - * during rendering of the executors list. - * - * @since 1.607 - */ - @Restricted(NoExternalUse.class) - public static class DisplayExecutor implements ModelObject { - - @NonNull - private final String displayName; - @NonNull - private final String url; - @NonNull - private final Executor executor; - - public DisplayExecutor(@NonNull String displayName, @NonNull String url, @NonNull Executor executor) { - this.displayName = displayName; - this.url = url; - this.executor = executor; - } - - @Override - @NonNull - public String getDisplayName() { - return displayName; - } - - @NonNull - public String getUrl() { - return url; - } - - @NonNull - public Executor getExecutor() { - return executor; - } - - @Override - public String toString() { - String sb = "DisplayExecutor{" + "displayName='" + displayName + '\'' + - ", url='" + url + '\'' + - ", executor=" + executor + - '}'; - return sb; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - DisplayExecutor that = (DisplayExecutor) o; - - return executor.equals(that.executor); - } - - @Extension(ordinal = Double.MAX_VALUE) - @Restricted(DoNotUse.class) - public static class InternalComputerListener extends ComputerListener { - @Override - public void onOnline(Computer c, TaskListener listener) throws IOException, InterruptedException { - c.cachedEnvironment = null; - } - } - + @Extension(ordinal = Double.MAX_VALUE) + @Restricted(DoNotUse.class) + public static class InternalComputerListener extends ComputerListener { @Override - public int hashCode() { - return executor.hashCode(); + public void onOnline(Computer c, TaskListener listener) throws IOException, InterruptedException { + c.cachedEnvironment = null; } } diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index f25d25a19a50..f8e4905b0904 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -30,6 +30,8 @@ import hudson.BulkChange; import hudson.DescriptorExtensionList; import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; import hudson.Util; import hudson.XmlFile; import hudson.init.Initializer; @@ -47,18 +49,24 @@ import java.lang.reflect.InvocationTargetException; import java.util.AbstractList; import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import jenkins.model.IComputer; import jenkins.model.Jenkins; import jenkins.model.ModelObjectWithChildren; import jenkins.model.ModelObjectWithContextMenu.ContextMenu; import jenkins.util.Timer; import jenkins.widgets.HasWidgets; import net.sf.json.JSONObject; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.Beta; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest2; @@ -106,15 +114,36 @@ public static List get_monitors() { return monitors.toList(); } - @Exported(name = "computer", inline = true) + /** + * @deprecated Use {@link #getComputers()} instead. + * @return All {@link Computer} instances managed by this set. + */ + @Deprecated(since = "TODO") public Computer[] get_all() { - return Jenkins.get().getComputers(); + return getComputers().stream().filter(Computer.class::isInstance).toArray(Computer[]::new); + } + + /** + * @return All {@link IComputer} instances managed by this set, sorted by name. + */ + @Exported(name = "computer", inline = true) + public Collection getComputers() { + return ExtensionList.lookupFirst(ComputerSource.class).get().stream().sorted(Comparator.comparing(IComputer::getName)).toList(); + } + + /** + * Allows plugins to override the displayed list of computers. + * + */ + @Restricted(Beta.class) + public interface ComputerSource extends ExtensionPoint { + Collection get(); } @Override public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception { ContextMenu m = new ContextMenu(); - for (Computer c : get_all()) { + for (IComputer c : getComputers()) { m.add(c); } return m; @@ -170,7 +199,7 @@ public int size() { @Exported public int getTotalExecutors() { int r = 0; - for (Computer c : get_all()) { + for (IComputer c : getComputers()) { if (c.isOnline()) r += c.countExecutors(); } @@ -183,7 +212,7 @@ public int getTotalExecutors() { @Exported public int getBusyExecutors() { int r = 0; - for (Computer c : get_all()) { + for (IComputer c : getComputers()) { if (c.isOnline()) r += c.countBusy(); } @@ -195,7 +224,7 @@ public int getBusyExecutors() { */ public int getIdleExecutors() { int r = 0; - for (Computer c : get_all()) + for (IComputer c : getComputers()) if ((c.isOnline() || c.isConnecting()) && c.isAcceptingTasks()) r += c.countIdle(); return r; @@ -214,7 +243,7 @@ public Computer getDynamic(String token, StaplerRequest2 req, StaplerResponse2 r public void do_launchAll(StaplerRequest2 req, StaplerResponse2 rsp) throws IOException { Jenkins.get().checkPermission(Jenkins.ADMINISTER); - for (Computer c : get_all()) { + for (IComputer c : getComputers()) { if (c.isLaunchSupported()) c.connect(true); } @@ -502,4 +531,13 @@ private static NodeMonitor createDefaultInstance(Descriptor d, bool } return null; } + + @Extension(ordinal = -1) + @Restricted(DoNotUse.class) + public static class ComputerSourceImpl implements ComputerSource { + @Override + public Collection get() { + return Jenkins.get().getComputersCollection(); + } + } } diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 94aa1c770d21..f86dbd7c6c0a 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -61,6 +61,7 @@ import java.util.stream.Collectors; import jenkins.model.CauseOfInterruption; import jenkins.model.CauseOfInterruption.UserInterruption; +import jenkins.model.IExecutor; import jenkins.model.InterruptedBuildAction; import jenkins.model.Jenkins; import jenkins.model.queue.AsynchronousExecution; @@ -88,7 +89,7 @@ * @author Kohsuke Kawaguchi */ @ExportedBean -public class Executor extends Thread implements ModelObject { +public class Executor extends Thread implements ModelObject, IExecutor { protected final @NonNull Computer owner; private final Queue queue; private final ReadWriteLock lock = new ReentrantReadWriteLock(); @@ -526,6 +527,7 @@ public void completedAsynchronous(@CheckForNull Throwable error) { * @return * null if the executor is idle. */ + @Override public @CheckForNull Queue.Executable getCurrentExecutable() { lock.readLock().lock(); try { @@ -555,14 +557,8 @@ public Queue.Executable getCurrentExecutableForApi() { return Collections.unmodifiableCollection(causes); } - /** - * Returns the current {@link WorkUnit} (of {@link #getCurrentExecutable() the current executable}) - * that this executor is running. - * - * @return - * null if the executor is idle. - */ @CheckForNull + @Override public WorkUnit getCurrentWorkUnit() { lock.readLock().lock(); try { @@ -601,22 +597,14 @@ public String getDisplayName() { return "Executor #" + getNumber(); } - /** - * Gets the executor number that uniquely identifies it among - * other {@link Executor}s for the same computer. - * - * @return - * a sequential number starting from 0. - */ @Exported + @Override public int getNumber() { return number; } - /** - * Returns true if this {@link Executor} is ready for action. - */ @Exported + @Override public boolean isIdle() { lock.readLock().lock(); try { @@ -705,13 +693,8 @@ public boolean isParking() { return null; } - /** - * Returns the progress of the current build in the number between 0-100. - * - * @return -1 - * if it's impossible to estimate the progress. - */ @Exported + @Override public int getProgress() { long d = executableEstimatedDuration; if (d <= 0) { @@ -725,14 +708,8 @@ public int getProgress() { return num; } - /** - * Returns true if the current build is likely stuck. - * - *

- * This is a heuristics based approach, but if the build is suspiciously taking for a long time, - * this method returns true. - */ @Exported + @Override public boolean isLikelyStuck() { lock.readLock().lock(); try { @@ -754,6 +731,7 @@ public boolean isLikelyStuck() { } } + @Override public long getElapsedTime() { lock.readLock().lock(); try { @@ -777,20 +755,7 @@ public long getTimeSpentInQueue() { } } - /** - * Gets the string that says how long since this build has started. - * - * @return - * string like "3 minutes" "1 day" etc. - */ - public String getTimestampString() { - return Util.getTimeSpanString(getElapsedTime()); - } - - /** - * Computes a human-readable text that shows the expected remaining time - * until the build completes. - */ + @Override public String getEstimatedRemainingTime() { long d = executableEstimatedDuration; if (d < 0) { @@ -911,9 +876,7 @@ public HttpResponse doYank() { return HttpResponses.redirectViaContextPath("/"); } - /** - * Checks if the current user has a permission to stop this build. - */ + @Override public boolean hasStopPermission() { lock.readLock().lock(); try { diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index 08eba90b906c..797cba56f394 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -1956,24 +1956,6 @@ default void checkAbortPermission() { } } - /** - * Works just like {@link #checkAbortPermission()} except it indicates the status by a return value, - * instead of exception. - * Also used by default for {@link hudson.model.Queue.Item#hasCancelPermission}. - *

- * NOTE: If you have implemented {@link AccessControlled} this returns by default - * {@code return hasPermission(hudson.model.Item.CANCEL);} - * - * @return false - * if the user doesn't have the permission. - */ - default boolean hasAbortPermission() { - if (this instanceof AccessControlled) { - return ((AccessControlled) this).hasPermission(CANCEL); - } - return true; - } - /** * Returns the URL of this task relative to the context root of the application. * @@ -1984,6 +1966,7 @@ default boolean hasAbortPermission() { * @return * URL that ends with '/'. */ + @Override String getUrl(); /** diff --git a/core/src/main/java/hudson/model/queue/SubTask.java b/core/src/main/java/hudson/model/queue/SubTask.java index 0690d074617c..9a971d9ca40b 100644 --- a/core/src/main/java/hudson/model/queue/SubTask.java +++ b/core/src/main/java/hudson/model/queue/SubTask.java @@ -33,20 +33,16 @@ import hudson.model.Queue; import hudson.model.ResourceActivity; import java.io.IOException; +import jenkins.model.queue.ITask; /** * A component of {@link Queue.Task} that represents a computation carried out by a single {@link Executor}. * * A {@link Queue.Task} consists of a number of {@link SubTask}. * - *

- * Plugins are encouraged to extend from {@link AbstractSubTask} - * instead of implementing this interface directly, to maintain - * compatibility with future changes to this interface. - * * @since 1.377 */ -public interface SubTask extends ResourceActivity { +public interface SubTask extends ResourceActivity, ITask { /** * If this task needs to be run on a node with a particular label, * return that {@link Label}. Otherwise null, indicating @@ -115,4 +111,13 @@ default long getEstimatedDuration() { default Object getSameNodeConstraint() { return null; } + + /** + * A subtask may not be reachable by its own URL. In that case, this method should return null. + * @return the URL where to reach specifically this subtask, relative to Jenkins URL. If non-null, must end with '/'. + */ + @Override + default String getUrl() { + return null; + } } diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index db3001fc40f2..08fa10fe9897 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -43,6 +43,7 @@ import java.io.Serializable; import java.util.Collection; import java.util.Collections; +import jenkins.model.IComputer; import jenkins.model.Jenkins; import jenkins.security.stapler.StaplerAccessibleType; import net.sf.json.JSONObject; @@ -154,6 +155,22 @@ public abstract class AuthorizationStrategy extends AbstractDescribableImpl + * Default implementation delegates to {@link #getACL(Computer)} if the computer is an instance of {@link Computer}, + * otherwise it will fall back to {@link #getRootACL()}. + * + * @since TODO + **/ + public @NonNull ACL getACL(@NonNull IComputer computer) { + if (computer instanceof Computer c) { + return getACL(c); + } + return getRootACL(); + } + /** * Implementation can choose to provide different ACL for different {@link Cloud}s. * This can be used as a basis for more fine-grained access control. diff --git a/core/src/main/java/jenkins/model/DisplayExecutor.java b/core/src/main/java/jenkins/model/DisplayExecutor.java new file mode 100644 index 000000000000..f7559ff85799 --- /dev/null +++ b/core/src/main/java/jenkins/model/DisplayExecutor.java @@ -0,0 +1,97 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.model.Executor; +import hudson.model.ModelObject; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; + +/** + * A value class providing a consistent snapshot view of the state of an executor to avoid race conditions + * during rendering of the executors list. + */ +@Restricted(NoExternalUse.class) +public class DisplayExecutor implements ModelObject, IDisplayExecutor { + + @NonNull + private final String displayName; + @NonNull + private final String url; + @NonNull + private final Executor executor; + + public DisplayExecutor(@NonNull String displayName, @NonNull String url, @NonNull Executor executor) { + this.displayName = displayName; + this.url = url; + this.executor = executor; + } + + @Override + @NonNull + public String getDisplayName() { + return displayName; + } + + @Override + @NonNull + public String getUrl() { + return url; + } + + @Override + @NonNull + public Executor getExecutor() { + return executor; + } + + @Override + public String toString() { + return "DisplayExecutor{" + "displayName='" + displayName + '\'' + + ", url='" + url + '\'' + + ", executor=" + executor + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + DisplayExecutor that = (DisplayExecutor) o; + + return executor.equals(that.executor); + } + + @Override + public int hashCode() { + return executor.hashCode(); + } +} diff --git a/core/src/main/java/jenkins/model/IComputer.java b/core/src/main/java/jenkins/model/IComputer.java new file mode 100644 index 000000000000..f975f200f669 --- /dev/null +++ b/core/src/main/java/jenkins/model/IComputer.java @@ -0,0 +1,182 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Util; +import hudson.model.Computer; +import hudson.model.Node; +import hudson.security.ACL; +import hudson.security.AccessControlled; +import java.util.List; +import java.util.concurrent.Future; +import org.jenkins.ui.icon.Icon; +import org.jenkins.ui.icon.IconSet; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.Beta; + +/** + * Interface for computer-like objects meant to be passed to {@code t:executors} tag. + * + * @since TODO + */ +@Restricted(Beta.class) +public interface IComputer extends AccessControlled { + /** + * Returns {@link Node#getNodeName() the name of the node}. + */ + @NonNull + String getName(); + + /** + * Used to render the list of executors. + * @return a snapshot of the executor display information + */ + @NonNull + List getDisplayExecutors(); + + /** + * @return {@code true} if the node is offline. {@code false} if it is online. + */ + boolean isOffline(); + + /** + * @return the node name for UI purposes. + */ + @NonNull + String getDisplayName(); + + /** + * Returns {@code true} if the computer is accepting tasks. Needed to allow agents programmatic suspension of task + * scheduling that does not overlap with being offline. + * + * @return {@code true} if the computer is accepting tasks + * @see hudson.slaves.RetentionStrategy#isAcceptingTasks(Computer) + * @see hudson.model.Node#isAcceptingTasks() + */ + boolean isAcceptingTasks(); + + /** + * @return the URL where to reach specifically this computer, relative to Jenkins URL. + */ + @NonNull + String getUrl(); + + /** + * @return {@code true} if this computer has a defined offline cause, @{code false} otherwise. + */ + default boolean hasOfflineCause() { + return Util.fixEmpty(getOfflineCauseReason()) != null; + } + + /** + * If the computer was offline (either temporarily or not), + * this method will return the cause as a string (without user info). + *

+ * {@code hasOfflineCause() == true} implies this must be nonempty. + * + * @return + * empty string if the system was put offline without given a cause. + */ + @NonNull + String getOfflineCauseReason(); + + /** + * @return true if the node is currently connecting to the Jenkins controller. + */ + boolean isConnecting(); + + /** + * Returns the icon for this computer. + *

+ * It is both the recommended and default implementation to serve different icons based on {@link #isOffline} + * + * @see #getIconClassName() + */ + String getIcon(); + + /** + * Returns the alternative text for the computer icon. + */ + String getIconAltText(); + + /** + * Returns the class name that will be used to look up the icon. + *

+ * This class name will be added as a class tag to the html img tags where the icon should + * show up followed by a size specifier given by {@link Icon#toNormalizedIconSizeClass(String)} + * The conversion of class tag to src tag is registered through {@link IconSet#addIcon(Icon)} + * + * @see #getIcon() + */ + default String getIconClassName() { + return getIcon(); + } + + /** + * Returns the number of {@link IExecutor}s that are doing some work right now. + */ + int countBusy(); + /** + * Returns the current size of the executor pool for this computer. + */ + int countExecutors(); + + /** + * @return true if the computer is online. + */ + boolean isOnline(); + /** + * @return the number of {@link IExecutor}s that are idle right now. + */ + int countIdle(); + + /** + * @return true if this computer can be launched by Jenkins proactively and automatically. + * + *

+ * For example, inbound agents return {@code false} from this, because the launch process + * needs to be initiated from the agent side. + */ + boolean isLaunchSupported(); + + /** + * Attempts to connect this computer. + * + * @param forceReconnect If true and a connect activity is already in progress, it will be cancelled and + * the new one will be started. If false, and a connect activity is already in progress, this method + * will do nothing and just return the pending connection operation. + * @return A {@link Future} representing pending completion of the task. The 'completion' includes + * both a successful completion and a non-successful completion (such distinction typically doesn't + * make much sense because as soon as {@link IComputer} is connected it can be disconnected by some other threads.) + */ + Future connect(boolean forceReconnect); + + @NonNull + @Override + default ACL getACL() { + return Jenkins.get().getAuthorizationStrategy().getACL(this); + } +} diff --git a/core/src/main/java/jenkins/model/IDisplayExecutor.java b/core/src/main/java/jenkins/model/IDisplayExecutor.java new file mode 100644 index 000000000000..af10341349d4 --- /dev/null +++ b/core/src/main/java/jenkins/model/IDisplayExecutor.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import edu.umd.cs.findbugs.annotations.NonNull; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.Beta; + +/** + * A snapshot of the executor information for display purpose. + * + * @since TODO + */ +@Restricted(Beta.class) +public interface IDisplayExecutor { + /** + * @return The UI label for this executor. + */ + @NonNull + String getDisplayName(); + + /** + * @return the URL where to reach specifically this executor, relative to Jenkins URL. + */ + @NonNull + String getUrl(); + + /** + * @return the executor this display information is for. + */ + @NonNull + IExecutor getExecutor(); +} diff --git a/core/src/main/java/jenkins/model/IExecutor.java b/core/src/main/java/jenkins/model/IExecutor.java new file mode 100644 index 000000000000..35894f33e4ab --- /dev/null +++ b/core/src/main/java/jenkins/model/IExecutor.java @@ -0,0 +1,144 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model; + +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.Util; +import hudson.model.Queue; +import hudson.model.queue.WorkUnit; +import jenkins.model.queue.ITask; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.Beta; + +/** + * Interface for an executor that can be displayed in the executors widget. + * + * @since TODO + */ +@Restricted(Beta.class) +public interface IExecutor { + /** + * Returns true if this {@link IExecutor} is ready for action. + */ + boolean isIdle(); + + /** + * @return the {@link IComputer} that this executor belongs to. + */ + IComputer getOwner(); + + /** + * @return the current executable, if any. + */ + @CheckForNull Queue.Executable getCurrentExecutable(); + + /** + * Returns the current {@link WorkUnit} (of {@link #getCurrentExecutable() the current executable}) + * that this executor is running. + * + * @return + * null if the executor is idle. + */ + @CheckForNull WorkUnit getCurrentWorkUnit(); + + /** + * @return the current display name of the executor. Usually the name of the executable. + */ + String getDisplayName(); + + /** + * @return a reference to the parent task of the current executable, if any. + */ + @CheckForNull + default ITask getParentTask() { + var currentExecutable = getCurrentExecutable(); + if (currentExecutable == null) { + var workUnit = getCurrentWorkUnit(); + if (workUnit != null) { + return workUnit.work; + } else { + // Idle + return null; + } + } else { + return currentExecutable.getParent(); + } + } + + /** + * Checks if the current user has a permission to stop this build. + */ + boolean hasStopPermission(); + + /** + * Gets the executor number that uniquely identifies it among + * other {@link IExecutor}s for the same computer. + * + * @return + * a sequential number starting from 0. + */ + int getNumber(); + + /** + * Gets the elapsed time since the build has started. + * + * @return + * the number of milliseconds since the build has started. + */ + long getElapsedTime(); + + /** + * Gets the string that says how long since this build has started. + * + * @return + * string like "3 minutes" "1 day" etc. + */ + default String getTimestampString() { + return Util.getTimeSpanString(getElapsedTime()); + } + + /** + * Computes a human-readable text that shows the expected remaining time + * until the build completes. + */ + String getEstimatedRemainingTime(); + + /** + * Returns true if the current build is likely stuck. + * + *

+ * This is a heuristics based approach, but if the build is suspiciously taking for a long time, + * this method returns true. + */ + boolean isLikelyStuck(); + + /** + * Returns the progress of the current build in the number between 0-100. + * + * @return -1 + * if it's impossible to estimate the progress. + */ + int getProgress(); +} diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 705044cd8fa0..6ea969668669 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -2071,7 +2071,7 @@ public boolean isUpgradedFromBefore(VersionNumber v) { * Gets the read-only list of all {@link Computer}s. */ public Computer[] getComputers() { - return computers.values().stream().sorted(Comparator.comparing(Computer::getName)).toArray(Computer[]::new); + return getComputersCollection().stream().sorted(Comparator.comparing(Computer::getName)).toArray(Computer[]::new); } @CLIResolver @@ -2080,7 +2080,7 @@ public Computer[] getComputers() { || name.equals("(master)")) // backwards compatibility for URLs name = ""; - for (Computer c : computers.values()) { + for (Computer c : getComputersCollection()) { if (c.getName().equals(name)) return c; } @@ -2247,6 +2247,14 @@ protected ConcurrentMap getComputerMap() { return computers; } + /** + * @return the collection of all {@link Computer}s in this instance. + */ + @Restricted(NoExternalUse.class) + public Collection getComputersCollection() { + return computers.values(); + } + /** * Returns all {@link Node}s in the system, excluding {@link Jenkins} instance itself which * represents the built-in node (in other words, this only returns agents). @@ -2479,7 +2487,7 @@ protected Iterable allAsIterable() { protected Computer get(String key) { return getComputer(key); } @Override - protected Collection all() { return computers.values(); } + protected Collection all() { return getComputersCollection(); } }) .add(new CollectionSearchIndex() { // for users @Override @@ -3814,7 +3822,7 @@ private Set> _cleanUpDisconnectComputers(final List errors) final Set> pending = new HashSet<>(); // JENKINS-28840 we know we will be interrupting all the Computers so get the Queue lock once for all Queue.withLock(() -> { - for (Computer c : computers.values()) { + for (Computer c : getComputersCollection()) { try { c.interrupt(); killComputer(c); @@ -5476,6 +5484,7 @@ protected MasterComputer() { * Returns "" to match with {@link Jenkins#getNodeName()}. */ @Override + @NonNull public String getName() { return ""; } @@ -5497,6 +5506,7 @@ public String getCaption() { } @Override + @NonNull public String getUrl() { return "computer/(built-in)/"; } diff --git a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java index f46280fef0c0..b76586be0158 100644 --- a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java +++ b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java @@ -254,8 +254,20 @@ public ContextMenu add(Node n) { * Adds a computer * * @since 1.513 + * @deprecated use {@link #add(IComputer)} instead. */ + @Deprecated(since = "TODO") public ContextMenu add(Computer c) { + return add((IComputer) c); + } + + /** + * Adds a {@link IComputer} instance. + * @param c the computer to add to the menu + * @return this + * @since TODO + */ + public ContextMenu add(IComputer c) { return add(new MenuItem() .withDisplayName(c.getDisplayName()) .withIconClass(c.getIconClassName()) diff --git a/core/src/main/java/jenkins/model/queue/ITask.java b/core/src/main/java/jenkins/model/queue/ITask.java new file mode 100644 index 000000000000..d381f24868ec --- /dev/null +++ b/core/src/main/java/jenkins/model/queue/ITask.java @@ -0,0 +1,76 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package jenkins.model.queue; + +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.model.Item; +import hudson.model.ModelObject; +import hudson.security.AccessControlled; + +/** + * A task that can be displayed in the executors widget. + * + * @since TODO + */ +public interface ITask extends ModelObject { + /** + * @return {@code true} if the current user can cancel the current task. + * + * NOTE: If you have implemented {@link AccessControlled} this returns by default + * {@code hasPermission(Item.CANCEL)} + */ + default boolean hasAbortPermission() { + if (this instanceof AccessControlled ac) { + return ac.hasPermission(Item.CANCEL); + } + return true; + } + + /** + * @return {@code true} if the current user has read access on the task. + */ + @SuppressWarnings("unused") // jelly + default boolean hasReadPermission() { + if (this instanceof AccessControlled ac) { + return ac.hasPermission(Item.READ); + } + return true; + } + + /** + * @return the full display name of the task. + *

+ * Defaults to the same as {@link #getDisplayName()}. + */ + default String getFullDisplayName() { + return getDisplayName(); + } + + /** + * @return the URL where to reach specifically this task, relative to Jenkins URL. If non-null, must end with '/'. + */ + @CheckForNull + String getUrl(); +} diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index f261e1f3f8cd..1b3c9aa1ea02 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -72,7 +72,7 @@ THE SOFTWARE. - + @@ -93,7 +93,7 @@ THE SOFTWARE. - +

- +
diff --git a/test/src/test/java/hudson/model/ComputerSetTest.java b/test/src/test/java/hudson/model/ComputerSetTest.java index f40cf3e00c96..e137cbfec823 100644 --- a/test/src/test/java/hudson/model/ComputerSetTest.java +++ b/test/src/test/java/hudson/model/ComputerSetTest.java @@ -26,7 +26,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.is; @@ -91,10 +90,10 @@ public void nodeOfflineCli() throws Exception { @Test public void getComputerNames() throws Exception { assertThat(ComputerSet.getComputerNames(), is(empty())); - j.createSlave("aNode", "", null); - assertThat(ComputerSet.getComputerNames(), contains("aNode")); j.createSlave("anAnotherNode", "", null); - assertThat(ComputerSet.getComputerNames(), containsInAnyOrder("aNode", "anAnotherNode")); + assertThat(ComputerSet.getComputerNames(), contains("anAnotherNode")); + j.createSlave("aNode", "", null); + assertThat(ComputerSet.getComputerNames(), contains("aNode", "anAnotherNode")); } @Test From 47a212aa79569f42a1950cb532c5a275b5c7e3c0 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 2 Oct 2024 07:46:51 -0700 Subject: [PATCH 011/160] [JENKINS-73760] Updates fail due to invalid JSON from HTTP Update Center (#9760) --- .../main/java/hudson/model/UpdateSite.java | 13 ++++--- .../model/UpdateCenterMigrationTest.java | 35 +++++++++++++++++++ .../java/hudson/model/UpdateSiteTest.java | 14 ++++++++ .../hudson.model.UpdateCenter.xml | 7 ++++ 4 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 test/src/test/java/hudson/model/UpdateCenterMigrationTest.java create mode 100644 test/src/test/resources/hudson/model/UpdateCenterMigrationTest/updateCenterMigration/hudson.model.UpdateCenter.xml diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index 8a38ef2d470b..0e3cc894148a 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -538,14 +538,17 @@ public String getDownloadUrl() { /** * Is this the legacy default update center site? - * @deprecated - * Will be removed, currently returns always false. - * @since 2.343 + * @since 1.357 */ - @Deprecated @Restricted(NoExternalUse.class) public boolean isLegacyDefault() { - return false; + return isJenkinsCI(); + } + + private boolean isJenkinsCI() { + return url != null + && UpdateCenter.PREDEFINED_UPDATE_SITE_ID.equals(id) + && url.startsWith("http://updates.jenkins-ci.org/"); } /** diff --git a/test/src/test/java/hudson/model/UpdateCenterMigrationTest.java b/test/src/test/java/hudson/model/UpdateCenterMigrationTest.java new file mode 100644 index 000000000000..6d002dbcad91 --- /dev/null +++ b/test/src/test/java/hudson/model/UpdateCenterMigrationTest.java @@ -0,0 +1,35 @@ +package hudson.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +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.recipes.LocalData; + +public class UpdateCenterMigrationTest { + + @Rule + public JenkinsRule j = new JenkinsRule() { + @Override + protected void configureUpdateCenter() { + // Avoid reverse proxy + DownloadService.neverUpdate = true; + UpdateSite.neverUpdate = true; + } + }; + + @Issue("JENKINS-73760") + @LocalData + @Test + public void updateCenterMigration() { + UpdateSite site = j.jenkins.getUpdateCenter().getSites().stream() + .filter(s -> UpdateCenter.PREDEFINED_UPDATE_SITE_ID.equals(s.getId())) + .findFirst() + .orElseThrow(); + assertFalse(site.isLegacyDefault()); + assertEquals(j.jenkins.getUpdateCenter().getDefaultBaseUrl() + "update-center.json", site.getUrl()); + } +} diff --git a/test/src/test/java/hudson/model/UpdateSiteTest.java b/test/src/test/java/hudson/model/UpdateSiteTest.java index 629c7c7f46e8..293cca2de768 100644 --- a/test/src/test/java/hudson/model/UpdateSiteTest.java +++ b/test/src/test/java/hudson/model/UpdateSiteTest.java @@ -72,6 +72,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; public class UpdateSiteTest { @@ -205,6 +206,19 @@ public void shutdownWebserver() throws Exception { assertNotEquals("plugin data is present", Collections.emptyMap(), site.getData().plugins); } + @Issue("JENKINS-73760") + @Test + public void isLegacyDefault() { + assertFalse("isLegacyDefault should be false with null id", new UpdateSite(null, "url").isLegacyDefault()); + assertFalse( + "isLegacyDefault should be false when id is not default and url is http://updates.jenkins-ci.org/", + new UpdateSite("dummy", "http://updates.jenkins-ci.org/").isLegacyDefault()); + assertTrue( + "isLegacyDefault should be true when id is default and url is http://updates.jenkins-ci.org/", + new UpdateSite(UpdateCenter.PREDEFINED_UPDATE_SITE_ID, "http://updates.jenkins-ci.org/").isLegacyDefault()); + assertFalse("isLegacyDefault should be false with null url", new UpdateSite(null, null).isLegacyDefault()); + } + @Test public void getAvailables() throws Exception { UpdateSite site = getUpdateSite("/plugins/available-update-center.json"); List available = site.getAvailables(); diff --git a/test/src/test/resources/hudson/model/UpdateCenterMigrationTest/updateCenterMigration/hudson.model.UpdateCenter.xml b/test/src/test/resources/hudson/model/UpdateCenterMigrationTest/updateCenterMigration/hudson.model.UpdateCenter.xml new file mode 100644 index 000000000000..4f317e783647 --- /dev/null +++ b/test/src/test/resources/hudson/model/UpdateCenterMigrationTest/updateCenterMigration/hudson.model.UpdateCenter.xml @@ -0,0 +1,7 @@ + + + + default + http://updates.jenkins-ci.org/update-center.json + + \ No newline at end of file From 1c2b84cb76bc855b4862e1e45d7581b21c3ff340 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 2 Oct 2024 07:47:16 -0700 Subject: [PATCH 012/160] [JENKINS-73801] Nested Views plugin overrides `View#doConfigDotXml(StaplerRequest)` (#9764) --- core/src/main/java/hudson/model/View.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 5d53a49ef0b7..b17077cde44d 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -949,9 +949,28 @@ public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOExce /** * Accepts {@code config.xml} submission, as well as serve it. + * + * @since 2.475 */ @WebMethod(name = "config.xml") public HttpResponse doConfigDotXml(StaplerRequest2 req) throws IOException { + if (Util.isOverridden(View.class, getClass(), "doConfigDotXml", StaplerRequest.class)) { + return doConfigDotXml(StaplerRequest.fromStaplerRequest2(req)); + } else { + return doConfigDotXmlImpl(req); + } + } + + /** + * @deprecated use {@link #doConfigDotXml(StaplerRequest2)} + */ + @Deprecated + @StaplerNotDispatchable + public HttpResponse doConfigDotXml(StaplerRequest req) throws IOException { + return doConfigDotXmlImpl(StaplerRequest.toStaplerRequest2(req)); + } + + private HttpResponse doConfigDotXmlImpl(StaplerRequest2 req) throws IOException { if (req.getMethod().equals("GET")) { // read checkPermission(READ); From 4759f1a6f036eb7a792c48a08b337edc093cbb7f Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:47:49 +0200 Subject: [PATCH 013/160] Be more explicit about not being logged in on 404 error page (#9766) Co-authored-by: Daniel Beck --- core/src/main/resources/jenkins/model/Jenkins/_404.jelly | 3 +++ core/src/main/resources/jenkins/model/Jenkins/_404.properties | 1 + 2 files changed, 4 insertions(+) diff --git a/core/src/main/resources/jenkins/model/Jenkins/_404.jelly b/core/src/main/resources/jenkins/model/Jenkins/_404.jelly index 7230e4f31acc..2578c10b99bd 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/_404.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/_404.jelly @@ -44,6 +44,9 @@ THE SOFTWARE. ${%noAccess} + + ${%tryLoggingIn} + ${%notFound} diff --git a/core/src/main/resources/jenkins/model/Jenkins/_404.properties b/core/src/main/resources/jenkins/model/Jenkins/_404.properties index c671d3ed833c..42a8c07eb02f 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/_404.properties +++ b/core/src/main/resources/jenkins/model/Jenkins/_404.properties @@ -1,3 +1,4 @@ title = {0} noAccess = This page may not exist, or you may not have permission to see it. +tryLoggingIn = If you have an account, try logging in. notFound = This page does not exist. From ddad8afc302eefbdf5c371189b3a23d9ddf5fa4e Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Wed, 2 Oct 2024 07:49:10 -0700 Subject: [PATCH 014/160] Download Yarn Berry with Corepack rather than Yarn 1.x (#9772) * Use eirslett/frontend-maven-plugin#1157 * Test 1 * Test 2 * Test 3 * Testing is finished * https://github.com/jenkinsci/jenkins/pull/9772#discussion_r1771275590 * https://github.com/jenkinsci/jenkins/pull/9772#discussion_r1771977848 --- .gitignore | 7 +------ .prettierignore | 2 -- .yarnrc.yml | 2 ++ CONTRIBUTING.md | 4 ++-- package.json | 3 +++ pom.xml | 55 +++++++++++-------------------------------------- war/.gitignore | 20 ------------------ 7 files changed, 20 insertions(+), 73 deletions(-) create mode 100644 .yarnrc.yml delete mode 100644 war/.gitignore diff --git a/.gitignore b/.gitignore index f7314d0646ec..41747ca0cd23 100644 --- a/.gitignore +++ b/.gitignore @@ -65,9 +65,7 @@ junit.xml # Yarn # https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored -.pnp.* .yarn/* -.yarnrc.yml !.yarn/patches !.yarn/plugins !.yarn/sdks @@ -78,7 +76,4 @@ node/ node_modules/ # Generated JavaScript Bundles -jsbundles - -# In case someone accidentally runs npm install instead of yarn install -package-lock.json +war/src/main/webapp/jsbundles/ diff --git a/.prettierignore b/.prettierignore index 042e5d268c0c..66cf7311b1ca 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,8 +7,6 @@ node/ .git -.yarnrc.yml - # libraries / external deps / generated files war/src/main/js/plugin-setup-wizard/bootstrap-detached.js war/src/main/webapp/scripts/yui diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 000000000000..5004f58b1bfd --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1,2 @@ +enableGlobalCache: false +nodeLinker: node-modules diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1be9d4f3f9cf..17d4b17733f9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,12 +53,12 @@ MAVEN_OPTS='--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/ja ### Running the Yarn frontend build > [!TIP] -> If you already have Node.js installed, you do not need to change your path. Start using `yarn` by enabling [Corepack](https://yarnpkg.com/corepack) with `corepack enable`, if it isn't already; this will add the `yarn` binary to your PATH. +> If you already have Node.js installed, you do not need to change your path. Start using Yarn by enabling [Corepack](https://yarnpkg.com/corepack) with `corepack enable`, if it isn't already; this will add the `yarn` binary to your path. To run the Yarn frontend build, after [building the WAR file](#building-the-war-file), add the downloaded versions of Node and Yarn to your path: ```sh -export PATH=$PWD/node:$PWD/node/yarn/dist/bin:$PATH +export PATH=$PWD/node:$PWD/node/node_modules/corepack/shims:$PATH ``` Then you can run Yarn with e.g. diff --git a/package.json b/package.json index 365fadb619ed..bd04a58d1b3e 100644 --- a/package.json +++ b/package.json @@ -65,5 +65,8 @@ "defaults", "not IE 11" ], + "engines": { + "node": ">=20.0.0" + }, "packageManager": "yarn@4.5.0" } diff --git a/pom.xml b/pom.xml index 8dc88a8f32ef..2f7da141b1e3 100644 --- a/pom.xml +++ b/pom.xml @@ -99,11 +99,6 @@ THE SOFTWARE. 8.1 20.17.0 - - 1.22.19 - - 4.5.0 - cc00dce5de4f68d11450519a0f69eadf2a1cbe5cc0d8e740bfac817a31d76874
yarn install - yarn + corepack initialize + + yarn install + yarn build - yarn + corepack generate-sources - build + yarn build @@ -517,11 +486,11 @@ THE SOFTWARE. yarn lint:ci - yarn + corepack test - lint:ci + yarn lint:ci ${yarn.lint.skip} @@ -550,11 +519,11 @@ THE SOFTWARE. yarn lint - yarn + corepack test - lint + yarn lint ${yarn.lint.skip} diff --git a/war/.gitignore b/war/.gitignore deleted file mode 100644 index 045972f591e6..000000000000 --- a/war/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -work -/rebel.xml -junit.xml - -# Yarn -# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored -.pnp.* -.yarn/* -.yarnrc.yml -!.yarn/patches -!.yarn/plugins -!.yarn/sdks -!.yarn/versions - -# Node -node/ -node_modules/ - -# Generated JavaScript Bundles -jsbundles From 1f7ee886fe798718016ec33ae8a03b056bca6eda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:49:32 -0600 Subject: [PATCH 015/160] Update dependency com.google.guava:guava to v33.3.1-jre (#9779) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 47321614432c..ab9197e74992 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -88,7 +88,7 @@ THE SOFTWARE. com.google.guava guava - 33.3.0-jre + 33.3.1-jre From caa24ac32cfc08232a0b63bbe0454ea063904f3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:49:46 -0600 Subject: [PATCH 016/160] Update dependency postcss-preset-env to v10.0.5 (#9783) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index bd04a58d1b3e..c79393dde32c 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.3", + "postcss-preset-env": "10.0.5", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.79.3", diff --git a/yarn.lock b/yarn.lock index 28ee807765bc..acf31ba32a4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1571,9 +1571,9 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.2" +"@csstools/postcss-light-dark-function@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.4" dependencies: "@csstools/css-parser-algorithms": "npm:^3.0.1" "@csstools/css-tokenizer": "npm:^3.0.1" @@ -1581,7 +1581,7 @@ __metadata: "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f8973c435868998e5d6af1fc0c35b27bbf65fa9d0c35f5055c689b8ee2807a16802044e296f7def39a7253ae544fb49559e8273ee22eb4e21845aa980a1bc82b + checksum: 10c0/0176422ad9747953964b1ceff002df1ecb1952ebc481db6192070d68777135b582ea6fd32ae819b9c64c96cb9170bd6907c647c85b48daa4984b7ed3d7f9bccb languageName: node linkType: hard @@ -4416,7 +4416,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.3" + postcss-preset-env: "npm:10.0.5" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.79.3" @@ -5913,9 +5913,9 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.3": - version: 10.0.3 - resolution: "postcss-preset-env@npm:10.0.3" +"postcss-preset-env@npm:10.0.5": + version: 10.0.5 + resolution: "postcss-preset-env@npm:10.0.5" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.0" "@csstools/postcss-color-function": "npm:^4.0.2" @@ -5929,7 +5929,7 @@ __metadata: "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.2" + "@csstools/postcss-light-dark-function": "npm:^2.0.4" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" @@ -5980,7 +5980,7 @@ __metadata: postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/da42caa2aab4d825fddfde00ebe2416d338c7b9a6f79a68840297888a8384f85991991c3fa10cf2d359fb230c885375f5cebd7bd63972725cd2a596d218f8b6a + checksum: 10c0/db5eb1175cb26bed3f1a4c47acc67935ffc784520321470520e59de366ac6f91be1e609fe36056af707ed20f7910721287cff0fae416c437dd3e944de13ffd05 languageName: node linkType: hard From 34d27f96c83b799a89881ead41417eee7c71c70a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:50:17 -0600 Subject: [PATCH 017/160] Update jenkins/ath Docker tag to v6016 (#9785) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 1816e037466b..12eca9c947fb 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=5997.v2a_1a_696620a_0 +export ATH_VERSION=6016.v3a_e3864eb_993 if [[ $# -eq 0 ]]; then export JDK=17 From 83d240b8df35632082244a5ac00fba400ec1e658 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:50:37 -0600 Subject: [PATCH 018/160] Update dependency org.jenkins-ci.plugins:cloudbees-folder to v6.955.v81e2a_35c08d3 (#9789) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 0f3aa999e08e..2e6581173e00 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -218,7 +218,7 @@ THE SOFTWARE. org.jenkins-ci.plugins cloudbees-folder - 6.951.v5f91d88d76b_b_ + 6.955.v81e2a_35c08d3 test From fa7e78394ce152621a9e7f7395282b64392b5d7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:50:53 -0600 Subject: [PATCH 019/160] Update eslint monorepo to v9.11.1 (#9791) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 42 ++++++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index c79393dde32c..2f06bd845589 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,12 @@ "@babel/cli": "7.25.6", "@babel/core": "7.25.2", "@babel/preset-env": "7.25.4", - "@eslint/js": "9.11.0", + "@eslint/js": "9.11.1", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.11.0", + "eslint": "9.11.1", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.9.0", diff --git a/yarn.lock b/yarn.lock index acf31ba32a4d..4081e8e599f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1854,6 +1854,13 @@ __metadata: languageName: node linkType: hard +"@eslint/core@npm:^0.6.0": + version: 0.6.0 + resolution: "@eslint/core@npm:0.6.0" + checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^3.1.0": version: 3.1.0 resolution: "@eslint/eslintrc@npm:3.1.0" @@ -1871,10 +1878,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.11.0": - version: 9.11.0 - resolution: "@eslint/js@npm:9.11.0" - checksum: 10c0/7403aeba28ba9cae3470d149b334a51375eb7fd850f167555c81cc72fe98e5cc5ac3059ccdbe68eb255a49d7498a7288d25429af0c7d20afeb4b3c0748349bb4 +"@eslint/js@npm:9.11.1": + version: 9.11.1 + resolution: "@eslint/js@npm:9.11.1" + checksum: 10c0/22916ef7b09c6f60c62635d897c66e1e3e38d90b5a5cf5e62769033472ecbcfb6ec7c886090a4b32fe65d6ce371da54384e46c26a899e38184dfc152c6152f7b languageName: node linkType: hard @@ -2118,10 +2125,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.5": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d +"@types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a languageName: node linkType: hard @@ -2160,7 +2167,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -3527,19 +3534,22 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.11.0": - version: 9.11.0 - resolution: "eslint@npm:9.11.0" +"eslint@npm:9.11.1": + version: 9.11.1 + resolution: "eslint@npm:9.11.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" + "@eslint/core": "npm:^0.6.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.11.0" + "@eslint/js": "npm:9.11.1" "@eslint/plugin-kit": "npm:^0.2.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" + "@types/estree": "npm:^1.0.6" + "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" @@ -3572,7 +3582,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/3438a78172bc667dc87bc4ad864671bd93231c82c9d366899ea3a77fc3444c8cdd158e7fe3ca1cfe4cb566045b1b36c0ccae9fc20efeb4b187f1a534075a1177 + checksum: 10c0/fc9afc31155fef8c27fc4fd00669aeafa4b89ce5abfbf6f60e05482c03d7ff1d5e7546e416aa47bf0f28c9a56597a94663fd0264c2c42a1890f53cac49189f24 languageName: node linkType: hard @@ -4399,12 +4409,12 @@ __metadata: "@babel/cli": "npm:7.25.6" "@babel/core": "npm:7.25.2" "@babel/preset-env": "npm:7.25.4" - "@eslint/js": "npm:9.11.0" + "@eslint/js": "npm:9.11.1" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.11.0" + eslint: "npm:9.11.1" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.9.0" From a95d9160ca27ba36ea5e211e95b7b21b1ae8af6d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:51:12 -0600 Subject: [PATCH 020/160] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2299 (#9792) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 2e6581173e00..b2ef9957de20 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2289.vfd344a_6d1660 + 2299.v7e8d22e797d3 test From 1e21f057e6a855303fbdbc241bee20b2e7f6c11d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:51:26 -0600 Subject: [PATCH 021/160] Update dependency webpack to v5.95.0 (#9793) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2f06bd845589..2558edb46a60 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "stylelint": "16.9.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4", "webpack-remove-empty-scripts": "1.0.4" }, diff --git a/yarn.lock b/yarn.lock index 4081e8e599f6..c512f16f8a3b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4437,7 +4437,7 @@ __metadata: stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" webpack-remove-empty-scripts: "npm:1.0.4" window-handle: "npm:1.0.1" @@ -7097,9 +7097,9 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.94.0": - version: 5.94.0 - resolution: "webpack@npm:5.94.0" +"webpack@npm:5.95.0": + version: 5.95.0 + resolution: "webpack@npm:5.95.0" dependencies: "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.12.1" @@ -7129,7 +7129,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/b4d1b751f634079bd177a89eef84d80fa5bb8d6fc15d72ab40fc2b9ca5167a79b56585e1a849e9e27e259803ee5c4365cb719e54af70a43c06358ec268ff4ebf + checksum: 10c0/b9e6d0f8ebcbf0632494ac0b90fe4acb8f4a9b83f7ace4a67a15545a36fe58599c912ab58e625e1bf58ab3b0916c75fe99da6196d412ee0cab0b5065edd84238 languageName: node linkType: hard From 49aeec9278adf6c600c57260f84e2b450121c7c5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:51:45 -0600 Subject: [PATCH 022/160] Update dependency com.puppycrawl.tools:checkstyle to v10.18.2 (#9794) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2f7da141b1e3..2e75f8ca83b1 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.18.1 + 10.18.2 From 1a2efeafabb8a1641c7d8430b6d88ec845a4947d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:52:03 -0600 Subject: [PATCH 023/160] Update dependency org.jenkins-ci.plugins:mailer to v488 (#9796) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index b2ef9957de20..790b1e0b0904 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -236,7 +236,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 472.vf7c289a_4b_420 + 488.v0c9639c1a_eb_3 test diff --git a/war/pom.xml b/war/pom.xml index f256a95017ca..40a8e76224ed 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -271,7 +271,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 472.vf7c289a_4b_420 + 488.v0c9639c1a_eb_3 hpi From f63687153c8ca6ce60265bee76178970bdc24a91 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:52:51 -0600 Subject: [PATCH 024/160] Update dependency org.jenkins-ci.modules:instance-identity to v201 (#9807) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 790b1e0b0904..a1bdc6c513a0 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -206,7 +206,7 @@ THE SOFTWARE. org.jenkins-ci.modules instance-identity - 185.v303dc7c645f9 + 201.vd2a_b_5a_468a_a_6 test diff --git a/war/pom.xml b/war/pom.xml index 40a8e76224ed..25b4fef13819 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -480,7 +480,7 @@ THE SOFTWARE. org.jenkins-ci.modules instance-identity - 185.v303dc7c645f9 + 201.vd2a_b_5a_468a_a_6 hpi From 2d668926d8abc3b81a35d8f7cca1a42c953aae0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:53:06 -0600 Subject: [PATCH 025/160] Update dependency sass to v1.79.4 (#9808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2558edb46a60..bb13c73b821c 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.5", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.79.3", + "sass": "1.79.4", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.9.0", diff --git a/yarn.lock b/yarn.lock index c512f16f8a3b..db7602793429 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4429,7 +4429,7 @@ __metadata: postcss-preset-env: "npm:10.0.5" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.79.3" + sass: "npm:1.79.4" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6392,16 +6392,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.79.3": - version: 1.79.3 - resolution: "sass@npm:1.79.3" +"sass@npm:1.79.4": + version: 1.79.4 + resolution: "sass@npm:1.79.4" dependencies: chokidar: "npm:^4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/ad171bbbb2d7a789cc47803a59dcf2d0ac92ede34b538bb3fd683b6391a9ac3dc3eabaac264fc9582c770c4e435b85840e011785b7adfc0ac002b51ba91179c9 + checksum: 10c0/505ff0d9267d0fb990971e617acfeabf7c060c55d4cef68fe8a4bc693e7ea88ae7d7caeca3975e4b453459ba4a707b6e5b6979fc9395a7e08f0a43ca6aed06b8 languageName: node linkType: hard From 662f4cd2666775be7ead935fe29af473abc18b7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:53:29 -0600 Subject: [PATCH 026/160] Update dependency org.jenkins-ci.plugins:matrix-project to v838 (#9812) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index a1bdc6c513a0..a5ebebfa95d5 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -248,7 +248,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 832.va_66e270d2946 + 838.v4d7b_7b_f9b_d4b_ test diff --git a/war/pom.xml b/war/pom.xml index 25b4fef13819..199730328a28 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -292,7 +292,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 832.va_66e270d2946 + 838.v4d7b_7b_f9b_d4b_ hpi From 719ac752de35001e84ce6ebd2e79319c753ddb54 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 07:56:41 -0700 Subject: [PATCH 027/160] Update dependency org.jenkins-ci.plugins:junit to v1302 (#9786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index a5ebebfa95d5..f3b45cc9d52b 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1300.v03d9d8a_cf1fb_ + 1302.va_b_878c32eb_b_5 test diff --git a/war/pom.xml b/war/pom.xml index 199730328a28..4b1dfa552213 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -306,7 +306,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1300.v03d9d8a_cf1fb_ + 1302.va_b_878c32eb_b_5 hpi From 208238192f93e532284e4f8336e6a7849c50441b Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Wed, 2 Oct 2024 09:02:59 -0600 Subject: [PATCH 028/160] Fix yarn lint error --- core/src/main/resources/lib/form/textarea/textarea.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/lib/form/textarea/textarea.js b/core/src/main/resources/lib/form/textarea/textarea.js index e1253cdfdab7..53ea6293dc62 100644 --- a/core/src/main/resources/lib/form/textarea/textarea.js +++ b/core/src/main/resources/lib/form/textarea/textarea.js @@ -14,13 +14,13 @@ Behaviour.specify("TEXTAREA.codemirror", "textarea", 0, function (e) { if (match) { console.log( "Parsing simple legacy codemirror-config value using fallback: " + - config + config, ); config = { mode: match[1] }; } else { console.log( "Failed to parse codemirror-config '{" + config + "}' as JSON", - ex + ex, ); config = {}; } From 15bad89464c633f1a00441d9f3d9795776459f74 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:35:12 -0700 Subject: [PATCH 029/160] Update `access-modifier.version` to v1.34 (#9798) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e75f8ca83b1..674cb378e135 100644 --- a/pom.xml +++ b/pom.xml @@ -92,7 +92,7 @@ THE SOFTWARE. Max Medium - 1.33 + 1.34 4.13.2 1.29 false diff --git a/war/pom.xml b/war/pom.xml index 4b1dfa552213..dac4efb30419 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -155,6 +155,7 @@ THE SOFTWARE. org.jenkins-ci.main:websocket-spi org.jvnet.hudson:commons-jelly-tags-define org.jvnet.winp:winp + org.kohsuke:access-modifier-annotation org.kohsuke.stapler:stapler org.kohsuke.stapler:stapler-groovy org.kohsuke.stapler:stapler-jelly From 2b033c622f287a291861265ba5de9868f67d9b40 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:40:00 -0700 Subject: [PATCH 030/160] Update `bridge-method-injector.version` to v1.30 (#9799) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 674cb378e135..e2d956523e87 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,7 @@ THE SOFTWARE. 1.34 4.13.2 - 1.29 + 1.30 false 8.1 diff --git a/war/pom.xml b/war/pom.xml index dac4efb30419..a46aeec2892f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -148,6 +148,7 @@ THE SOFTWARE. 11 + com.infradna.tool:bridge-method-annotation org.jenkins-ci:commons-jelly org.jenkins-ci.main:cli org.jenkins-ci.main:jenkins-core From bfbebaef51b6d76e2fe157afd0a22cb7abf05490 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:44:51 -0700 Subject: [PATCH 031/160] Update dependency io.jenkins.lib:support-log-formatter to v1.3 (#9800) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index a46aeec2892f..b085dc111c31 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -582,7 +582,7 @@ THE SOFTWARE. io.jenkins.lib support-log-formatter - 1.2 + 1.3 ${project.build.directory} From f58d005485eb3f5d58bf33f47a9af8c4a1626176 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:49:02 -0700 Subject: [PATCH 032/160] Update dependency `org.jenkins-ci:annotation-indexer` to v1.18 (#9801) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index ab9197e74992..e70e69ddce94 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -250,7 +250,7 @@ THE SOFTWARE. org.jenkins-ci annotation-indexer - 1.17 + 1.18 org.jenkins-ci diff --git a/war/pom.xml b/war/pom.xml index b085dc111c31..96a817f28a15 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -149,6 +149,7 @@ THE SOFTWARE. 11 com.infradna.tool:bridge-method-annotation + org.jenkins-ci:annotation-indexer:jar org.jenkins-ci:commons-jelly org.jenkins-ci.main:cli org.jenkins-ci.main:jenkins-core From cfe170fc544893a90b1991f1cf303ce21ff63972 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:53:28 -0700 Subject: [PATCH 033/160] Update dependency org.jenkins-ci:crypto-util to v1.10 (#9802) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index e70e69ddce94..5b1b09ea7cb3 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -260,7 +260,7 @@ THE SOFTWARE. org.jenkins-ci crypto-util - 1.9 + 1.10 org.jenkins-ci diff --git a/war/pom.xml b/war/pom.xml index 96a817f28a15..634123a4935a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -151,6 +151,7 @@ THE SOFTWARE. com.infradna.tool:bridge-method-annotation org.jenkins-ci:annotation-indexer:jar org.jenkins-ci:commons-jelly + org.jenkins-ci:crypto-util org.jenkins-ci.main:cli org.jenkins-ci.main:jenkins-core org.jenkins-ci.main:websocket-jetty12-ee9 From b5e9dcde85651fc05686252b58d8152b0d3dfbe6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:57:54 -0700 Subject: [PATCH 034/160] Update dependency `org.jenkins-ci:memory-monitor` to v1.13 (#9803) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 5b1b09ea7cb3..578310f2b9b0 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -265,7 +265,7 @@ THE SOFTWARE. org.jenkins-ci memory-monitor - 1.12 + 1.13 org.jenkins-ci diff --git a/war/pom.xml b/war/pom.xml index 634123a4935a..1b248c0192f4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -156,6 +156,7 @@ THE SOFTWARE. org.jenkins-ci.main:jenkins-core org.jenkins-ci.main:websocket-jetty12-ee9 org.jenkins-ci.main:websocket-spi + org.jenkins-ci:memory-monitor org.jvnet.hudson:commons-jelly-tags-define org.jvnet.winp:winp org.kohsuke:access-modifier-annotation From 42e7e82a3226878f5cc34d4d0614c362aaeedcac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:08:44 -0700 Subject: [PATCH 035/160] Update dependency `org.jenkins-ci:symbol-annotation` to v1.25 (#9804) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- war/pom.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 578310f2b9b0..b5a3d2888555 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -270,7 +270,7 @@ THE SOFTWARE. org.jenkins-ci symbol-annotation - 1.24 + 1.25 org.jenkins-ci diff --git a/war/pom.xml b/war/pom.xml index 1b248c0192f4..cfc66b2566a2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -149,7 +149,7 @@ THE SOFTWARE. 11 com.infradna.tool:bridge-method-annotation - org.jenkins-ci:annotation-indexer:jar + org.jenkins-ci:annotation-indexer org.jenkins-ci:commons-jelly org.jenkins-ci:crypto-util org.jenkins-ci.main:cli @@ -157,6 +157,7 @@ THE SOFTWARE. org.jenkins-ci.main:websocket-jetty12-ee9 org.jenkins-ci.main:websocket-spi org.jenkins-ci:memory-monitor + org.jenkins-ci:symbol-annotation org.jvnet.hudson:commons-jelly-tags-define org.jvnet.winp:winp org.kohsuke:access-modifier-annotation From c127593f06f675d769f7df802236098f42e6344a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:11:53 -0700 Subject: [PATCH 036/160] Update dependency org.jenkins-ci:task-reactor to v1.9 (#9805) * Update dependency org.jenkins-ci:task-reactor to v1.9 * Exclude bytecode check --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Basil Crow --- bom/pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index b5a3d2888555..06aae3857528 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -275,7 +275,7 @@ THE SOFTWARE. org.jenkins-ci task-reactor - 1.8 + 1.9 org.jenkins-ci diff --git a/war/pom.xml b/war/pom.xml index cfc66b2566a2..a758f0735ed8 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -158,6 +158,7 @@ THE SOFTWARE. org.jenkins-ci.main:websocket-spi org.jenkins-ci:memory-monitor org.jenkins-ci:symbol-annotation + org.jenkins-ci:task-reactor org.jvnet.hudson:commons-jelly-tags-define org.jvnet.winp:winp org.kohsuke:access-modifier-annotation From 937fe2a07d8942241a40f9011dbb8f33266834f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:17:21 -0700 Subject: [PATCH 037/160] Update dependency `org.jenkins-ci:version-number` to v1.12 (#9806) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- war/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 06aae3857528..a8c184ead7ac 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -280,7 +280,7 @@ THE SOFTWARE. org.jenkins-ci version-number - 1.11 + 1.12 org.jenkins-ci.main diff --git a/war/pom.xml b/war/pom.xml index a758f0735ed8..9b794a826387 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -159,6 +159,7 @@ THE SOFTWARE. org.jenkins-ci:memory-monitor org.jenkins-ci:symbol-annotation org.jenkins-ci:task-reactor + org.jenkins-ci:version-number org.jvnet.hudson:commons-jelly-tags-define org.jvnet.winp:winp org.kohsuke:access-modifier-annotation From ba21dbe6059486bc5d89202a893ae3a85e18fd80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:21:35 -0700 Subject: [PATCH 038/160] Update dependency org.jenkins-ci.plugins:credentials to v1381 (#9814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index f3b45cc9d52b..a4ea23c9f3f7 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -224,7 +224,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1378.v81ef4269d764 + 1381.v2c3a_12074da_b_ test From ee00900d1f031cb4cde9d1661a5f20c7d9b611f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:24:33 -0700 Subject: [PATCH 039/160] Update dependency globals to v15.10.0 (#9816) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bb13c73b821c..2f03b76c4806 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "eslint": "9.11.1", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", - "globals": "15.9.0", + "globals": "15.10.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", diff --git a/yarn.lock b/yarn.lock index db7602793429..88b93529c7c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3991,10 +3991,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.9.0": - version: 15.9.0 - resolution: "globals@npm:15.9.0" - checksum: 10c0/de4b553e412e7e830998578d51b605c492256fb2a9273eaeec6ec9ee519f1c5aa50de57e3979911607fd7593a4066420e01d8c3d551e7a6a236e96c521aee36c +"globals@npm:15.10.0": + version: 15.10.0 + resolution: "globals@npm:15.10.0" + checksum: 10c0/fef8f320e88f01f1492fef1b04b056908e1f6726eeaffe3bca03247237300c2d86e71585ee641b62ba71460a6eaff0d6ca7fca284e61bd1b3f833c7ad68b160a languageName: node linkType: hard @@ -4417,7 +4417,7 @@ __metadata: eslint: "npm:9.11.1" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" - globals: "npm:15.9.0" + globals: "npm:15.10.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" From 296f9a2419f39627b440c39b1a5a5331945ec175 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:27:25 -0700 Subject: [PATCH 040/160] Update babel monorepo to v7.25.7 (#9817) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +- yarn.lock | 1225 +++++++++++++++++++++++++------------------------- 2 files changed, 611 insertions(+), 620 deletions(-) diff --git a/package.json b/package.json index 2f03b76c4806..bd27d5b79eff 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,9 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.25.6", - "@babel/core": "7.25.2", - "@babel/preset-env": "7.25.4", + "@babel/cli": "7.25.7", + "@babel/core": "7.25.7", + "@babel/preset-env": "7.25.7", "@eslint/js": "9.11.1", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index 88b93529c7c4..46e29f140aa7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,9 +15,9 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.25.6": - version: 7.25.6 - resolution: "@babel/cli@npm:7.25.6" +"@babel/cli@npm:7.25.7": + version: 7.25.7 + resolution: "@babel/cli@npm:7.25.7" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -38,121 +38,121 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/861d3c2ed6c47b25a322c2f6127f56783d8d333fc2d02d3815f86301fe1102eca5f61b8a5c8610a6a2872d1ccfce24fd6d4a91f4f73536e43b8e2f28f9dcf5ed + checksum: 10c0/bbbc53eef15844b0bfb737d7d134f979d42c51a269e2aee994b02eb9216a22e8dd3d790d5ae9f5b5c003e01eccfc164c14aaa1ad989695e0154f66a588f77d42 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" dependencies: - "@babel/highlight": "npm:^7.24.7" + "@babel/highlight": "npm:^7.25.7" picocolors: "npm:^1.0.0" - checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2, @babel/compat-data@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: 10c0/50d79734d584a28c69d6f5b99adfaa064d0f41609a378aef04eb06accc5b44f8520e68549eba3a082478180957b7d5783f1bfb1672e4ae8574e797ce8bae79fa +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/compat-data@npm:7.25.7" + checksum: 10c0/e5cc915abdd18d021236474a96606b2d4a915c4fb620c1ad776b8a08d91111e788cb3b7e9bad43593d4e0bfa4f06894357bcb0984102de1861b9e7322b6bc9f8 languageName: node linkType: hard -"@babel/core@npm:7.25.2": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" +"@babel/core@npm:7.25.7": + version: 7.25.7 + resolution: "@babel/core@npm:7.25.7" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helpers": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" 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: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + checksum: 10c0/dad20af39624086afc3a0910bd97ae712c9ad0e9dda09fc5da93876e8ea1802b63ddd81c44f4aa8a9834db46de801eaab1ce9b81ab54b4fe907ae052c24de136 languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" +"@babel/generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/types": "npm:^7.25.7" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/f89282cce4ddc63654470b98086994d219407d025497f483eb03ba102086e11e2b685b27122f6ff2e1d93b5b5fa0c3a6b7e974fbf2e4a75b685041a746a4291e + jsesc: "npm:^3.0.2" + checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" +"@babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a + "@babel/types": "npm:^7.25.7" + checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 + checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" +"@babel/helper-create-class-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.4" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a765d9e0482e13cf96642fa8aa28e6f7d4d7d39f37840d6246e5e10a7c47f47c52d52522edd3073f229449d17ec0db6f9b7b5e398bff6bb0b4994d65957a164c + checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0, @babel/helper-create-regexp-features-plugin@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - regexpu-core: "npm:^5.3.1" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + regexpu-core: "npm:^6.1.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/85a7e3639c118856fb1113f54fb7e3bf7698171ddfd0cd6fccccd5426b3727bc1434fe7f69090441dcde327feef9de917e00d35e47ab820047057518dd675317 + checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4 languageName: node linkType: hard @@ -171,223 +171,223 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" +"@babel/helper-member-expression-to-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" - checksum: 10c0/7e14a5acc91f6cd26305a4441b82eb6f616bd70b096a4d2099a968f16b26d50207eec0b9ebfc466fefd62bd91587ac3be878117cdfec819b7151911183cb0e5a + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" +"@babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 + checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" +"@babel/helper-optimise-call-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/ca6a9884705dea5c95a8b3ce132d1e3f2ae951ff74987d400d1d9c215dae9c0f9e29924d8f8e131e116533d182675bc261927be72f6a9a2968eaeeaa51eb1d0f + "@babel/types": "npm:^7.25.7" + checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" +"@babel/helper-remap-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-wrap-function": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-wrap-function": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/0d17b5f7bb6a607edc9cc62fff8056dd9f341bf2f919884f97b99170d143022a5e7ae57922c4891e4fc360ad291e708d2f8cd8989f1d3cd7a17600159984f5a6 + checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" +"@babel/helper-replace-supers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-replace-supers@npm:7.25.7" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-member-expression-to-functions": "npm:^7.25.7" + "@babel/helper-optimise-call-expression": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b4b6650ab3d56c39a259367cd97f8df2f21c9cebb3716fea7bca40a150f8847bfb82f481e98927c7c6579b48a977b5a8f77318a1c6aeb497f41ecd6dbc3fdfef + checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7 + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/e3a9b8ac9c262ac976a1bcb5fe59694db5e6f0b4f9e7bdba5c7693b8b5e28113c23bdaa60fe8d3ec32a337091b67720b2053bcb3d5655f5406536c3d0584242b + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 +"@babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10c0/73db93a34ae89201351288bee7623eed81a54000779462a986105b54ffe82069e764afd15171a428b82e7c7a9b5fec10b5d5603b216317a414062edf5c67a21f +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-wrap-function@npm:7.25.0" +"@babel/helper-wrap-function@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-wrap-function@npm:7.25.7" dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/d54601a98384c191cbc1ff07b03a19e288ef8d5c6bfafe270b2a303d96e7304eb296002921ed464cc1b105a547d1db146eb86b0be617924dee1ba1b379cdc216 + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755 languageName: node linkType: hard -"@babel/helpers@npm:^7.25.0": - version: 7.25.6 - resolution: "@babel/helpers@npm:7.25.6" +"@babel/helpers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helpers@npm:7.25.7" dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" - checksum: 10c0/448c1cdabccca42fd97a252f73f1e4bcd93776dbf24044f3b4f49b756bf2ece73ee6df05177473bb74ea7456dddd18d6f481e4d96d2cc7839d078900d48c696c + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 languageName: node linkType: hard -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" chalk: "npm:^2.4.2" js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" +"@babel/parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/parser@npm:7.25.7" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/types": "npm:^7.25.7" bin: parser: ./bin/babel-parser.js - checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d + checksum: 10c0/b771469bb6b636c18a8d642b9df3c73913c3860a979591e1a29a98659efd38b81d3e393047b5251fe382d4c82c681c12da9ce91c98d69316d2604d155a214bcf languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.3" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/814b4d3f102e7556a5053d1acf57ef601cfcff39a2c81b8cdc6a5c842e3cb9838f5925d1466a5f1e6416e74c9c83586a3c07fbd7fb8610a396c2becdf9ae5790 + checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/9645a1f47b3750acadb1353c02e71cc712d072aafe5ce115ed3a886bc14c5d9200cfb0b5b5e60e813baa549b800cf798f8714019fd246c699053cf68c428e426 + checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ed1ce1c90cac46c01825339fd0f2a96fa071b016fb819d8dfaf8e96300eae30e74870cb47e4dc80d4ce2fb287869f102878b4f3b35bc927fec8b1d0d76bcf612 + checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36 + checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/45988025537a9d4a27b610fd696a18fd9ba9336621a69b4fb40560eeb10c79657f85c92a37f30c7c8fb29c22970eea0b373315795a891f1a05549a6cfe5a6bfe + checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65 languageName: node linkType: hard @@ -455,25 +455,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.7": - version: 7.25.6 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.6" +"@babel/plugin-syntax-import-assertions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/55afa63b1b1355bcc1d85a9ad9d2c78983e27beee38e232d5c1ab59eac39127ce3c3817d6686e3ab1d0aff5edd8e38a6852885c65d3e518accdd183a445ef411 + checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.25.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.6" +"@babel/plugin-syntax-import-attributes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0e9359cf2d117476310961dfcfd7204ed692e933707da10d6194153d3996cd2ea5b7635fc90d720dce3612083af89966bb862561064a509c350320dc98644751 + checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 languageName: node linkType: hard @@ -599,616 +599,616 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" +"@babel/plugin-transform-arrow-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245 + checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.4" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-remap-async-to-generator": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/traverse": "npm:^7.25.4" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/efed6f6be90b25ad77c15a622a0dc0b22dbf5d45599c207ab8fbc4e959aef21f574fa467d9cf872e45de664a46c32334e78dee2332d82f5f27e26249a34a0920 + checksum: 10c0/dcdd17d8cafafe0eb2edd0a46a7abe86c72235c957c8eb1157ccadb2b199572d5d1aa36a2d3bce5cb99990f7d3c6290ecf09959c62f3081c4df9ff717a1c84a4 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" +"@babel/plugin-transform-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-remap-async-to-generator": "npm:^7.24.7" + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-remap-async-to-generator": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d + checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd + checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" +"@babel/plugin-transform-block-scoping@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/382931c75a5d0ea560387e76cb57b03461300527e4784efcb2fb62f36c1eb0ab331327b6034def256baa0cad9050925a61f9c0d56261b6afd6a29c3065fb0bd4 + checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.4" +"@babel/plugin-transform-class-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.4" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0b41bc8a5920d3d17c7c06220b601cf43e0a32ac34f05f05cd0cdf08915e4521b1b707cb1e60942b4fc68a5dfac09f0444a8720e0c72ce76fb039e8ec5263115 + checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" +"@babel/plugin-transform-class-static-block@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.25.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb + checksum: 10c0/cbb4b46cbd8ad10106eb2bedb5a0665661a1d1d5b6f3ab565ff454b802dab4718e02b25670fe0d40835494aedb3dc26757c06cc4da6ff3e80291c5f882269bd3 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-classes@npm:7.25.4" +"@babel/plugin-transform-classes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-classes@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.4" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c68424d9dd64860825111aa4a4ed5caf29494b7a02ddb9c36351d768c41e8e05127d89274795cdfcade032d9d299e6c677418259df58c71e68f1741583dcf467 + checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" +"@babel/plugin-transform-computed-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/template": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49 + checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" +"@babel/plugin-transform-destructuring@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/804968c1d5f5072c717505296c1e5d5ec33e90550423de66de82bbcb78157156e8470bbe77a04ab8c710a88a06360a30103cf223ac7eff4829adedd6150de5ce + checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" +"@babel/plugin-transform-dotall-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33 + checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" +"@babel/plugin-transform-duplicate-keys@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9 + checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/1c9b57ddd9b33696e88911d0e7975e1573ebc46219c4b30eb1dc746cbb71aedfac6f6dab7fdfdec54dd58f31468bf6ab56b157661ea4ffe58f906d71f89544c8 + checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" +"@babel/plugin-transform-dynamic-import@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b + checksum: 10c0/c733252ff20a32d9747dd081916270f5a073856597e849a5f458b12f4354499b18714f5e7049e341432851d9975077cb37effcd276c7f816faa6f5ff708dc5e1 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c + checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c + checksum: 10c0/ef61fc5d54c9c8b075cbd9db62beaf295e38e08a1edb1882995105d3e959763be1631f7d7f7cb7461b702ebd0b4a601f2eb2cd6521acaf061310a3a3305fa756 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-for-of@npm:7.24.7" +"@babel/plugin-transform-for-of@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-for-of@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0 + checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1": - version: 7.25.1 - resolution: "@babel/plugin-transform-function-name@npm:7.25.1" +"@babel/plugin-transform-function-name@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-function-name@npm:7.25.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.1" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e74912174d5e33d1418b840443c2e226a7b76cc017c1ed20ee30a566e4f1794d4a123be03180da046241576e8b692731807ba1f52608922acf1cb2cb6957593f + checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" +"@babel/plugin-transform-json-strings@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a + checksum: 10c0/aa6e5f65c8a5f2459d7daa9b5b4ff97ff43bab21f4a8513ed84d35300b0323ec542dc101c5f11622e442dfc93b3a229c7f41ebc7645370dfec6d066bda800a0b languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/plugin-transform-literals@npm:7.25.2" +"@babel/plugin-transform-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0796883217b0885d37e7f6d350773be349e469a812b6bf11ccf862a6edf65103d3e7c849529d65381b441685c12e756751d8c2489a0fd3f8139bb5ef93185f58 + checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272 + checksum: 10c0/d610a8a2c1be83e03cce2256f29519e705dc68289c09d67f1f362d1fd80f4b36eaf2affc05710abb53a272895041e24d9e95ec73a516a23a67cb907023fbe37b languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" +"@babel/plugin-transform-member-expression-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684 + checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f + checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f1cf552307ebfced20d3907c1dd8be941b277f0364aa655e2b5fee828c84c54065745183104dae86f1f93ea0406db970a463ef7ceaaed897623748e99640e5a7 + checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fca6198da71237e4bb1274b3b67a0c81d56013c9535361242b6bfa87d70a9597854aadb45d4d8203369be4a655e158be2a5d20af0040b1f8d1bfc47db3ad7b68 + checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" +"@babel/plugin-transform-modules-umd@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85 + checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9 + checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-new-target@npm:7.24.7" +"@babel/plugin-transform-new-target@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-new-target@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df + checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9 + checksum: 10c0/b35a96a79ef4895b00e4f758d3185cb17e4fbfada311894ad5f0988a55fc2c21820dc789b26a3cb8fbd620434faa516e52acb6e2da105c2edbd29de8b6b0facf languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" +"@babel/plugin-transform-numeric-separator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789 + checksum: 10c0/c028ae89e6b4e1d757f8f1ebcb3b420e6559bb35002728f6f5651d5f669fbf73764adf6e3597908fa12adf8dbae683e5f74b3a7f68e8774a9663c18c0f999539 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-parameters": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb + checksum: 10c0/e8b978d9d1020452da0d5d92f80fe57e302761dac20137bb8bf863478a4779fcd63d314db89e796125d9d76da2a38f64f012d6e0c4913815951b3eb3fba2feb6 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-super@npm:7.24.7" +"@babel/plugin-transform-object-super@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-object-super@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-replace-supers": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869 + checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a + checksum: 10c0/bb609e5103780be0825a255ffe1fefbb5335aead88a46eecc2257053279ea2c45ff66b0ef1fb54302c8c8c57146e88e52f3ecb62b4c6f619218d7b3843b352d9 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" +"@babel/plugin-transform-optional-chaining@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4ffbe1aad7dec7c9aa2bf6ceb4b2f91f96815b2784f2879bde80e46934f59d64a12cb2c6262e40897c4754d77d2c35d8a5cfed63044fdebf94978b1ed3d14b17 + checksum: 10c0/887441ada6c2bc1b789984b7531d9bc585f335ece99642886d3d9fd8aee7e6b8d4f7ca61d76b5f23477f3aa607284d5056eadaa1eb17e7b39af6b0e834cbe878 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-parameters@npm:7.24.7" +"@babel/plugin-transform-parameters@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-parameters@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/53bf190d6926771545d5184f1f5f3f5144d0f04f170799ad46a43f683a01fab8d5fe4d2196cf246774530990c31fe1f2b9f0def39f0a5ddbb2340b924f5edf01 + checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.4" +"@babel/plugin-transform-private-methods@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.4" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7abdb427c3984a2c8a2e9d806297d8509b02f78a3501b7760e544be532446e9df328b876daa8fc38718f3dce7ccc45083016ee7aeaab169b81c142bc18700794 + checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba + checksum: 10c0/5ad8832ba54e2079c1f558b8680e170265e3f376424e5fbb75b17b7f08696fb0af6c96d23d92f7df3dcc559f5971a02587281fcec38a853174aa95478565f5fc languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" +"@babel/plugin-transform-property-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433 + checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" +"@babel/plugin-transform-regenerator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b + checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" +"@babel/plugin-transform-reserved-words@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5 + checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf + checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-spread@npm:7.24.7" +"@babel/plugin-transform-spread@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-spread@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66 + checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" +"@babel/plugin-transform-sticky-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109 + checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" +"@babel/plugin-transform-template-literals@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6 + checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" +"@babel/plugin-transform-typeof-symbol@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2f570a4fbbdc5fd85f48165a97452826560051e3b8efb48c3bb0a0a33ee8485633439e7b71bfe3ef705583a1df43f854f49125bd759abdedc195b2cf7e60012a + checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" +"@babel/plugin-transform-unicode-escapes@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69 + checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e + checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" +"@babel/plugin-transform-unicode-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9 + checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.4" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f65749835a98d8d6242e961f9276bdcdb09020e791d151ccc145acaca9a66f025b2c7cb761104f139180d35eb066a429596ee6edece81f5fd9244e0edb97d7ec + checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35 languageName: node linkType: hard -"@babel/preset-env@npm:7.25.4": - version: 7.25.4 - resolution: "@babel/preset-env@npm:7.25.4" +"@babel/preset-env@npm:7.25.7": + version: 7.25.7 + resolution: "@babel/preset-env@npm:7.25.7" dependencies: - "@babel/compat-data": "npm:^7.25.4" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-option": "npm:^7.24.8" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.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" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" @@ -1220,64 +1220,64 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" "@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.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" - "@babel/plugin-transform-modules-amd": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" - "@babel/plugin-transform-modules-umd": "npm:^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-new-target": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-object-super": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.25.4" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-property-literals": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-reserved-words": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-template-literals": "npm:^7.24.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.4" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.7" + "@babel/plugin-transform-class-properties": "npm:^7.25.7" + "@babel/plugin-transform-class-static-block": "npm:^7.25.7" + "@babel/plugin-transform-classes": "npm:^7.25.7" + "@babel/plugin-transform-computed-properties": "npm:^7.25.7" + "@babel/plugin-transform-destructuring": "npm:^7.25.7" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.7" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.7" + "@babel/plugin-transform-for-of": "npm:^7.25.7" + "@babel/plugin-transform-function-name": "npm:^7.25.7" + "@babel/plugin-transform-json-strings": "npm:^7.25.7" + "@babel/plugin-transform-literals": "npm:^7.25.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.7" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" + "@babel/plugin-transform-modules-amd": "npm:^7.25.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7" + "@babel/plugin-transform-modules-umd": "npm:^7.25.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" + "@babel/plugin-transform-new-target": "npm:^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.7" + "@babel/plugin-transform-object-super": "npm:^7.25.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + "@babel/plugin-transform-parameters": "npm:^7.25.7" + "@babel/plugin-transform-private-methods": "npm:^7.25.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.7" + "@babel/plugin-transform-property-literals": "npm:^7.25.7" + "@babel/plugin-transform-regenerator": "npm:^7.25.7" + "@babel/plugin-transform-reserved-words": "npm:^7.25.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7" + "@babel/plugin-transform-spread": "npm:^7.25.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.7" + "@babel/plugin-transform-template-literals": "npm:^7.25.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.6" babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.37.1" + core-js-compat: "npm:^3.38.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ed210a1974b5a1e7f80a933c87253907ec869457cea900bc97892642fa9a690c47627a9bac08a7c9495deb992a2b15f308ffca2741e1876ba47172c96fa27e14 + checksum: 10c0/bf704a06a69420250c1de2b126cd5c859a851002c2fb2cce0910cd85a8e6755b9b31577021e94feb7e1e53519923726349aaf07580923928791583db61438fb8 languageName: node linkType: hard @@ -1294,13 +1294,6 @@ __metadata: languageName: node linkType: hard -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 10c0/4f3ddd8c7c96d447e05c8304c1d5ba3a83fcabd8a716bc1091c2f31595cdd43a3a055fff7cb5d3042b8cb7d402d78820fcb4e05d896c605a7d8bcf30f2424c4a - languageName: node - linkType: hard - "@babel/runtime@npm:^7.8.4": version: 7.25.6 resolution: "@babel/runtime@npm:7.25.6" @@ -1310,40 +1303,40 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" +"@babel/template@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + "@babel/code-frame": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.6" - "@babel/parser": "npm:^7.25.6" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e + checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a languageName: node linkType: hard -"@babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.4.4": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.4.4": + version: 7.25.7 + resolution: "@babel/types@npm:7.25.7" dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/helper-string-parser": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4 + checksum: 10c0/e03e1e2e08600fa1e8eb90632ac9c253dd748176c8d670d85f85b0dc83a0573b26ae748a1cbcb81f401903a3d95f43c3f4f8d516a5ed779929db27de56289633 languageName: node linkType: hard @@ -2754,17 +2747,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" +"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" dependencies: - caniuse-lite: "npm:^1.0.30001646" - electron-to-chromium: "npm:^1.5.4" + caniuse-lite: "npm:^1.0.30001663" + electron-to-chromium: "npm:^1.5.28" node-releases: "npm:^2.0.18" update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 + checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 languageName: node linkType: hard @@ -2814,10 +2807,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001660 - resolution: "caniuse-lite@npm:1.0.30001660" - checksum: 10c0/d28900b56c597176d515c3175ca75c454f2d30cb2c09a44d7bdb009bb0c4d8a2557905adb77642889bbe9feb85fbfe9d974c8b8e53521fb4b50ee16ab246104e +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001666 + resolution: "caniuse-lite@npm:1.0.30001666" + checksum: 10c0/2d49e9be676233c24717f12aad3d01b3e5f902b457fe1deefaa8d82e64786788a8f79381ae437c61b50e15c9aea8aeb59871b1d54cb4c28b9190d53d292e2339 languageName: node linkType: hard @@ -3015,7 +3008,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0": +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": version: 3.38.1 resolution: "core-js-compat@npm:3.38.1" dependencies: @@ -3368,10 +3361,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.4": - version: 1.5.19 - resolution: "electron-to-chromium@npm:1.5.19" - checksum: 10c0/73e25a928e041d707565fb08371b6ba5f3d7d99c78adddfd553660f28809ca22f1608ff295da3c764903a8eae890cbdd701b1b64b3e1eaeb298cb8aecbf21937 +"electron-to-chromium@npm:^1.5.28": + version: 1.5.31 + resolution: "electron-to-chromium@npm:1.5.31" + checksum: 10c0/e8aecd88c4c6d50a9d459b4b222865b855bab8f1b52e82913804e18b7884f2887bd76c61b3aa08c2ccbdcda098dd8486443f75bf770f0138f21dd9e63548fca7 languageName: node linkType: hard @@ -4406,9 +4399,9 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.25.6" - "@babel/core": "npm:7.25.2" - "@babel/preset-env": "npm:7.25.4" + "@babel/cli": "npm:7.25.7" + "@babel/core": "npm:7.25.7" + "@babel/preset-env": "npm:7.25.7" "@eslint/js": "npm:9.11.1" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" @@ -4534,21 +4527,12 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" bin: jsesc: bin/jsesc - checksum: 10c0/f93792440ae1d80f091b65f8ceddf8e55c4bb7f1a09dee5dcbdb0db5612c55c0f6045625aa6b7e8edb2e0a4feabd80ee48616dbe2d37055573a84db3d24f96d9 + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 languageName: node linkType: hard @@ -6205,12 +6189,12 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" dependencies: regenerate: "npm:^1.4.2" - checksum: 10c0/89adb5ee5ba081380c78f9057c02e156a8181969f6fcca72451efc45612e0c3df767b4333f8d8479c274d9c6fe52ec4854f0d8a22ef95dccbe87da8e5f2ac77d + checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 languageName: node linkType: hard @@ -6237,28 +6221,35 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" dependencies: - "@babel/regjsgen": "npm:^0.8.0" regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.1.0" - regjsparser: "npm:^0.9.1" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.11.0" unicode-match-property-ecmascript: "npm:^2.0.0" unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10c0/7945d5ab10c8bbed3ca383d4274687ea825aee4ab93a9c51c6e31e1365edd5ea807f6908f800ba017b66c462944ba68011164e7055207747ab651f8111ef3770 + checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd languageName: node linkType: hard -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" +"regjsparser@npm:^0.11.0": + version: 0.11.0 + resolution: "regjsparser@npm:0.11.0" dependencies: - jsesc: "npm:~0.5.0" + jsesc: "npm:~3.0.2" bin: regjsparser: bin/parser - checksum: 10c0/fe44fcf19a99fe4f92809b0b6179530e5ef313ff7f87df143b08ce9a2eb3c4b6189b43735d645be6e8f4033bfb015ed1ca54f0583bc7561bed53fd379feb8225 + checksum: 10c0/155143a8f2c95e3170df4fff10ddf3f16a351b5d2b8cbb257e9f4a50abb9a980a28af0936b5bf850fee767537ffa8eb77c6b211fe8be19834dbe584dfd950c62 languageName: node linkType: hard From f850a9f19d861c6433a21012abacbc858e17395d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 08:46:52 -0700 Subject: [PATCH 041/160] Update mina-sshd-api.version to v2.14.0-131.v04e9b_6b_e0362 (#9818) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 9b794a826387..801045f7a8f0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -46,7 +46,7 @@ THE SOFTWARE. localhost 8080 - 2.13.2-125.v200281b_61d59 + 2.14.0-131.v04e9b_6b_e0362 3107.v665000b_51092 From edd84f7ca7181c19a1da9841aa619e1e9b94ad2f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 09:10:53 -0700 Subject: [PATCH 042/160] Fill in since annotations (#9820) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/jenkins/security/ExtendedReadRedaction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/security/ExtendedReadRedaction.java b/core/src/main/java/jenkins/security/ExtendedReadRedaction.java index 31436c5622f2..7baec1962f48 100644 --- a/core/src/main/java/jenkins/security/ExtendedReadRedaction.java +++ b/core/src/main/java/jenkins/security/ExtendedReadRedaction.java @@ -10,7 +10,7 @@ * * @see SECURITY-266 * @see Jenkins Security Advisory 2016-05-11 - * @since TODO + * @since 2.479 */ public interface ExtendedReadRedaction extends ExtensionPoint { /** From 6895eb3993228dc0b309d08a6da63c05d58f48a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:43:14 -0700 Subject: [PATCH 043/160] Update mina-sshd.version to v2.14.0 (#9819) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- cli/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/pom.xml b/cli/pom.xml index 6309811a2e8b..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -15,7 +15,7 @@ https://github.com/jenkinsci/jenkins - 2.13.2 + 2.14.0 From e87e6762a07d495e22b5efa7baa2e8d562b39a06 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 3 Oct 2024 10:59:47 -0700 Subject: [PATCH 044/160] `mvn clean` should clean frontend artifacts (#9815) --- pom.xml | 58 +++++++++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index e2d956523e87..0dde62a0569d 100644 --- a/pom.xml +++ b/pom.xml @@ -463,6 +463,31 @@ THE SOFTWARE. + + org.apache.maven.plugins + maven-clean-plugin + + + + + .yarn + false + + + node + false + + + node_modules + false + + + war/src/main/webapp/jsbundles + false + + + + @@ -532,38 +557,5 @@ THE SOFTWARE. - - - clean-node - - - cleanNode - - - package.json - - - - - - org.apache.maven.plugins - maven-clean-plugin - - - - - node - false - - - node_modules - false - - - - - - - From 64f005b03d1fe81c1f2bb27c7762336c4637ea32 Mon Sep 17 00:00:00 2001 From: Tyler Stachecki Date: Thu, 3 Oct 2024 14:51:37 -0400 Subject: [PATCH 045/160] Account for new Maven version requirement (#9822) Jenkins fails to build with Maven 3.8.1 - update the documentation to reflect that 3.9.6 is now required per a recent change in maven-hpi-plugin. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 17d4b17733f9..98650aa99de6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ This page provides information about contributing code to the Jenkins core codeb 3. Install the necessary development tools. In order to develop Jenkins, you need the following: - Java Development Kit (JDK) 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). + - Apache Maven 3.9.6 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. - Any IDE which supports importing Maven projects. 4. Set up your development environment as described in [Preparing for Plugin Development](https://www.jenkins.io/doc/developer/tutorial/prepare/) From 52803b2753903a7b30e38023dbc262d9ef8406f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:48:39 -0700 Subject: [PATCH 046/160] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2307 (#9824) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index a4ea23c9f3f7..0321e9611c5b 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2299.v7e8d22e797d3 + 2307.v10e5d0701b_e5 test From f6de4582f86a746c143c1c1813e67964da34f9d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:48:50 -0700 Subject: [PATCH 047/160] Update dependency org.jenkins-ci.plugins:junit to v1303 (#9825) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 0321e9611c5b..128f42dd662b 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1302.va_b_878c32eb_b_5 + 1303.v05e2505656b_7 test diff --git a/war/pom.xml b/war/pom.xml index 801045f7a8f0..3c15546fc168 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -314,7 +314,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1302.va_b_878c32eb_b_5 + 1303.v05e2505656b_7 hpi From 77c3d7ac843d3d5756eca3139a65f450a38b7a48 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Fri, 4 Oct 2024 09:59:10 -0700 Subject: [PATCH 048/160] [JENKINS-73838] Compatibility for `Jenkins#doSafeRestart(StaplerRequest, String)` (#9797) --- .../java/jenkins/cli/SafeRestartCommand.java | 3 ++- core/src/main/java/jenkins/model/Jenkins.java | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/jenkins/cli/SafeRestartCommand.java b/core/src/main/java/jenkins/cli/SafeRestartCommand.java index 54c624bbba27..4c1a8009e44d 100644 --- a/core/src/main/java/jenkins/cli/SafeRestartCommand.java +++ b/core/src/main/java/jenkins/cli/SafeRestartCommand.java @@ -32,6 +32,7 @@ import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.args4j.Option; +import org.kohsuke.stapler.StaplerRequest2; /** * Safe Restart Jenkins - do not accept any new jobs and try to pause existing. @@ -53,7 +54,7 @@ public String getShortDescription() { @Override protected int run() throws Exception { - Jenkins.get().doSafeRestart(null, message); + Jenkins.get().doSafeRestart((StaplerRequest2) null, message); return 0; } } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 6ea969668669..90ffceefb456 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4673,7 +4673,7 @@ public HttpResponse doSafeRestart(StaplerRequest req) throws IOException, Servle /** * Queues up a safe restart of Jenkins. Jobs have to finish or pause before it can proceed. No new jobs are accepted. * - * @since 2.414 + * @since 2.475 */ public HttpResponse doSafeRestart(StaplerRequest2 req, @QueryParameter("message") String message) throws IOException, ServletException, RestartNotSupportedException { checkPermission(MANAGE); @@ -4692,6 +4692,20 @@ public HttpResponse doSafeRestart(StaplerRequest2 req, @QueryParameter("message" return HttpResponses.redirectToDot(); } + /** + * @deprecated use {@link #doSafeRestart(StaplerRequest2, String)} + * @since 2.414 + */ + @Deprecated + @StaplerNotDispatchable + public HttpResponse doSafeRestart(StaplerRequest req, @QueryParameter("message") String message) throws IOException, javax.servlet.ServletException, RestartNotSupportedException { + try { + return doSafeRestart(StaplerRequest.toStaplerRequest2(req), message); + } catch (ServletException e) { + throw ServletExceptionWrapper.fromJakartaServletException(e); + } + } + private static Lifecycle restartableLifecycle() throws RestartNotSupportedException { if (Main.isUnitTest) { throw new RestartNotSupportedException("Restarting the controller JVM is not supported in JenkinsRule-based tests"); From 2627ab14c3f426a3f96d00f408ce000e884cdce9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 11:29:19 +0100 Subject: [PATCH 049/160] Update mina-sshd-api.version to v2.14.0-133.vcc091215a_358 (#9828) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 3c15546fc168..8dfca6d4ce29 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -46,7 +46,7 @@ THE SOFTWARE. localhost 8080 - 2.14.0-131.v04e9b_6b_e0362 + 2.14.0-133.vcc091215a_358 3107.v665000b_51092 From 0066184e68c8ccc7e887ca3d7d3095127b51ac1b Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 5 Oct 2024 03:34:09 -0700 Subject: [PATCH 050/160] Override the outdated managed dependency on `asm` in `guice-parent` (#9827) Override the outdated managed dependency on `asm` in `guice-parent` --- bom/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bom/pom.xml b/bom/pom.xml index a8c184ead7ac..b20f390fe568 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -352,6 +352,12 @@ THE SOFTWARE. stapler-groovy ${stapler.version} + + + org.ow2.asm + asm + 9.7 + org.samba.jcifs jcifs From 09fecfaff9ae42905d8bf801c2f67e60ec7cb0db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Oct 2024 15:21:12 +0100 Subject: [PATCH 051/160] Update dependency org.ow2.asm:asm to v9.7.1 (#9831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index b20f390fe568..0065b595ae9a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -356,7 +356,7 @@ THE SOFTWARE. org.ow2.asm asm - 9.7 + 9.7.1 org.samba.jcifs From a582fc10ac2f5499b39332af5536cb0368bda8e6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Oct 2024 14:40:36 -0600 Subject: [PATCH 052/160] Update dependency io.jenkins.plugins:asm-api to v9.7.1-95.v9f552033802a_ (#9834) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 8dfca6d4ce29..d13d14e462b0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -502,7 +502,7 @@ THE SOFTWARE. io.jenkins.plugins asm-api - 9.7-33.v4d23ef79fcc8 + 9.7.1-95.v9f552033802a_ hpi From 4d7b993c5b6af6490af7e4ca55e6a4a57a5027a6 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Sun, 6 Oct 2024 16:41:02 -0400 Subject: [PATCH 053/160] [JENKINS-73824] Wait for Pipeline builds to complete before allowing their jobs to be deleted (#9790) * Wait for Pipelines to complete before allowing their jobs to be deleted * Create mock Job/Run classes that use AsynchronousExecution to be able to add a regression test in core * [JENKINS-73824] Do not repeatedly interrupt executables in ItemDeletion.cancelBuildsInProgress * [JENKINS-73824] Delete ItemDeletionTest based on https://github.com/jenkinsci/jenkins/pull/9790#discussion_r1777727008 --- core/src/main/java/jenkins/model/queue/ItemDeletion.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/jenkins/model/queue/ItemDeletion.java b/core/src/main/java/jenkins/model/queue/ItemDeletion.java index a2d954fbc459..b278f4d24c93 100644 --- a/core/src/main/java/jenkins/model/queue/ItemDeletion.java +++ b/core/src/main/java/jenkins/model/queue/ItemDeletion.java @@ -266,12 +266,10 @@ public static void cancelBuildsInProgress(@NonNull Item initiatingItem) throws F // comparison with executor.getCurrentExecutable() == executable currently should always be // true as we no longer recycle Executors, but safer to future-proof in case we ever // revisit recycling. - if (!entry.getKey().isAlive() + if (!entry.getKey().isActive() || entry.getValue() != entry.getKey().getCurrentExecutable()) { iterator.remove(); } - // I don't know why, but we have to keep interrupting - entry.getKey().interrupt(Result.ABORTED); } Thread.sleep(50L); } From 7dfdceb4738292599fc9667847fa1b0394569d9b Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 7 Oct 2024 14:53:30 +0100 Subject: [PATCH 054/160] Fix dropdowns being added multiple times to the same element (#9835) --- war/src/main/js/components/dropdowns/utils.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/war/src/main/js/components/dropdowns/utils.js b/war/src/main/js/components/dropdowns/utils.js index a15c4d2c2ba5..27931dc7de32 100644 --- a/war/src/main/js/components/dropdowns/utils.js +++ b/war/src/main/js/components/dropdowns/utils.js @@ -12,6 +12,10 @@ const SELECTED_ITEM_CLASS = "jenkins-dropdown__item--selected"; * @param callback - called to retrieve the list of dropdown items */ function generateDropdown(element, callback, immediate) { + if (element._tippy && element._tippy.props.theme === "dropdown") { + element._tippy.destroy(); + } + tippy( element, Object.assign({}, Templates.dropdown(), { From 0402c9fe7eabff0b85b3a5850e8572b66a59c555 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 10:48:11 -0700 Subject: [PATCH 055/160] Update jenkins/ath Docker tag to v6022 (#9839) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 12eca9c947fb..22af7a72dd19 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6016.v3a_e3864eb_993 +export ATH_VERSION=6022.vf596f9d22cd1 if [[ $# -eq 0 ]]; then export JDK=17 From c7eae25f11b464855b54f2120c01c5b1fbd17e79 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 10:48:47 -0700 Subject: [PATCH 056/160] Update dependency org.jenkins-ci.plugins:credentials to v1384 (#9838) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 128f42dd662b..23dde51f5aa3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -224,7 +224,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1381.v2c3a_12074da_b_ + 1384.vf0a_2ed06f9c6 test From 7a40ff6770e4d9b3fb0cb6f027de6d2e067e6df5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 10:50:01 -0700 Subject: [PATCH 057/160] Update dependency node to v20.18.0 (#9837) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0dde62a0569d..49f760cdc774 100644 --- a/pom.xml +++ b/pom.xml @@ -98,7 +98,7 @@ THE SOFTWARE. false 8.1 - 20.17.0 + 20.18.0
org.jenkins-ci.plugins junit - 1303.v05e2505656b_7 + 1304.vc85a_b_ca_96613 hpi From 7e3de0a3af49ea493b7551e391c08124dbe1c0f4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:56:38 -0700 Subject: [PATCH 059/160] Update dependency postcss-preset-env to v10.0.6 (#9842) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index bd27d5b79eff..5b6068170eec 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.5", + "postcss-preset-env": "10.0.6", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.79.4", diff --git a/yarn.lock b/yarn.lock index 46e29f140aa7..34961cec1b2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4419,7 +4419,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.5" + postcss-preset-env: "npm:10.0.6" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.79.4" @@ -5422,9 +5422,9 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.1": - version: 11.0.1 - resolution: "postcss-custom-media@npm:11.0.1" +"postcss-custom-media@npm:^11.0.2": + version: 11.0.2 + resolution: "postcss-custom-media@npm:11.0.2" dependencies: "@csstools/cascade-layer-name-parser": "npm:^2.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.1" @@ -5432,7 +5432,7 @@ __metadata: "@csstools/media-query-list-parser": "npm:^3.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/771b281a28f105370ede7c4a86f9e3dd8d9ec3bf2d2883d4f2cfe9c42b5ec1bf88f713458b356870315d0ba3a285fbeb7bb514a1203d1c4fb113bd9044369bf2 + checksum: 10c0/7bec2b1e0b5d786c33c5715b611ffc8b9737252ee6bf77ca59255ac16f91ce614406923f43250e5c88b04f1bb050f155dc5ed4d9350dbd704c45fbd72e5a9a04 languageName: node linkType: hard @@ -5907,9 +5907,9 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.5": - version: 10.0.5 - resolution: "postcss-preset-env@npm:10.0.5" +"postcss-preset-env@npm:10.0.6": + version: 10.0.6 + resolution: "postcss-preset-env@npm:10.0.6" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.0" "@csstools/postcss-color-function": "npm:^4.0.2" @@ -5952,7 +5952,7 @@ __metadata: postcss-color-functional-notation: "npm:^7.0.2" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.1" + postcss-custom-media: "npm:^11.0.2" postcss-custom-properties: "npm:^14.0.1" postcss-custom-selectors: "npm:^8.0.1" postcss-dir-pseudo-class: "npm:^9.0.0" @@ -5974,7 +5974,7 @@ __metadata: postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/db5eb1175cb26bed3f1a4c47acc67935ffc784520321470520e59de366ac6f91be1e609fe36056af707ed20f7910721287cff0fae416c437dd3e944de13ffd05 + checksum: 10c0/01660acf3b9ddf4d612a31819e9a5de9fe5383e9eddd2c130180f66ae90c5a881eb408e73454fd50e1839eae71678d738bf72073de08f9013c183b0bd9950fe5 languageName: node linkType: hard From e4f5acdcc7916d03d24d9866fcbe30b27063eb3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:05:36 -0700 Subject: [PATCH 060/160] Update eslint monorepo to v9.12.0 (#9843) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 94 ++++++++++++++++++++++++++++------------------------ 2 files changed, 53 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index 5b6068170eec..6e01d39f94bf 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,12 @@ "@babel/cli": "7.25.7", "@babel/core": "7.25.7", "@babel/preset-env": "7.25.7", - "@eslint/js": "9.11.1", + "@eslint/js": "9.12.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.11.1", + "eslint": "9.12.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.10.0", diff --git a/yarn.lock b/yarn.lock index 34961cec1b2c..1c9ced4c8b74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1871,10 +1871,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.11.1": - version: 9.11.1 - resolution: "@eslint/js@npm:9.11.1" - checksum: 10c0/22916ef7b09c6f60c62635d897c66e1e3e38d90b5a5cf5e62769033472ecbcfb6ec7c886090a4b32fe65d6ce371da54384e46c26a899e38184dfc152c6152f7b +"@eslint/js@npm:9.12.0": + version: 9.12.0 + resolution: "@eslint/js@npm:9.12.0" + checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c languageName: node linkType: hard @@ -1894,6 +1894,23 @@ __metadata: languageName: node linkType: hard +"@humanfs/core@npm:^0.19.0": + version: 0.19.0 + resolution: "@humanfs/core@npm:0.19.0" + checksum: 10c0/f87952d5caba6ae427a620eff783c5d0b6cef0cfc256dec359cdaa636c5f161edb8d8dad576742b3de7f0b2f222b34aad6870248e4b7d2177f013426cbcda232 + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.5": + version: 0.16.5 + resolution: "@humanfs/node@npm:0.16.5" + dependencies: + "@humanfs/core": "npm:^0.19.0" + "@humanwhocodes/retry": "npm:^0.3.0" + checksum: 10c0/41c365ab09e7c9eaeed373d09243195aef616d6745608a36fc3e44506148c28843872f85e69e2bf5f1e992e194286155a1c1cecfcece6a2f43875e37cd243935 + languageName: node + linkType: hard + "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1901,10 +1918,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.3.0": - version: 0.3.0 - resolution: "@humanwhocodes/retry@npm:0.3.0" - checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6 +"@humanwhocodes/retry@npm:^0.3.0, @humanwhocodes/retry@npm:^0.3.1": + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 10c0/f0da1282dfb45e8120480b9e2e275e2ac9bbe1cf016d046fdad8e27cc1285c45bb9e711681237944445157b430093412b4446c1ab3fc4bb037861b5904101d3b languageName: node linkType: hard @@ -2021,7 +2038,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": +"@nodelib/fs.walk@npm:^1.2.3": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -3503,13 +3520,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.0.2": - version: 8.0.2 - resolution: "eslint-scope@npm:8.0.2" +"eslint-scope@npm:^8.1.0": + version: 8.1.0 + resolution: "eslint-scope@npm:8.1.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36 + checksum: 10c0/ae1df7accae9ea90465c2ded70f7064d6d1f2962ef4cc87398855c4f0b3a5ab01063e0258d954bb94b184f6759febe04c3118195cab5c51978a7229948ba2875 languageName: node linkType: hard @@ -3520,27 +3537,27 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.0.0": - version: 4.0.0 - resolution: "eslint-visitor-keys@npm:4.0.0" - checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5 +"eslint-visitor-keys@npm:^4.1.0": + version: 4.1.0 + resolution: "eslint-visitor-keys@npm:4.1.0" + checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb languageName: node linkType: hard -"eslint@npm:9.11.1": - version: 9.11.1 - resolution: "eslint@npm:9.11.1" +"eslint@npm:9.12.0": + version: 9.12.0 + resolution: "eslint@npm:9.12.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" "@eslint/core": "npm:^0.6.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.11.1" + "@eslint/js": "npm:9.12.0" "@eslint/plugin-kit": "npm:^0.2.0" + "@humanfs/node": "npm:^0.16.5" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.3.0" - "@nodelib/fs.walk": "npm:^1.2.8" + "@humanwhocodes/retry": "npm:^0.3.1" "@types/estree": "npm:^1.0.6" "@types/json-schema": "npm:^7.0.15" ajv: "npm:^6.12.4" @@ -3548,9 +3565,9 @@ __metadata: cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^8.0.2" - eslint-visitor-keys: "npm:^4.0.0" - espree: "npm:^10.1.0" + eslint-scope: "npm:^8.1.0" + eslint-visitor-keys: "npm:^4.1.0" + espree: "npm:^10.2.0" esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" @@ -3560,13 +3577,11 @@ __metadata: ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" json-stable-stringify-without-jsonify: "npm:^1.0.1" lodash.merge: "npm:^4.6.2" minimatch: "npm:^3.1.2" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" text-table: "npm:^0.2.0" peerDependencies: jiti: "*" @@ -3575,18 +3590,18 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/fc9afc31155fef8c27fc4fd00669aeafa4b89ce5abfbf6f60e05482c03d7ff1d5e7546e416aa47bf0f28c9a56597a94663fd0264c2c42a1890f53cac49189f24 + checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda languageName: node linkType: hard -"espree@npm:^10.0.1, espree@npm:^10.1.0": - version: 10.1.0 - resolution: "espree@npm:10.1.0" +"espree@npm:^10.0.1, espree@npm:^10.2.0": + version: 10.2.0 + resolution: "espree@npm:10.2.0" dependencies: acorn: "npm:^8.12.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.0.0" - checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 + eslint-visitor-keys: "npm:^4.1.0" + checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215 languageName: node linkType: hard @@ -4338,13 +4353,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -4402,12 +4410,12 @@ __metadata: "@babel/cli": "npm:7.25.7" "@babel/core": "npm:7.25.7" "@babel/preset-env": "npm:7.25.7" - "@eslint/js": "npm:9.11.1" + "@eslint/js": "npm:9.12.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.11.1" + eslint: "npm:9.12.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.10.0" From 42fae0104a507bb08e8bae56d884b5c92526e5be Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:08:31 +0000 Subject: [PATCH 061/160] [maven-release-plugin] prepare release jenkins-2.480 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0065b595ae9a..e75bbb0084f4 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..642fa9a8d2d6 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..d98553f5612f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..6106c7ad3176 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 jenkins-coverage diff --git a/pom.xml b/pom.xml index 49f760cdc774..9bf06464f2f0 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.480 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.480 -SNAPSHOT - 2024-09-27T11:17:44Z + 2024-10-08T10:40:01Z github diff --git a/test/pom.xml b/test/pom.xml index b3b1b81dab62..aa388cd1bfef 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 7a702c49fdc0..2d9dbab9a864 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..19915cadf6b2 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..a44387542409 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.480 ../.. From 9da61d9d2363a69239a2c52f751d134eaf4fc009 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:08:57 +0000 Subject: [PATCH 062/160] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index e75bbb0084f4..0065b595ae9a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 642fa9a8d2d6..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index d98553f5612f..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 6106c7ad3176..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 9bf06464f2f0..0ae24f547d80 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.480 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.480 + 2.481 -SNAPSHOT - 2024-10-08T10:40:01Z + 2024-10-08T14:08:31Z github diff --git a/test/pom.xml b/test/pom.xml index aa388cd1bfef..b3b1b81dab62 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 2d9dbab9a864..7a702c49fdc0 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 19915cadf6b2..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index a44387542409..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.480 + ${revision}${changelist} ../.. From c2ff150aca9ec029386585628fe3569656967146 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 07:51:31 -0700 Subject: [PATCH 063/160] Update dependency org.jenkins-ci.plugins:matrix-project to v839 (#9844) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index b3b1b81dab62..4104c0cd6434 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -248,7 +248,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 838.v4d7b_7b_f9b_d4b_ + 839.vff91cd7e3a_b_2 test diff --git a/war/pom.xml b/war/pom.xml index 7a702c49fdc0..5fc328e56d28 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -300,7 +300,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-project - 838.v4d7b_7b_f9b_d4b_ + 839.vff91cd7e3a_b_2 hpi From 5a364f28c13362de7928453b4e4d47eb20f12630 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 07:51:49 -0700 Subject: [PATCH 064/160] Update jenkins/ath Docker tag to v6032 (#9845) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 22af7a72dd19..58cb1ecef56c 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6022.vf596f9d22cd1 +export ATH_VERSION=6032.v4cf2fd6d88ca_ if [[ $# -eq 0 ]]; then export JDK=17 From 89a6c7e8a3fedb7bcb6139f1c2e1649946e10c92 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:36:17 -0700 Subject: [PATCH 065/160] Update jenkins/ath Docker tag to v6034 (#9847) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 58cb1ecef56c..a246733c5c2c 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6032.v4cf2fd6d88ca_ +export ATH_VERSION=6034.vfb_c575f4f616 if [[ $# -eq 0 ]]; then export JDK=17 From 9005f3ccb8b8909e22ab932dba60a8edad3c7bf8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:36:45 -0700 Subject: [PATCH 066/160] Update dependency org.jenkins-ci.plugins:scm-api to v698 (#9848) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 4104c0cd6434..019fe23d98b6 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -112,7 +112,7 @@ THE SOFTWARE. org.jenkins-ci.plugins scm-api - 696.v778d637b_a_762 + 698.v8e3b_c788f0a_6 diff --git a/war/pom.xml b/war/pom.xml index 5fc328e56d28..6511cded90fc 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -418,7 +418,7 @@ THE SOFTWARE. org.jenkins-ci.plugins scm-api - 696.v778d637b_a_762 + 698.v8e3b_c788f0a_6 hpi From 857253eeaadd6a08f19ef2e2e7890aecc4b2acf6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 15:18:17 -0700 Subject: [PATCH 067/160] Update dependency lit to v3.2.1 (#9851) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 56902cecd2a1..8b17895170df 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -6,7 +6,7 @@ + From 6651e8531eaf8c5d428a36c2e10f7c51ee016b16 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Fri, 11 Oct 2024 14:42:38 -0400 Subject: [PATCH 068/160] [JENKINS-63343] Validate element types for collections and maps when deserializing XML files (#9727) * [JENKINS-63343] Validate element types in RobustCollectionConverter in some cases * [JENKINS-63343] Also validate keys and values in map entries * [JENKINS-63343] Improve OldDataMonitor error messages and update tests * [JENKINS-63343] Also handle implicit collection with unspecified element types * [JENKINS-63343] Spotless * [JENKINS-63343] Avoid rawtypes * [JENKINS-63343] Add tests for rawtypes * [JENKINS-63343] Adjust Javadoc for clarity * [JENKINS-63343] Avoid ClassCastException and check handling of null in tests * [JENKINS-63343] Fix Javadoc link by adding import * [JENKINS-63343] List.of cannot be used with null values --- .../util/RobustCollectionConverter.java | 48 +++++++- .../java/hudson/util/RobustMapConverter.java | 57 ++++++++- .../util/RobustReflectionConverter.java | 43 +++++-- .../util/RobustCollectionConverterTest.java | 70 +++++++++++ .../hudson/util/RobustMapConverterTest.java | 115 +++++++++++++++++- .../util/RobustReflectionConverterTest.java | 83 ++++++++++++- 6 files changed, 396 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/hudson/util/RobustCollectionConverter.java b/core/src/main/java/hudson/util/RobustCollectionConverter.java index 64dbbc7d9e9a..f914d909be27 100644 --- a/core/src/main/java/hudson/util/RobustCollectionConverter.java +++ b/core/src/main/java/hudson/util/RobustCollectionConverter.java @@ -26,6 +26,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.XStreamException; +import com.thoughtworks.xstream.converters.ConversionException; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.converters.collections.CollectionConverter; import com.thoughtworks.xstream.converters.reflection.ReflectionProvider; @@ -34,11 +35,15 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.diagnosis.OldDataMonitor; +import java.lang.reflect.Type; import java.util.Collection; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; +import org.jvnet.tiger_types.Types; /** * {@link CollectionConverter} that ignores {@link XStreamException}. @@ -52,14 +57,39 @@ @SuppressWarnings({"rawtypes", "unchecked"}) public class RobustCollectionConverter extends CollectionConverter { private final SerializableConverter sc; + /** + * When available, this field holds the declared type of the collection being deserialized. + */ + private final @CheckForNull Class elementType; public RobustCollectionConverter(XStream xs) { - this(xs.getMapper(), xs.getReflectionProvider()); + this(xs.getMapper(), xs.getReflectionProvider(), null); } public RobustCollectionConverter(Mapper mapper, ReflectionProvider reflectionProvider) { + this(mapper, reflectionProvider, null); + } + + /** + * Creates a converter that will validate the types of collection elements during deserialization. + *

Elements with invalid types will be omitted from deserialized collections and may result in an + * {@link OldDataMonitor} warning. + *

This type checking currently uses the erasure of the type argument, so for example, the element type for a + * {@code List>} is just a raw {@code Optional}, so non-integer values inside of the optional + * would still deserialize successfully and the resulting optional would be included in the list. + * + * @see RobustReflectionConverter#unmarshalField + */ + public RobustCollectionConverter(Mapper mapper, ReflectionProvider reflectionProvider, Type collectionType) { super(mapper); sc = new SerializableConverter(mapper, reflectionProvider, new ClassLoaderReference(null)); + if (collectionType != null && Collection.class.isAssignableFrom(Types.erasure(collectionType))) { + var baseType = Types.getBaseClass(collectionType, Collection.class); + var typeArg = Types.getTypeArgument(baseType, 0, Object.class); + this.elementType = Types.erasure(typeArg); + } else { + this.elementType = null; + } } @Override @@ -85,9 +115,19 @@ protected void populateCollection(HierarchicalStreamReader reader, Unmarshalling reader.moveDown(); try { Object item = readBareItem(reader, context, collection); - long nanoNow = System.nanoTime(); - collection.add(item); - XStream2SecurityUtils.checkForCollectionDoSAttack(context, nanoNow); + if (elementType != null && item != null && !elementType.isInstance(item)) { + var exception = new ConversionException("Invalid type for collection element"); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", elementType.getName()); + exception.add("class", item.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + RobustReflectionConverter.addErrorInContext(context, exception); + } else { + long nanoNow = System.nanoTime(); + collection.add(item); + XStream2SecurityUtils.checkForCollectionDoSAttack(context, nanoNow); + } } catch (CriticalXStreamException e) { throw e; } catch (InputManipulationException e) { diff --git a/core/src/main/java/hudson/util/RobustMapConverter.java b/core/src/main/java/hudson/util/RobustMapConverter.java index f845e38771cc..c802959d0d09 100644 --- a/core/src/main/java/hudson/util/RobustMapConverter.java +++ b/core/src/main/java/hudson/util/RobustMapConverter.java @@ -31,9 +31,13 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import edu.umd.cs.findbugs.annotations.CheckForNull; +import hudson.diagnosis.OldDataMonitor; +import java.lang.reflect.Type; import java.util.Map; import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; +import org.jvnet.tiger_types.Types; /** * Loads a {@link Map} while tolerating read errors on its keys and values. @@ -42,13 +46,47 @@ final class RobustMapConverter extends MapConverter { private static final Object ERROR = new Object(); + /** + * When available, this field holds the declared type of the keys of the map being deserialized. + */ + private final @CheckForNull Class keyType; + + /** + * When available, this field holds the declared type of the values of the map being deserialized. + */ + private final @CheckForNull Class valueType; + RobustMapConverter(Mapper mapper) { + this(mapper, null); + } + + /** + * Creates a converter that will validate the types of map entry keys and values during deserialization. + *

Map entries whose key or value has an invalid type will be omitted from deserialized maps and may result in + * an {@link OldDataMonitor} warning. + *

This type checking currently uses the erasure of the type argument, so for example, the value type for a + * {@code Map>} is just a raw {@code Optional}, so non-integer values inside of the + * optional would still deserialize successfully and the resulting map entry would be included in the map. + * + * @see RobustReflectionConverter#unmarshalField + */ + RobustMapConverter(Mapper mapper, Type mapType) { super(mapper); + if (mapType != null && Map.class.isAssignableFrom(Types.erasure(mapType))) { + var baseType = Types.getBaseClass(mapType, Map.class); + var keyTypeArg = Types.getTypeArgument(baseType, 0, Object.class); + this.keyType = Types.erasure(keyTypeArg); + var valueTypeArg = Types.getTypeArgument(baseType, 1, Object.class); + this.valueType = Types.erasure(valueTypeArg); + } else { + this.keyType = null; + this.valueType = null; + } } @Override protected void putCurrentEntryIntoMap(HierarchicalStreamReader reader, UnmarshallingContext context, Map map, Map target) { - Object key = read(reader, context, map); - Object value = read(reader, context, map); + Object key = read(reader, context, map, keyType); + Object value = read(reader, context, map, valueType); if (key != ERROR && value != ERROR) { try { long nanoNow = System.nanoTime(); @@ -64,7 +102,7 @@ final class RobustMapConverter extends MapConverter { } } - private Object read(HierarchicalStreamReader reader, UnmarshallingContext context, Map map) { + private Object read(HierarchicalStreamReader reader, UnmarshallingContext context, Map map, @CheckForNull Class expectedType) { if (!reader.hasMoreChildren()) { var exception = new ConversionException("Invalid map entry"); reader.appendErrors(exception); @@ -73,7 +111,18 @@ private Object read(HierarchicalStreamReader reader, UnmarshallingContext contex } reader.moveDown(); try { - return readBareItem(reader, context, map); + var object = readBareItem(reader, context, map); + if (expectedType != null && object != null && !expectedType.isInstance(object)) { + var exception = new ConversionException("Invalid type for map entry key/value"); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", expectedType.getName()); + exception.add("class", object.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + RobustReflectionConverter.addErrorInContext(context, exception); + return ERROR; + } + return object; } catch (CriticalXStreamException x) { throw x; } catch (XStreamException | LinkageError x) { diff --git a/core/src/main/java/hudson/util/RobustReflectionConverter.java b/core/src/main/java/hudson/util/RobustReflectionConverter.java index d1bc500003e1..686aad13c342 100644 --- a/core/src/main/java/hudson/util/RobustReflectionConverter.java +++ b/core/src/main/java/hudson/util/RobustReflectionConverter.java @@ -48,6 +48,7 @@ import hudson.model.Saveable; import hudson.security.ACL; import java.lang.reflect.Field; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -65,6 +66,7 @@ import jenkins.util.xstream.CriticalXStreamException; import net.jcip.annotations.GuardedBy; import org.acegisecurity.Authentication; +import org.jvnet.tiger_types.Types; /** * Custom {@link ReflectionConverter} that handle errors more gracefully. @@ -80,7 +82,7 @@ @SuppressWarnings({"rawtypes", "unchecked"}) public class RobustReflectionConverter implements Converter { - private static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAllAuthentications", false); + static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAllAuthentications", false); private static /* non-final for Groovy */ boolean RECORD_FAILURES_FOR_ADMINS = SystemProperties.getBoolean(RobustReflectionConverter.class.getName() + ".recordFailuresForAdmins", false); protected final ReflectionProvider reflectionProvider; @@ -324,7 +326,8 @@ public Object doUnmarshal(final Object result, final HierarchicalStreamReader re } } - Map implicitCollectionsForCurrentObject = null; + Map> implicitCollectionsForCurrentObject = new HashMap<>(); + Map> implicitCollectionElementTypesForCurrentObject = new HashMap<>(); while (reader.hasMoreChildren()) { reader.moveDown(); @@ -365,7 +368,7 @@ public Object doUnmarshal(final Object result, final HierarchicalStreamReader re reflectionProvider.writeField(result, fieldName, value, classDefiningField); seenFields.add(classDefiningField, fieldName); } else { - implicitCollectionsForCurrentObject = writeValueToImplicitCollection(context, value, implicitCollectionsForCurrentObject, result, fieldName); + writeValueToImplicitCollection(reader, context, value, implicitCollectionsForCurrentObject, implicitCollectionElementTypesForCurrentObject, result, fieldName); } } } catch (CriticalXStreamException e) { @@ -451,18 +454,23 @@ private boolean fieldDefinedInClass(Object result, String attrName) { protected Object unmarshalField(final UnmarshallingContext context, final Object result, Class type, Field field) { Converter converter = mapper.getLocalConverter(field.getDeclaringClass(), field.getName()); + if (converter == null) { + if (new RobustCollectionConverter(mapper, reflectionProvider).canConvert(type)) { + converter = new RobustCollectionConverter(mapper, reflectionProvider, field.getGenericType()); + } else if (new RobustMapConverter(mapper).canConvert(type)) { + converter = new RobustMapConverter(mapper, field.getGenericType()); + } + } return context.convertAnother(result, type, converter); } - private Map writeValueToImplicitCollection(UnmarshallingContext context, Object value, Map implicitCollections, Object result, String itemFieldName) { + private void writeValueToImplicitCollection(HierarchicalStreamReader reader, UnmarshallingContext context, Object value, Map> implicitCollections, Map> implicitCollectionElementTypes, Object result, String itemFieldName) { String fieldName = mapper.getFieldNameForItemTypeAndName(context.getRequiredType(), value.getClass(), itemFieldName); if (fieldName != null) { - if (implicitCollections == null) { - implicitCollections = new HashMap(); // lazy instantiation - } - Collection collection = (Collection) implicitCollections.get(fieldName); + Collection collection = implicitCollections.get(fieldName); if (collection == null) { - Class fieldType = mapper.defaultImplementationOf(reflectionProvider.getFieldType(result, fieldName, null)); + Field field = reflectionProvider.getField(result.getClass(), fieldName); + Class fieldType = mapper.defaultImplementationOf(field.getType()); if (!Collection.class.isAssignableFrom(fieldType)) { throw new ObjectAccessException("Field " + fieldName + " of " + result.getClass().getName() + " is configured for an implicit Collection, but field is of type " + fieldType.getName()); @@ -473,10 +481,25 @@ private Map writeValueToImplicitCollection(UnmarshallingContext context, Object collection = (Collection) pureJavaReflectionProvider.newInstance(fieldType); reflectionProvider.writeField(result, fieldName, collection, null); implicitCollections.put(fieldName, collection); + Type fieldGenericType = field.getGenericType(); + Type elementGenericType = Types.getTypeArgument(Types.getBaseClass(fieldGenericType, Collection.class), 0, Object.class); + Class elementType = Types.erasure(elementGenericType); + implicitCollectionElementTypes.put(fieldName, elementType); + } + Class elementType = implicitCollectionElementTypes.getOrDefault(fieldName, Object.class); + if (!elementType.isInstance(value)) { + var exception = new ConversionException("Invalid element type for implicit collection for field: " + fieldName); + // c.f. TreeUnmarshaller.addInformationTo + exception.add("required-type", elementType.getName()); + exception.add("class", value.getClass().getName()); + exception.add("converter-type", getClass().getName()); + reader.appendErrors(exception); + throw exception; } collection.add(value); + } else { + // TODO: Should we warn in this case? The value will be ignored. } - return implicitCollections; } private Class determineWhichClassDefinesField(HierarchicalStreamReader reader) { diff --git a/core/src/test/java/hudson/util/RobustCollectionConverterTest.java b/core/src/test/java/hudson/util/RobustCollectionConverterTest.java index 7786fb0833f7..57f2ad42af39 100644 --- a/core/src/test/java/hudson/util/RobustCollectionConverterTest.java +++ b/core/src/test/java/hudson/util/RobustCollectionConverterTest.java @@ -32,6 +32,8 @@ import static org.junit.Assert.assertTrue; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; @@ -42,10 +44,24 @@ import java.util.Map; import java.util.Set; import jenkins.util.xstream.CriticalXStreamException; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.jvnet.hudson.test.Issue; public class RobustCollectionConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; + + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + @Test public void workingByDefaultWithSimplePayload() { XStream2 xstream2 = new XStream2(); @@ -173,4 +189,58 @@ private Set preparePayload() { } return set; } + + @Issue("JENKINS-63343") + @Test + public void checkElementTypes() { + var xmlContent = + """ + + + 1 + 2 + oops! + + 3 + + + """; + var actual = (Data) new XStream2().fromXML(xmlContent); + assertEquals(Arrays.asList(1, 2, null, 3), actual.numbers); + } + + @Test + public void rawtypes() { + var xmlContent = + """ + + + 1 + 2 + oops! + 3 + + + """; + var actual = (DataRaw) new XStream2().fromXML(xmlContent); + assertEquals(List.of(1, 2, "oops!", 3), actual.values); + } + + public static class Data implements Saveable { + private List numbers; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + public static class DataRaw implements Saveable { + private List values; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } } diff --git a/core/src/test/java/hudson/util/RobustMapConverterTest.java b/core/src/test/java/hudson/util/RobustMapConverterTest.java index b74ac9303f71..c46a7ade2f57 100644 --- a/core/src/test/java/hudson/util/RobustMapConverterTest.java +++ b/core/src/test/java/hudson/util/RobustMapConverterTest.java @@ -32,13 +32,29 @@ import static org.junit.Assert.assertTrue; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import jenkins.util.xstream.CriticalXStreamException; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.jvnet.hudson.test.Issue; public class RobustMapConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; + + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + /** * As RobustMapConverter is the replacer of the default MapConverter * We had to patch it in order to not be impacted by CVE-2021-43859 @@ -146,6 +162,7 @@ private Map preparePayload() { @Test public void robustAgainstInvalidEntry() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; XStream2 xstream2 = new XStream2(); String xml = """ @@ -184,7 +201,103 @@ public void robustAgainstInvalidEntryWithNoValue() { assertThat(data.map, equalTo(Map.of("key2", "value2"))); } - private static final class Data { + @Issue("JENKINS-63343") + @Test + public void robustAgainstInvalidKeyType() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + 1 + value1 + + + key2 + value2 + + + + value3 + + + + """; + Data data = (Data) xstream2.fromXML(xml); + var map = new HashMap<>(); + map.put("key2", "value2"); + map.put(null, "value3"); + assertThat(data.map, equalTo(map)); + } + + @Issue("JENKINS-63343") + @Test + public void robustAgainstInvalidValueType() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + key1 + value1 + + + key2 + 2 + + + key3 + + + + + """; + Data data = (Data) xstream2.fromXML(xml); + var map = new HashMap<>(); + map.put("key1", "value1"); + map.put("key3", null); + assertThat(data.map, equalTo(map)); + } + + @Test + public void rawtypes() { + XStream2 xstream2 = new XStream2(); + String xml = + """ + + + + key1 + value1 + + + key2 + 2 + + + + """; + var data = (DataRaw) xstream2.fromXML(xml); + assertThat(data.map, equalTo(Map.of("key1", "value1", "key2", 2))); + } + + private static class Data implements Saveable { Map map; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + private static class DataRaw implements Saveable { + Map map; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } } } diff --git a/core/src/test/java/hudson/util/RobustReflectionConverterTest.java b/core/src/test/java/hudson/util/RobustReflectionConverterTest.java index bb392132afdd..9f3da4b754b3 100644 --- a/core/src/test/java/hudson/util/RobustReflectionConverterTest.java +++ b/core/src/test/java/hudson/util/RobustReflectionConverterTest.java @@ -26,6 +26,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -41,6 +42,8 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.mapper.Mapper; import com.thoughtworks.xstream.security.InputManipulationException; +import hudson.model.Saveable; +import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -52,6 +55,9 @@ import java.util.logging.Logger; import jenkins.util.xstream.CriticalXStreamException; import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -59,11 +65,22 @@ * @author Kohsuke Kawaguchi */ public class RobustReflectionConverterTest { + private final boolean originalRecordFailures = RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS; static { Logger.getLogger(RobustReflectionConverter.class.getName()).setLevel(Level.OFF); } + @Before + public void before() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = true; + } + + @After + public void after() { + RobustReflectionConverter.RECORD_FAILURES_FOR_ALL_AUTHENTICATIONS = originalRecordFailures; + } + @Test public void robustUnmarshalling() { Point p = read(new XStream2()); @@ -132,8 +149,72 @@ public void implicitCollection() { "", xs.toXML(h)); } - public static class Hold { + @Ignore("Throws an NPE in writeValueToImplicitCollection. Issue has existed since RobustReflectionConverter was created.") + @Test + public void implicitCollectionsAllowNullElements() { + XStream2 xs = new XStream2(); + xs.alias("hold", Hold.class); + xs.addImplicitCollection(Hold.class, "items", "item", String.class); + Hold h = (Hold) xs.fromXML("b"); + assertThat(h.items, Matchers.containsInAnyOrder(null, "b")); + assertEquals("\n" + + " \n" + + " b\n" + + "", xs.toXML(h)); + } + + @Issue("JENKINS-63343") + @Test + public void robustAgainstImplicitCollectionElementsWithBadTypes() { + XStream2 xs = new XStream2(); + xs.alias("hold", Hold.class); + // Note that the fix only matters for `addImplicitCollection` overloads like the following where the element type is not provided. + xs.addImplicitCollection(Hold.class, "items"); + Hold h = (Hold) xs.fromXML( + """ + + 123 + abc + 456 + def + + """); + assertThat(h.items, equalTo(List.of("abc", "def"))); + } + + public static class Hold implements Saveable { List items; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } + } + + @Test + public void implicitCollectionRawtypes() { + XStream2 xs = new XStream2(); + xs.alias("hold", HoldRaw.class); + xs.addImplicitCollection(HoldRaw.class, "items"); + var h = (HoldRaw) xs.fromXML( + """ + + 123 + abc + 456 + def + + """); + assertThat(h.items, equalTo(List.of(123, "abc", 456, "def"))); + } + + public static class HoldRaw implements Saveable { + List items; + + @Override + public void save() throws IOException { + // We only implement Saveable so that RobustReflectionConverter logs deserialization problems. + } } @Retention(RetentionPolicy.RUNTIME) @interface Owner { From 3ee0e787ff815a15a4aabc2ceea099236294c190 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:55:56 -0700 Subject: [PATCH 069/160] Update jenkins/ath Docker tag to v6038 (#9854) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index a246733c5c2c..7009d692b8d0 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6034.vfb_c575f4f616 +export ATH_VERSION=6038.v190f938efc87 if [[ $# -eq 0 ]]; then export JDK=17 From 4a9fb7739a298d0019124b38892caa4a6a4d3b47 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:56:19 -0700 Subject: [PATCH 070/160] Update dependency org.jenkins-ci.plugins:credentials to v1389 (#9853) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 019fe23d98b6..c911388fdef3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -224,7 +224,7 @@ THE SOFTWARE. org.jenkins-ci.plugins credentials - 1384.vf0a_2ed06f9c6 + 1389.vd7a_b_f5fa_50a_2 test From 925de03663e9768d6f64d19b0b0ed04596f338d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:56:41 -0700 Subject: [PATCH 071/160] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2341 (#9850) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index c911388fdef3..ba67c9804137 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2307.v10e5d0701b_e5 + 2341.v35346d95d2b_7 test From d34b17ee4b85787be56a2d6f32186e3839d5482d Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Sat, 12 Oct 2024 08:06:18 -0400 Subject: [PATCH 072/160] [JENKINS-73835] Do not allow builds to be deleted while they are still running and ensure build discarders run after builds are fully complete (#9810) * [JENKINS-73835] Do not allow builds to be deleted while they are still running * [JENKINS-73835] Avoid redundant calls to Job.logRotate when builds complete and always call Job.logRotate after build finalization * [JENKINS-73835] Add issue reference to RunTest.buildsMayNotBeDeletedWhileRunning * [JENKINS-73835] Adjust DeleteBuildsCommandTest.deleteBuildsShouldSuccessEvenTheBuildIsRunning to match new behavior * [JENKINS-73835] Run/delete.jelly should check Run.isLogUpdated, not Run.isBuilding --- core/src/main/java/hudson/model/Run.java | 9 +++----- .../main/java/hudson/tasks/LogRotator.java | 2 +- .../model/BackgroundGlobalBuildDiscarder.java | 13 +++++++++++- .../model/GlobalBuildDiscarderListener.java | 13 ++++++++++-- .../resources/hudson/model/Run/delete.jelly | 2 +- .../hudson/cli/DeleteBuildsCommandTest.java | 21 ++++++------------- test/src/test/java/hudson/model/RunTest.java | 14 +++++++++++++ .../java/hudson/tasks/LogRotatorTest.java | 16 ++++++++++++++ 8 files changed, 64 insertions(+), 26 deletions(-) diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index 450be07b7f1a..ec7eaabf32c6 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1551,6 +1551,9 @@ public synchronized void deleteArtifacts() throws IOException { * if we fail to delete. */ public void delete() throws IOException { + if (isLogUpdated()) { + throw new IOException("Unable to delete " + this + " because it is still running"); + } synchronized (this) { // Avoid concurrent delete. See https://issues.jenkins.io/browse/JENKINS-61687 if (isPendingDelete) { @@ -1885,12 +1888,6 @@ protected final void execute(@NonNull RunExecution job) { LOGGER.log(Level.SEVERE, "Failed to save build record", e); } } - - try { - getParent().logRotate(); - } catch (Exception e) { - LOGGER.log(Level.SEVERE, "Failed to rotate log", e); - } } finally { onEndBuilding(); if (logger != null) { diff --git a/core/src/main/java/hudson/tasks/LogRotator.java b/core/src/main/java/hudson/tasks/LogRotator.java index ca95081b0385..0b47f035d809 100644 --- a/core/src/main/java/hudson/tasks/LogRotator.java +++ b/core/src/main/java/hudson/tasks/LogRotator.java @@ -250,7 +250,7 @@ private boolean shouldKeepRun(Run r, Run lsb, Run lstb) { LOGGER.log(FINER, "{0} is not to be removed or purged of artifacts because it’s the last stable build", r); return true; } - if (r.isBuilding()) { + if (r.isLogUpdated()) { LOGGER.log(FINER, "{0} is not to be removed or purged of artifacts because it’s still building", r); return true; } diff --git a/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java b/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java index 1a42c0577a47..ad33643879f5 100644 --- a/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java +++ b/core/src/main/java/jenkins/model/BackgroundGlobalBuildDiscarder.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Stream; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -56,8 +57,18 @@ protected void execute(TaskListener listener) throws IOException, InterruptedExc } } + /** + * Runs all globally configured build discarders against a job. + */ public static void processJob(TaskListener listener, Job job) { - GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().forEach(strategy -> { + processJob(listener, job, GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().stream()); + } + + /** + * Runs the specified build discarders against a job. + */ + public static void processJob(TaskListener listener, Job job, Stream strategies) { + strategies.forEach(strategy -> { String displayName = strategy.getDescriptor().getDisplayName(); if (strategy.isApplicable(job)) { try { diff --git a/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java b/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java index 7ddea84c4241..6d2c58b44774 100644 --- a/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java +++ b/core/src/main/java/jenkins/model/GlobalBuildDiscarderListener.java @@ -35,7 +35,7 @@ import org.kohsuke.accmod.restrictions.NoExternalUse; /** - * Run background build discarders on an individual job once a build is finalized + * Run build discarders on an individual job once a build is finalized */ @Extension @Restricted(NoExternalUse.class) @@ -46,6 +46,15 @@ public class GlobalBuildDiscarderListener extends RunListener { @Override public void onFinalized(Run run) { Job job = run.getParent(); - BackgroundGlobalBuildDiscarder.processJob(new LogTaskListener(LOGGER, Level.FINE), job); + try { + // Job-level build discarder execution is unconditional. + job.logRotate(); + } catch (Exception e) { + LOGGER.log(Level.WARNING, e, () -> "Failed to rotate log for " + run); + } + // Avoid calling Job.logRotate twice in case JobGlobalBuildDiscarderStrategy is configured globally. + BackgroundGlobalBuildDiscarder.processJob(new LogTaskListener(LOGGER, Level.FINE), job, + GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().stream() + .filter(s -> !(s instanceof JobGlobalBuildDiscarderStrategy))); } } diff --git a/core/src/main/resources/hudson/model/Run/delete.jelly b/core/src/main/resources/hudson/model/Run/delete.jelly index 83e3cbd77e71..7443203f2650 100644 --- a/core/src/main/resources/hudson/model/Run/delete.jelly +++ b/core/src/main/resources/hudson/model/Run/delete.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + diff --git a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java index dfac64fc1b5a..5e2e917e9808 100644 --- a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java +++ b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java @@ -32,21 +32,18 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertNotNull; -import static org.junit.Assume.assumeFalse; -import hudson.Functions; import hudson.model.ExecutorTest; import hudson.model.FreeStyleProject; import hudson.model.Item; import hudson.model.Run; import hudson.model.labels.LabelAtom; import hudson.tasks.Shell; -import java.io.IOException; import jenkins.model.Jenkins; -import org.junit.AssumptionViolatedException; import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; /** @@ -139,8 +136,8 @@ public class DeleteBuildsCommandTest { assertThat(result.stdout(), containsString("Deleted 0 builds")); } - @Test public void deleteBuildsShouldSuccessEvenTheBuildIsRunning() throws Exception { - assumeFalse("You can't delete files that are in use on Windows", Functions.isWindows()); + @Issue("JENKINS-73835") + @Test public void deleteBuildsShouldFailIfTheBuildIsRunning() throws Exception { FreeStyleProject project = j.createFreeStyleProject("aProject"); ExecutorTest.startBlockingBuild(project); assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(1)); @@ -148,15 +145,9 @@ public class DeleteBuildsCommandTest { final CLICommandInvoker.Result result = command .authorizedTo(Jenkins.READ, Item.READ, Run.DELETE) .invokeWithArgs("aProject", "1"); - assertThat(result, succeeded()); - assertThat(result.stdout(), containsString("Deleted 1 builds")); - assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(0)); - assertThat(project.isBuilding(), equalTo(false)); - try { - project.delete(); - } catch (IOException | InterruptedException x) { - throw new AssumptionViolatedException("Could not delete test project (race condition?)", x); - } + assertThat(result, failedWith(1)); + assertThat(result, hasNoStandardOutput()); + assertThat(result.stderr(), containsString("Unable to delete aProject #1 because it is still running")); } @Test public void deleteBuildsShouldSuccessEvenTheBuildIsStuckInTheQueue() throws Exception { diff --git a/test/src/test/java/hudson/model/RunTest.java b/test/src/test/java/hudson/model/RunTest.java index 34be1f14c2ef..4df895309abb 100644 --- a/test/src/test/java/hudson/model/RunTest.java +++ b/test/src/test/java/hudson/model/RunTest.java @@ -30,6 +30,7 @@ import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import hudson.ExtensionList; @@ -62,6 +63,7 @@ import org.junit.experimental.categories.Category; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.SleepBuilder; import org.jvnet.hudson.test.SmokeTest; import org.jvnet.hudson.test.TestExtension; import org.kohsuke.stapler.DataBoundConstructor; @@ -128,6 +130,18 @@ public void onDeleted(Saveable o, XmlFile file) { } } + @Issue("JENKINS-73835") + @Test public void buildsMayNotBeDeletedWhileRunning() throws Exception { + var p = j.createFreeStyleProject(); + p.getBuildersList().add(new SleepBuilder(999999)); + var b = p.scheduleBuild2(0).waitForStart(); + var ex = assertThrows(IOException.class, () -> b.delete()); + assertThat(ex.getMessage(), containsString("Unable to delete " + b + " because it is still running")); + b.getExecutor().interrupt(); + j.waitForCompletion(b); + b.delete(); // Works fine. + } + @Issue("SECURITY-1902") @Test public void preventXssInBadgeTooltip() throws Exception { j.jenkins.setQuietPeriod(0); diff --git a/test/src/test/java/hudson/tasks/LogRotatorTest.java b/test/src/test/java/hudson/tasks/LogRotatorTest.java index b72e837dbd86..118a860147a1 100644 --- a/test/src/test/java/hudson/tasks/LogRotatorTest.java +++ b/test/src/test/java/hudson/tasks/LogRotatorTest.java @@ -50,8 +50,10 @@ import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; +import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.FailureBuilder; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; @@ -62,6 +64,9 @@ */ public class LogRotatorTest { + @ClassRule + public static BuildWatcher watcher = new BuildWatcher(); + @Rule public JenkinsRule j = new JenkinsRule(); @@ -96,6 +101,17 @@ public void successVsFailureWithRemoveLastBuild() throws Exception { assertEquals(2, numberOf(project.getLastFailedBuild())); } + @Test + public void ableToDeleteCurrentBuild() throws Exception { + var p = j.createFreeStyleProject(); + // Keep 0 builds, i.e. immediately delete builds as they complete. + LogRotator logRotator = new LogRotator(-1, 0, -1, -1); + logRotator.setRemoveLastBuild(true); + p.setBuildDiscarder(logRotator); + j.buildAndAssertStatus(Result.SUCCESS, p); + assertNull(p.getBuildByNumber(1)); + } + @Test @Issue("JENKINS-2417") public void stableVsUnstable() throws Exception { From 829be14884ec3af76ee9c28b5670856e2829476a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 06:06:31 -0600 Subject: [PATCH 073/160] Fill in since annotations (#9849) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/ComputerSet.java | 2 +- .../main/java/hudson/model/listeners/SaveableListener.java | 4 ++-- core/src/main/java/hudson/security/AuthorizationStrategy.java | 2 +- core/src/main/java/jenkins/model/IComputer.java | 2 +- core/src/main/java/jenkins/model/IDisplayExecutor.java | 2 +- core/src/main/java/jenkins/model/IExecutor.java | 2 +- .../main/java/jenkins/model/ModelObjectWithContextMenu.java | 4 ++-- core/src/main/java/jenkins/model/queue/ITask.java | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index f8e4905b0904..fcc0aa4e41e7 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -118,7 +118,7 @@ public static List get_monitors() { * @deprecated Use {@link #getComputers()} instead. * @return All {@link Computer} instances managed by this set. */ - @Deprecated(since = "TODO") + @Deprecated(since = "2.480") public Computer[] get_all() { return getComputers().stream().filter(Computer.class::isInstance).toArray(Computer[]::new); } diff --git a/core/src/main/java/hudson/model/listeners/SaveableListener.java b/core/src/main/java/hudson/model/listeners/SaveableListener.java index 02747877e76f..14877d080bf5 100644 --- a/core/src/main/java/hudson/model/listeners/SaveableListener.java +++ b/core/src/main/java/hudson/model/listeners/SaveableListener.java @@ -60,7 +60,7 @@ public void onChange(Saveable o, XmlFile file) {} * The saveable object. * @param file * The {@link XmlFile} for this saveable object. - * @since TODO + * @since 2.480 */ public void onDeleted(Saveable o, XmlFile file) {} @@ -92,7 +92,7 @@ public static void fireOnChange(Saveable o, XmlFile file) { /** * Fires the {@link #onDeleted} event. - * @since TODO + * @since 2.480 */ public static void fireOnDeleted(Saveable o, XmlFile file) { Listeners.notify(SaveableListener.class, false, l -> l.onDeleted(o, file)); diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index 08fa10fe9897..5ca218f6a8fd 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -162,7 +162,7 @@ public abstract class AuthorizationStrategy extends AbstractDescribableImpl Date: Sat, 12 Oct 2024 08:06:47 -0400 Subject: [PATCH 074/160] Correctly iterate `IComputer`s from `ComputerSet/index.jelly` (#9852) --- core/src/main/resources/hudson/model/ComputerSet/index.jelly | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index 1b3c9aa1ea02..c96346ac4949 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -73,7 +73,7 @@ THE SOFTWARE. - +
From 4622a85d170b2a5a3b681ba0a6f7dcce6a9195b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 06:07:46 -0600 Subject: [PATCH 075/160] Update dependency globals to v15.11.0 (#9856) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6e01d39f94bf..bee799d33b55 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "eslint": "9.12.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", - "globals": "15.10.0", + "globals": "15.11.0", "handlebars-loader": "1.7.3", "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", diff --git a/yarn.lock b/yarn.lock index 1c9ced4c8b74..c2f3678b1cc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3999,10 +3999,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.10.0": - version: 15.10.0 - resolution: "globals@npm:15.10.0" - checksum: 10c0/fef8f320e88f01f1492fef1b04b056908e1f6726eeaffe3bca03247237300c2d86e71585ee641b62ba71460a6eaff0d6ca7fca284e61bd1b3f833c7ad68b160a +"globals@npm:15.11.0": + version: 15.11.0 + resolution: "globals@npm:15.11.0" + checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c languageName: node linkType: hard @@ -4418,7 +4418,7 @@ __metadata: eslint: "npm:9.12.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" - globals: "npm:15.10.0" + globals: "npm:15.11.0" handlebars: "npm:4.7.8" handlebars-loader: "npm:1.7.3" hotkeys-js: "npm:3.12.2" From d0d0cc88c765a25cee7e5214582b9db1b2253949 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sat, 12 Oct 2024 08:59:27 -0700 Subject: [PATCH 076/160] Winstone 8.2: Upgrade Jetty from 12.0.13 to Jetty 12.0.14 (#9841) --- pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0ae24f547d80..1a472b3fd02a 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ THE SOFTWARE. 1.30 false - 8.1 + 8.2 20.18.0 diff --git a/war/pom.xml b/war/pom.xml index 6511cded90fc..770d20d1047c 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -645,7 +645,7 @@ THE SOFTWARE. org.eclipse.jetty.ee9 jetty-ee9-maven-plugin - 12.0.13 + 12.0.14 org.jenkins-ci.plugins matrix-project - 839.vff91cd7e3a_b_2 + 840.v812f627cb_578 hpi From fbad19eecfe271bfa58f62e9374c4ea52228884c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 15:59:06 -0700 Subject: [PATCH 079/160] Update dependency org.jenkins-ci.plugins:mailer to v489 (#9860) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index be6d2c5175b6..c36a43f5b255 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -236,7 +236,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 488.v0c9639c1a_eb_3 + 489.vd4b_25144138f test diff --git a/war/pom.xml b/war/pom.xml index 98da6bb33c6a..27fd0307aead 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -279,7 +279,7 @@ THE SOFTWARE. org.jenkins-ci.plugins mailer - 488.v0c9639c1a_eb_3 + 489.vd4b_25144138f hpi From 2cbbfe784e5e9933c81553faa9d57820b9de240c Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sun, 13 Oct 2024 03:34:59 -0700 Subject: [PATCH 080/160] Add tests for empty directory in tar and zip archives (#9809) --- .../java/hudson/util/io/TarArchiverTest.java | 30 ++++++++++++++++++ .../java/hudson/util/io/ZipArchiverTest.java | 31 +++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/core/src/test/java/hudson/util/io/TarArchiverTest.java b/core/src/test/java/hudson/util/io/TarArchiverTest.java index c0f41981c27f..2d7d9b5524cd 100644 --- a/core/src/test/java/hudson/util/io/TarArchiverTest.java +++ b/core/src/test/java/hudson/util/io/TarArchiverTest.java @@ -36,9 +36,17 @@ import hudson.util.StreamTaskListener; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.apache.tools.tar.TarEntry; +import org.apache.tools.tar.TarInputStream; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -121,6 +129,28 @@ private static void run(FilePath dir, String... cmds) throws InterruptedExceptio } } + @Ignore("TODO fails to add empty directories to archive") + @Issue("JENKINS-73837") + @Test + public void emptyDirectory() throws Exception { + Path tar = tmp.newFile("test.tar").toPath(); + Path root = tmp.newFolder().toPath(); + Files.createDirectory(root.resolve("foo")); + Files.createDirectory(root.resolve("bar")); + Files.writeString(root.resolve("bar/file.txt"), "foobar", StandardCharsets.UTF_8); + try (OutputStream out = Files.newOutputStream(tar)) { + new FilePath(root.toFile()).tar(out, "**"); + } + Set names = new HashSet<>(); + try (InputStream is = Files.newInputStream(tar); + TarInputStream tis = new TarInputStream(is, StandardCharsets.UTF_8.name())) { + TarEntry te; + while ((te = tis.getNextEntry()) != null) { + names.add(te.getName()); + } + } + assertEquals(Set.of("foo/", "bar/", "bar/file.txt"), names); + } /** * Test backing up an open file diff --git a/core/src/test/java/hudson/util/io/ZipArchiverTest.java b/core/src/test/java/hudson/util/io/ZipArchiverTest.java index 2daea14a2a17..a54fad193ecf 100644 --- a/core/src/test/java/hudson/util/io/ZipArchiverTest.java +++ b/core/src/test/java/hudson/util/io/ZipArchiverTest.java @@ -2,13 +2,21 @@ import static org.junit.Assert.assertEquals; +import hudson.FilePath; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.io.RandomAccessFile; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import java.util.zip.ZipInputStream; import org.junit.Assume; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -72,4 +80,27 @@ public void huge64bitFile() throws IOException { assertEquals(length, zipEntry.getSize()); } } + + @Ignore("TODO fails to add empty directories to archive") + @Issue("JENKINS-49296") + @Test + public void emptyDirectory() throws Exception { + Path zip = tmp.newFile("test.zip").toPath(); + Path root = tmp.newFolder().toPath(); + Files.createDirectory(root.resolve("foo")); + Files.createDirectory(root.resolve("bar")); + Files.writeString(root.resolve("bar/file.txt"), "foobar", StandardCharsets.UTF_8); + try (OutputStream out = Files.newOutputStream(zip)) { + new FilePath(root.toFile()).zip(out, "**"); + } + Set names = new HashSet<>(); + try (InputStream is = Files.newInputStream(zip); + ZipInputStream zis = new ZipInputStream(is, StandardCharsets.UTF_8)) { + ZipEntry ze; + while ((ze = zis.getNextEntry()) != null) { + names.add(ze.getName()); + } + } + assertEquals(Set.of("foo/", "bar/", "bar/file.txt"), names); + } } From 7b8de1eed66e5db3136a9451d04a729ab888b340 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:34 +0100 Subject: [PATCH 081/160] Update dependency org.jenkins-ci.plugins:display-url-api to v2.209.v582ed814ff2f (#9859) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index c36a43f5b255..6bf29cc3138d 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -106,7 +106,7 @@ THE SOFTWARE. org.jenkins-ci.plugins display-url-api - 2.204.vf6fddd8a_8b_e9 + 2.209.v582ed814ff2f diff --git a/war/pom.xml b/war/pom.xml index 27fd0307aead..b5cb11d590e5 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -272,7 +272,7 @@ THE SOFTWARE. org.jenkins-ci.plugins display-url-api - 2.204.vf6fddd8a_8b_e9 + 2.209.v582ed814ff2f hpi From b760de102d3ea855d5da11a8e32cb9f8275ce9b5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:41 +0100 Subject: [PATCH 082/160] Update dependency postcss-preset-env to v10.0.7 (#9864) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 392 ++++++++++++++++++++++++++------------------------- 2 files changed, 202 insertions(+), 192 deletions(-) diff --git a/package.json b/package.json index 1e9ae7d9161e..227a2af99afc 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.6", + "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.79.4", diff --git a/yarn.lock b/yarn.lock index c2f3678b1cc0..c6411d260d5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1340,13 +1340,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/cascade-layer-name-parser@npm:2.0.1" +"@csstools/cascade-layer-name-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/e1f9030285d1a16ca0424018289e5288e58dee2d6f6cc392e27d9e8eca0deeea4ced9b749eef09a8322746cb15b6304bc7e2d04bb9dc7405c29b3717ec80e736 + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/2cc840445328400bb3e1e4186e6081e6519a23d9abde36a16c95892b6ad75155b3af3410d79fdda1c53a068384f970cabff4b5f5ba6867578168cbd3419016c8 languageName: node linkType: hard @@ -1357,42 +1357,42 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/css-calc@npm:2.0.1" +"@csstools/css-calc@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/css-calc@npm:2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/84c0ba3dac51466c9ac22c3540360f6058cf351a3676d71d4412584b165a91abc7c69a4ddf5a5dacc6e6082806d2317cf50ddbc0a0562275b2aedaee41cb87a9 + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/b36e655b4abc8ea39b300725e33cd43b1875d759dd60bee8155bf7841065615a7f24cf53199382e30aa10bb137f64021043e4af7e11b7199b674a6e6cf3ccd01 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/css-color-parser@npm:3.0.2" +"@csstools/css-color-parser@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-color-parser@npm:3.0.3" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.1" + "@csstools/css-calc": "npm:^2.0.2" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/31f42cc22426c937f5c6999889f72b40aec8504189a6badf3319552f27a5af73dd5f46be9ebc54eb87e526468eb2546ffbd60a6879fe599efa6c98e51d6cfa3d + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/02367ffc222254132c47f9cbc856f65fe0b81ee4a5e7381251b95c4064138b5ed99a5e5a79c0c8689f9e75e3d900f94773258a161a97f467c3f0420838c10e04 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/css-parser-algorithms@npm:3.0.1" +"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/css-parser-algorithms@npm:3.0.2" peerDependencies: - "@csstools/css-tokenizer": ^3.0.1 - checksum: 10c0/064c6d519197b5af43bbf5efe8f4cdbd361b006113aa82160d637e925b50c643a52d33d512ca01c63042d952d723a2a10798231a714668356b76668fb11294e3 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/246afbf518ee9eaa24ed7f083360eb66884f1172fd4f8c663bff8c6099de2a8abd1e2a31d5b6fe42e010277d238469d780cff62bc7fdc6a52e7a90626b8924dc languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/css-tokenizer@npm:3.0.1" - checksum: 10c0/c9ed4373e5731b5375ea9791590081019c04e95f08b46b272977e5e7b8c3d560affc62e82263cb8def1df1e57f0673140e7e16a14a5e7be04e6a234be088d1d3 +"@csstools/css-tokenizer@npm:^3.0.1, @csstools/css-tokenizer@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/css-tokenizer@npm:3.0.2" + checksum: 10c0/a74e5829420ed35982fd33be272c2a19cb2380179d357abe750aa848be6d6699d0437008f47a57eb7c6ff64a34b0c8f91a97dd63dbddd08249b7cf7983767e5e languageName: node linkType: hard @@ -1406,6 +1406,16 @@ __metadata: languageName: node linkType: hard +"@csstools/media-query-list-parser@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/media-query-list-parser@npm:4.0.0" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-tokenizer": ^3.0.2 + checksum: 10c0/416417bcfd84c18a2df8dc77f31c87830e151dc20530fe7f0d8f13a0848b1a9090858abdf7792d82bf2edb41ddedb7b57b34eb78b68b5c10755ae02c019e496a + languageName: node + linkType: hard + "@csstools/postcss-cascade-layers@npm:^5.0.0": version: 5.0.0 resolution: "@csstools/postcss-cascade-layers@npm:5.0.0" @@ -1418,60 +1428,60 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-color-function@npm:4.0.2" +"@csstools/postcss-color-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-color-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c987ccc7ab326668895396d3fe69c05087cf6e245be6f70e8c33da0cdeb56f8ac3d117cfad984191ec57be9691ab56d427aaa28c61c4a7446521972993dd5039 + checksum: 10c0/c994660ca0e2652755d9ad181c8cb46a07220c972086c97c843fa9bacf690be10c642770f898aeec4acc47c2b718dfc7372107285a678361f34d84d9e9c11e0c languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.2" +"@csstools/postcss-color-mix-function@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/cfdc641f504f9d02b9a7b53d6bd933d4e767ecaee5f3d2df45d897f69b8a38b5b79b538d307b16fb56dcb7c19dc7e107518c356772e89771e28e04fd846d9035 + checksum: 10c0/4ba358eb9030fc485bfe2922d897eeb712725762cc399eaba60ba665c84dc3e56a4d5a52dfb320093c0b217d32fedb9b5197fa45738cade53d9afcbefdadf04f languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-content-alt-text@npm:2.0.1" +"@csstools/postcss-content-alt-text@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.2" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/693e4cfa9a30a9c384120bd24846a7cd5ba1e1ebf975eb81b0e0131a21ac28a0301c7dcfa13706bc7d8b5343536fb43a46de636c3257d0fd05041c7255366e87 + checksum: 10c0/e52d40f6567b9b23b32a6c40f9b2a74d57f99a9921b4cae015f51f72453474236c760bb13120682f8815698a615e0ad7bed22314c29dca89c34b5480d83a7a6d languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.1" +"@csstools/postcss-exponential-functions@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/ddcaedfa48cc0cf93611c8d2ed5a75d56c1d196a97015db644b45881adabb47f3255242acaef6ea869a1e5ba66328725d254bf6d29eb5e988cde8b040bc5f55d + checksum: 10c0/034ff89089872f63a6b00bda670c5ff11361babd221ed3e441dde969a718059e5d44ab0ed331868f137bb205331b808ecbcc4cb641d5c945238ebca28aa3ed59 languageName: node linkType: hard @@ -1487,46 +1497,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.2" +"@csstools/postcss-gamut-mapping@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/8b6504f81c5036e3c2a9f9516c371f48a283112469b746546c8c7f6f0da2467c915d4dac6dfe8bb05d7dab3a7503911391eb9e666cb7632e09a032e801c029f5 + checksum: 10c0/21f5708f63e9c3b7603f8b72b5f288e0a021e9710a6abf4aaa713ff4d04bae057d1861e1f28d7670ea39ba463ac04f1507876d4a11178934e7cc7a1c6a780084 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.2": - version: 5.0.2 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.2" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.3": + version: 5.0.3 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/4fa27437ad9861b1457c28228f2503c17bcc2f77dcb38da1314a4a5d38fd010e7e5d11b5f9d69e0a2cb2999bbfeca1e99ce2f59422bda5b382658dcb03f7326e + checksum: 10c0/062d27148438309c940a1973bfc7d42a06caa9397bf2382c7a61979f5be3d6f3fae1bc8ddf94d2dd8e6c807e0530a9e76179510266aaddc439677bf79447a765 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-hwb-function@npm:4.0.2" +"@csstools/postcss-hwb-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-hwb-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/46dc9596e37830de4c38f70764d6da9f2fc7bc339217b4291eced75daa8998c4e05fb743c271701e44818df4ac111c285019b7bb3a728e8b61d86899bbeb74eb + checksum: 10c0/faf2bfbafeec765391e37c7a5cbc7b4647d9ab1ffa51e922c7dfffa545c3d436d15604dfdfb9d7684e760042e62bb42e0243dd4ebd8c3c14694a9f7be4e57b30 languageName: node linkType: hard @@ -1564,17 +1574,17 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.4" +"@csstools/postcss-light-dark-function@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.5" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0176422ad9747953964b1ceff002df1ecb1952ebc481db6192070d68777135b582ea6fd32ae819b9c64c96cb9170bd6907c647c85b48daa4984b7ed3d7f9bccb + checksum: 10c0/80635ee312d2a8f42aa5ce6792f1dc4a71199c384c66a3270d37e998d96db55beaa6836d689cda3b7e4828227960582fae04659ba5e4e0f64fd4543cbf15c6ab languageName: node linkType: hard @@ -1616,42 +1626,42 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-logical-viewport-units@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.1" +"@csstools/postcss-logical-viewport-units@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/postcss-logical-viewport-units@npm:3.0.2" dependencies: - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f54f91ec4d308562371576e82131c3cc1ff461a951c9a38f0b42b783c26f37a93cc846fcd025d3c4a8437b55a4fff1192ebfac8ccf84abb6478b2c515d232552 + checksum: 10c0/31f525e774bc053f545a159eb53bb21465ea2930118e87c40207ad90fa97d3151e6de83efd02f84803fb0e93ed4a4b42a3904b734423410e73ac4c6ce9666ab4 languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.1": - version: 2.0.1 - resolution: "@csstools/postcss-media-minmax@npm:2.0.1" +"@csstools/postcss-media-minmax@npm:^2.0.2": + version: 2.0.2 + resolution: "@csstools/postcss-media-minmax@npm:2.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/23c1fb0c3ed8bf82f3223f161d0d65ba62045b917bc19624581f64aaa5d678485d22c23af2591a3f634ba02030ccb419c2b30209aa22f9fd2baa1a6474af810a + checksum: 10c0/83cf10742884fca3baa7ae26e2cb34123ce5a022622390566c139b4587ea8583fab00acbb85545786b36398e2201d2a94301e0fae805e55f375f1b5c38f67ce8 languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.1" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.2" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e491cb149fb4fff85b2f03191511e43654ae00716e3c1ea9f1dc22ec4e7042c35f034d372082a69d3621c86cafbe46e8f419872fa36f4a534f145f584d655768 + checksum: 10c0/3ac4073d2e958bfb24ae45f673070dd805f0fcf07bc8d00a9a98f596d1096e7be282c8d8e87df3abde90f33fcbe2c7705e972b8c1a58e43ec44729f470b76096 languageName: node linkType: hard @@ -1678,18 +1688,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-oklab-function@npm:4.0.2" +"@csstools/postcss-oklab-function@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-oklab-function@npm:4.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3209a7cec6d3577544a7ef41f2d5cca25f77891d4ec0d7f39d32f9a79a6c9a9b0ee6b54b2937a2d995548ad11c39966b07d4b9f58e907ffbe1a4b454f2d277f3 + checksum: 10c0/650bcb4f664308972588a8f789f806d63c4069e2e008cfc3b5c80bf9df992c62972dce279b8f434c7f78823e97095942ee4f0e37bc549258887213e72acb7ef8 languageName: node linkType: hard @@ -1704,18 +1714,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.2" +"@csstools/postcss-relative-color-syntax@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/34a8c999e08c6e7833484ee2fb91e7fcc25235d6c361712fed581e44a5a29f1ceb95415b6f4260de53809ac13f5da5415d1905c2971477cf5d45e5196081c663 + checksum: 10c0/c241fe6b725d775f6d2085be1dff3868d189b176fa91ab1eb1133e30e30c8151bded4e50d17a845edd0bdd0a7adf9e8883cb2634fea3394872591fe9ad2a7e86 languageName: node linkType: hard @@ -1730,16 +1740,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.1" +"@csstools/postcss-stepped-value-functions@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/7e65969b124fce603675ca17c2ffa2bb456677866e54bc9fbdc4da0945be1593fde2abb0730d3d03190776ad2022b394a1f9d4834c5b1f4c7ec497929fd35f8f + checksum: 10c0/444a27d725bc7a8e1554469e8ac69e248ff525b728fbe058523b0f1aefcff80ca707f543d21fead0a22d51603b1669190fb01f0f2dcd599a01768a37e0d62bc3 languageName: node linkType: hard @@ -1755,16 +1765,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.1": - version: 4.0.1 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.1" +"@csstools/postcss-trigonometric-functions@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.2" dependencies: - "@csstools/css-calc": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/59e017ebb9f4f8f027e134024e3322b5e202cc96073e0bb0d45733a829c8eadc7f4f7ce57ce8360a748a677595af9ea95da1779684699b48b911b73b4017ac8b + checksum: 10c0/eaecb2ea891162e4fcbbccf4f660c99e9e59f21937b70fe6aec3b51441eff2a12c1a2dc13fff426722629a7929919fd866311eaa68d74ee9d1f5387a23502fe2 languageName: node linkType: hard @@ -4427,7 +4437,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.6" + postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.79.4" @@ -5365,18 +5375,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-color-functional-notation@npm:7.0.2" +"postcss-color-functional-notation@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-color-functional-notation@npm:7.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e89c0bff94558b0c978ac36f7e02f7f516291f90fd43169d39c63ad2bb0415e3b1c4b3c2469280d578727e850fdf15a557230cb28275f3f0676f0f73187f2867 + checksum: 10c0/5e04c81002512c960784043c096bc91ebc76b8fddb9259a2418b0e121eb65042944cc0f78946f6b7e5774ff1fee087849019655e4848af1f88879e3ab9ff7c17 languageName: node linkType: hard @@ -5430,46 +5440,46 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.2": - version: 11.0.2 - resolution: "postcss-custom-media@npm:11.0.2" +"postcss-custom-media@npm:^11.0.3": + version: 11.0.3 + resolution: "postcss-custom-media@npm:11.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" - "@csstools/media-query-list-parser": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" + "@csstools/media-query-list-parser": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/7bec2b1e0b5d786c33c5715b611ffc8b9737252ee6bf77ca59255ac16f91ce614406923f43250e5c88b04f1bb050f155dc5ed4d9350dbd704c45fbd72e5a9a04 + checksum: 10c0/bd3f0cf17d7422385d26afed510dc2acebb1d8c25fce13e2bbee1c49cdc7fe95ebe7f50b89ef0a88ebdd5f6826e89d99e26b905881ceff788df655670dba93d8 languageName: node linkType: hard -"postcss-custom-properties@npm:^14.0.1": - version: 14.0.1 - resolution: "postcss-custom-properties@npm:14.0.1" +"postcss-custom-properties@npm:^14.0.2": + version: 14.0.2 + resolution: "postcss-custom-properties@npm:14.0.2" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/12180a7f4a4fe2d528387346a1810b82ed870081756dcf6be226c839716ab3f6f4d6ca4c7208a07d7d84bf2c986beef6473e29964e7c2572066fca5d3b000ed5 + checksum: 10c0/ea2e0cb60c558bb1afb4e601dcc64a38e1b28e5df3e47b83b858fc12d909d0e3453013e6b368fc05a7db7098ffcdc702a30a92f1a3c0ef67dfb97bf089021f1a languageName: node linkType: hard -"postcss-custom-selectors@npm:^8.0.1": - version: 8.0.1 - resolution: "postcss-custom-selectors@npm:8.0.1" +"postcss-custom-selectors@npm:^8.0.2": + version: 8.0.2 + resolution: "postcss-custom-selectors@npm:8.0.2" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.1" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/cascade-layer-name-parser": "npm:^2.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" postcss-selector-parser: "npm:^6.1.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b867233b3d68fbab90afca8a776eb74196ebc3fac8988175d95118a47993c793138fec6cc580272bb35d9bd31086acbdd33ff86da0cab83ef2f08bfc1c23ecd6 + checksum: 10c0/81673ffb0874f63c0f5e14315a5808259ec80ae8452aaf10d28112d30a9aaabbf61d13edb02f8be2965f44b943968c7eda051a1693da436ef157e77fcff0d752 languageName: node linkType: hard @@ -5587,18 +5597,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-lab-function@npm:7.0.2" +"postcss-lab-function@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-lab-function@npm:7.0.3" dependencies: - "@csstools/css-color-parser": "npm:^3.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.1" - "@csstools/css-tokenizer": "npm:^3.0.1" + "@csstools/css-color-parser": "npm:^3.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6b2be7e762b4ccb58ea9051723d390f6732ad78bb30bfef9499139cf5e2ac160c3de31b2b005fcc30e9fced4abe1685df6cb76c99d548896bae6746105ac8520 + checksum: 10c0/c50a73a9ed54b4194998c4627599d1f42074235f572edbbcdb0e00717f3ae2121dc8378d917792b281860c5650a617d923823da6f395515f610b5760d115354d languageName: node linkType: hard @@ -5915,39 +5925,39 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.6": - version: 10.0.6 - resolution: "postcss-preset-env@npm:10.0.6" +"postcss-preset-env@npm:10.0.7": + version: 10.0.7 + resolution: "postcss-preset-env@npm:10.0.7" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.0" - "@csstools/postcss-color-function": "npm:^4.0.2" - "@csstools/postcss-color-mix-function": "npm:^3.0.2" - "@csstools/postcss-content-alt-text": "npm:^2.0.1" - "@csstools/postcss-exponential-functions": "npm:^2.0.1" + "@csstools/postcss-color-function": "npm:^4.0.3" + "@csstools/postcss-color-mix-function": "npm:^3.0.3" + "@csstools/postcss-content-alt-text": "npm:^2.0.2" + "@csstools/postcss-exponential-functions": "npm:^2.0.2" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.2" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.2" - "@csstools/postcss-hwb-function": "npm:^4.0.2" + "@csstools/postcss-gamut-mapping": "npm:^2.0.3" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.3" + "@csstools/postcss-hwb-function": "npm:^4.0.3" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.4" + "@csstools/postcss-light-dark-function": "npm:^2.0.5" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" - "@csstools/postcss-logical-viewport-units": "npm:^3.0.1" - "@csstools/postcss-media-minmax": "npm:^2.0.1" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.1" + "@csstools/postcss-logical-viewport-units": "npm:^3.0.2" + "@csstools/postcss-media-minmax": "npm:^2.0.2" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.2" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.2" + "@csstools/postcss-oklab-function": "npm:^4.0.3" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.2" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.3" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.1" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.2" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.1" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.2" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" @@ -5957,12 +5967,12 @@ __metadata: cssdb: "npm:^8.1.1" postcss-attribute-case-insensitive: "npm:^7.0.0" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.2" + postcss-color-functional-notation: "npm:^7.0.3" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.2" - postcss-custom-properties: "npm:^14.0.1" - postcss-custom-selectors: "npm:^8.0.1" + postcss-custom-media: "npm:^11.0.3" + postcss-custom-properties: "npm:^14.0.2" + postcss-custom-selectors: "npm:^8.0.2" postcss-dir-pseudo-class: "npm:^9.0.0" postcss-double-position-gradients: "npm:^6.0.0" postcss-focus-visible: "npm:^10.0.0" @@ -5970,7 +5980,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.2" + postcss-lab-function: "npm:^7.0.3" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.0" postcss-opacity-percentage: "npm:^3.0.0" @@ -5982,7 +5992,7 @@ __metadata: postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/01660acf3b9ddf4d612a31819e9a5de9fe5383e9eddd2c130180f66ae90c5a881eb408e73454fd50e1839eae71678d738bf72073de08f9013c183b0bd9950fe5 + checksum: 10c0/f789000e0504fd827e854bb0feb8b4c218d381314e4d863c5a36df925df412d0844c912952fe27892a320433640aeaff03ee94a3057b42011bf5d32b3963f333 languageName: node linkType: hard From 9e3a75a07701e875e871869452aa8afb4d160e11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:29:47 +0100 Subject: [PATCH 083/160] Update babel monorepo to v7.25.8 (#9863) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 366 ++++++++++++--------------------------------------- 2 files changed, 89 insertions(+), 281 deletions(-) diff --git a/package.json b/package.json index 227a2af99afc..0182b878c742 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.25.7", - "@babel/core": "7.25.7", - "@babel/preset-env": "7.25.7", + "@babel/core": "7.25.8", + "@babel/preset-env": "7.25.8", "@eslint/js": "9.12.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index c6411d260d5e..e0ae45a3a4a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,16 +52,16 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/compat-data@npm:7.25.7" - checksum: 10c0/e5cc915abdd18d021236474a96606b2d4a915c4fb620c1ad776b8a08d91111e788cb3b7e9bad43593d4e0bfa4f06894357bcb0984102de1861b9e7322b6bc9f8 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 languageName: node linkType: hard -"@babel/core@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/core@npm:7.25.7" +"@babel/core@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.25.7" @@ -69,16 +69,16 @@ __metadata: "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-module-transforms": "npm:^7.25.7" "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" "@babel/template": "npm:^7.25.7" "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" 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: 10c0/dad20af39624086afc3a0910bd97ae712c9ad0e9dda09fc5da93876e8ea1802b63ddd81c44f4aa8a9834db46de801eaab1ce9b81ab54b4fe907ae052c24de136 + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 languageName: node linkType: hard @@ -214,7 +214,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-plugin-utils@npm:7.25.7" checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf @@ -321,14 +321,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/parser@npm:7.25.7" +"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" bin: parser: ./bin/babel-parser.js - checksum: 10c0/b771469bb6b636c18a8d642b9df3c73913c3860a979591e1a29a98659efd38b81d3e393047b5251fe382d4c82c681c12da9ce91c98d69316d2604d155a214bcf + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 languageName: node linkType: hard @@ -400,61 +400,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5 - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24 - languageName: node - linkType: hard - "@babel/plugin-syntax-import-assertions@npm:^7.25.7": version: 7.25.7 resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" @@ -477,116 +422,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f - languageName: node - linkType: hard - "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -610,17 +445,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-remap-async-to-generator": "npm:^7.25.7" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/traverse": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dcdd17d8cafafe0eb2edd0a46a7abe86c72235c957c8eb1157ccadb2b199572d5d1aa36a2d3bce5cb99990f7d3c6290ecf09959c62f3081c4df9ff717a1c84a4 + checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 languageName: node linkType: hard @@ -671,16 +505,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.25.7" +"@babel/plugin-transform-class-static-block@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" dependencies: "@babel/helper-create-class-features-plugin": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/cbb4b46cbd8ad10106eb2bedb5a0665661a1d1d5b6f3ab565ff454b802dab4718e02b25670fe0d40835494aedb3dc26757c06cc4da6ff3e80291c5f882269bd3 + checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 languageName: node linkType: hard @@ -758,15 +591,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.7" +"@babel/plugin-transform-dynamic-import@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c733252ff20a32d9747dd081916270f5a073856597e849a5f458b12f4354499b18714f5e7049e341432851d9975077cb37effcd276c7f816faa6f5ff708dc5e1 + checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 languageName: node linkType: hard @@ -782,15 +614,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.7" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ef61fc5d54c9c8b075cbd9db62beaf295e38e08a1edb1882995105d3e959763be1631f7d7f7cb7461b702ebd0b4a601f2eb2cd6521acaf061310a3a3305fa756 + checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 languageName: node linkType: hard @@ -819,15 +650,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.7" +"@babel/plugin-transform-json-strings@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/aa6e5f65c8a5f2459d7daa9b5b4ff97ff43bab21f4a8513ed84d35300b0323ec542dc101c5f11622e442dfc93b3a229c7f41ebc7645370dfec6d066bda800a0b + checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf languageName: node linkType: hard @@ -842,15 +672,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.7" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d610a8a2c1be83e03cce2256f29519e705dc68289c09d67f1f362d1fd80f4b36eaf2affc05710abb53a272895041e24d9e95ec73a516a23a67cb907023fbe37b + checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e languageName: node linkType: hard @@ -939,41 +768,38 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.7" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b35a96a79ef4895b00e4f758d3185cb17e4fbfada311894ad5f0988a55fc2c21820dc789b26a3cb8fbd620434faa516e52acb6e2da105c2edbd29de8b6b0facf + checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.7" +"@babel/plugin-transform-numeric-separator@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c028ae89e6b4e1d757f8f1ebcb3b420e6559bb35002728f6f5651d5f669fbf73764adf6e3597908fa12adf8dbae683e5f74b3a7f68e8774a9663c18c0f999539 + checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.7" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" dependencies: "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" "@babel/plugin-transform-parameters": "npm:^7.25.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e8b978d9d1020452da0d5d92f80fe57e302761dac20137bb8bf863478a4779fcd63d314db89e796125d9d76da2a38f64f012d6e0c4913815951b3eb3fba2feb6 + checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 languageName: node linkType: hard @@ -989,28 +815,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.7" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bb609e5103780be0825a255ffe1fefbb5335aead88a46eecc2257053279ea2c45ff66b0ef1fb54302c8c8c57146e88e52f3ecb62b4c6f619218d7b3843b352d9 + checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.7" +"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" dependencies: "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/887441ada6c2bc1b789984b7531d9bc585f335ece99642886d3d9fd8aee7e6b8d4f7ca61d76b5f23477f3aa607284d5056eadaa1eb17e7b39af6b0e834cbe878 + checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f languageName: node linkType: hard @@ -1037,17 +861,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.7" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.25.7" "@babel/helper-create-class-features-plugin": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5ad8832ba54e2079c1f558b8680e170265e3f376424e5fbb75b17b7f08696fb0af6c96d23d92f7df3dcc559f5971a02587281fcec38a853174aa95478565f5fc + checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 languageName: node linkType: hard @@ -1188,11 +1011,11 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/preset-env@npm:7.25.7" +"@babel/preset-env@npm:7.25.8": + version: 7.25.8 + resolution: "@babel/preset-env@npm:7.25.8" dependencies: - "@babel/compat-data": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.8" "@babel/helper-compilation-targets": "npm:^7.25.7" "@babel/helper-plugin-utils": "npm:^7.25.7" "@babel/helper-validator-option": "npm:^7.25.7" @@ -1202,45 +1025,30 @@ __metadata: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.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" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@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.25.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" "@babel/plugin-transform-block-scoping": "npm:^7.25.7" "@babel/plugin-transform-class-properties": "npm:^7.25.7" - "@babel/plugin-transform-class-static-block": "npm:^7.25.7" + "@babel/plugin-transform-class-static-block": "npm:^7.25.8" "@babel/plugin-transform-classes": "npm:^7.25.7" "@babel/plugin-transform-computed-properties": "npm:^7.25.7" "@babel/plugin-transform-destructuring": "npm:^7.25.7" "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-dynamic-import": "npm:^7.25.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.25.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" "@babel/plugin-transform-for-of": "npm:^7.25.7" "@babel/plugin-transform-function-name": "npm:^7.25.7" - "@babel/plugin-transform-json-strings": "npm:^7.25.7" + "@babel/plugin-transform-json-strings": "npm:^7.25.8" "@babel/plugin-transform-literals": "npm:^7.25.7" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" "@babel/plugin-transform-modules-amd": "npm:^7.25.7" "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" @@ -1248,15 +1056,15 @@ __metadata: "@babel/plugin-transform-modules-umd": "npm:^7.25.7" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" "@babel/plugin-transform-new-target": "npm:^7.25.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.25.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" "@babel/plugin-transform-object-super": "npm:^7.25.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" "@babel/plugin-transform-parameters": "npm:^7.25.7" "@babel/plugin-transform-private-methods": "npm:^7.25.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.25.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" "@babel/plugin-transform-property-literals": "npm:^7.25.7" "@babel/plugin-transform-regenerator": "npm:^7.25.7" "@babel/plugin-transform-reserved-words": "npm:^7.25.7" @@ -1277,7 +1085,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bf704a06a69420250c1de2b126cd5c859a851002c2fb2cce0910cd85a8e6755b9b31577021e94feb7e1e53519923726349aaf07580923928791583db61438fb8 + checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 languageName: node linkType: hard @@ -1329,14 +1137,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.4.4": - version: 7.25.7 - resolution: "@babel/types@npm:7.25.7" +"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" dependencies: "@babel/helper-string-parser": "npm:^7.25.7" "@babel/helper-validator-identifier": "npm:^7.25.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/e03e1e2e08600fa1e8eb90632ac9c253dd748176c8d670d85f85b0dc83a0573b26ae748a1cbcb81f401903a3d95f43c3f4f8d516a5ed779929db27de56289633 + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f languageName: node linkType: hard @@ -4418,8 +4226,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.25.7" - "@babel/core": "npm:7.25.7" - "@babel/preset-env": "npm:7.25.7" + "@babel/core": "npm:7.25.8" + "@babel/preset-env": "npm:7.25.8" "@eslint/js": "npm:9.12.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" From c34234f2c5a28f3965f03afce6a0df9298d7da4e Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:09:20 +0100 Subject: [PATCH 084/160] Refine content and appearance of the 'Edit View' screen (#9833) Co-authored-by: Tim Jacomb --- .../ListView/configure-entries-resources.js | 5 +- .../model/ListView/configure-entries.jelly | 72 ++++++++++--------- .../ListView/configure-entries.properties | 3 + .../hudson/model/View/configure.jelly | 39 ++++++---- .../hudson/model/View/configure.properties | 4 ++ .../main/resources/lib/form/checkbox.jelly | 8 +++ src/main/scss/base/_style.scss | 8 --- src/main/scss/pages/_dashboard.scss | 14 ++++ .../webapp/help/view-config/description.html | 6 -- .../help/view-config/description_bg.html | 7 -- .../help/view-config/description_de.html | 7 -- .../help/view-config/description_fr.html | 6 -- .../help/view-config/description_it.html | 7 -- .../help/view-config/description_ja.html | 6 -- .../help/view-config/description_nl.html | 8 --- .../help/view-config/description_pt_BR.html | 6 -- .../help/view-config/description_ru.html | 6 -- .../help/view-config/description_tr.html | 7 -- .../help/view-config/description_zh_TW.html | 5 -- .../help/view-config/filter-executors.html | 27 ------- .../help/view-config/filter-executors_bg.html | 4 -- .../help/view-config/filter-executors_de.html | 27 ------- .../help/view-config/filter-executors_it.html | 27 ------- .../help/view-config/filter-executors_ja.html | 24 ------- .../view-config/filter-executors_pt_BR.html | 27 ------- .../view-config/filter-executors_zh_TW.html | 1 - .../webapp/help/view-config/filter-queue.html | 24 ------- .../help/view-config/filter-queue_bg.html | 4 -- .../help/view-config/filter-queue_de.html | 27 ------- .../help/view-config/filter-queue_it.html | 27 ------- .../help/view-config/filter-queue_ja.html | 24 ------- .../help/view-config/filter-queue_pt_BR.html | 24 ------- .../help/view-config/filter-queue_zh_TW.html | 1 - 33 files changed, 95 insertions(+), 397 deletions(-) create mode 100644 core/src/main/resources/hudson/model/ListView/configure-entries.properties create mode 100644 core/src/main/resources/hudson/model/View/configure.properties delete mode 100644 war/src/main/webapp/help/view-config/description.html delete mode 100644 war/src/main/webapp/help/view-config/description_bg.html delete mode 100644 war/src/main/webapp/help/view-config/description_de.html delete mode 100644 war/src/main/webapp/help/view-config/description_fr.html delete mode 100644 war/src/main/webapp/help/view-config/description_it.html delete mode 100644 war/src/main/webapp/help/view-config/description_ja.html delete mode 100644 war/src/main/webapp/help/view-config/description_nl.html delete mode 100644 war/src/main/webapp/help/view-config/description_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/description_ru.html delete mode 100644 war/src/main/webapp/help/view-config/description_tr.html delete mode 100644 war/src/main/webapp/help/view-config/description_zh_TW.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_bg.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_de.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_it.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_ja.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/filter-executors_zh_TW.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_bg.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_de.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_it.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_ja.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_pt_BR.html delete mode 100644 war/src/main/webapp/help/view-config/filter-queue_zh_TW.html diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js b/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js index 86ccbb6447a7..f9db2d067478 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js +++ b/core/src/main/resources/hudson/model/ListView/configure-entries-resources.js @@ -1,5 +1,8 @@ Behaviour.specify("#recurse", "ListView", 0, function (e) { - var nestedElements = document.querySelectorAll("SPAN.nested"); + // SPAN.nested is kept for backwards compatability + var nestedElements = document.querySelectorAll( + ".listview-jobs--nested, SPAN.nested", + ); e.onclick = function () { nestedElements.forEach(function (el) { el.style.display = e.checked ? "" : "none"; diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly index 5cffab5e11ee..350235870b01 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly @@ -27,49 +27,51 @@ THE SOFTWARE. + + + + - - - - - - - -
- - - - - - + + + + +
+ + + +
- - -
-
-
-
-
+ + - - - + +
+ + + +
-
+ + + + + + +
- + - +
+ + - - - - - - -
diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.properties b/core/src/main/resources/hudson/model/ListView/configure-entries.properties new file mode 100644 index 000000000000..fb58880346b9 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.properties @@ -0,0 +1,3 @@ +jobs.description=Select the jobs to show in this view. +filters.description=Filter the jobs that show in this view based on specific conditions. +columns.description=Select the columns in this view. diff --git a/core/src/main/resources/hudson/model/View/configure.jelly b/core/src/main/resources/hudson/model/View/configure.jelly index beceff8230ab..6f2ff2744fe1 100644 --- a/core/src/main/resources/hudson/model/View/configure.jelly +++ b/core/src/main/resources/hudson/model/View/configure.jelly @@ -29,25 +29,25 @@ THE SOFTWARE. - + + + + + - - - - - - - - - - - - - + + + + + + + + + @@ -55,6 +55,17 @@ THE SOFTWARE. + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/View/configure.properties b/core/src/main/resources/hudson/model/View/configure.properties new file mode 100644 index 000000000000..f5883d65a59e --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure.properties @@ -0,0 +1,4 @@ +description.description=Describe the purpose of this view. +widgets.description=Customize the widgets that show in this view. +widgets.filterqueue.description=If checked, only jobs in this view will be shown in the queue. +widgets.filterexecutors.description=If checked, only those build executors will be shown that could execute the jobs in this view. diff --git a/core/src/main/resources/lib/form/checkbox.jelly b/core/src/main/resources/lib/form/checkbox.jelly index 60c8c11f4c52..de831954cafc 100644 --- a/core/src/main/resources/lib/form/checkbox.jelly +++ b/core/src/main/resources/lib/form/checkbox.jelly @@ -69,6 +69,9 @@ THE SOFTWARE. Used as tooltip of the checkbox, and, if a title is specified, of the title + + Optional description for the checkbox + @@ -87,6 +90,11 @@ THE SOFTWARE. + +
+ ${attrs.description} +
+
${customizedFields.add(name)} diff --git a/src/main/scss/base/_style.scss b/src/main/scss/base/_style.scss index e586248d18a8..273d583d4ca9 100644 --- a/src/main/scss/base/_style.scss +++ b/src/main/scss/base/_style.scss @@ -406,14 +406,6 @@ img.icon-help { vertical-align: text-top; } -/* ============================ list view entries ======================== */ -div.listview-jobs { - max-height: 300px; - overflow: auto; - margin-left: -15px; - padding-left: 15px; -} - /* ============================ health report hover ========================== */ .healthReport a { diff --git a/src/main/scss/pages/_dashboard.scss b/src/main/scss/pages/_dashboard.scss index 3ace60fac309..4d6f49017566 100644 --- a/src/main/scss/pages/_dashboard.scss +++ b/src/main/scss/pages/_dashboard.scss @@ -180,3 +180,17 @@ $min-button-size: 36px; height: 1rem; } } + +div.listview-jobs { + display: flex; + flex-direction: column; + gap: 0.3rem; + + &--nested { + display: flex; + flex-direction: column; + border-left: 2px solid color-mix(in sRGB, var(--input-border), transparent); + margin-left: 10px; + padding-left: 22px; + } +} diff --git a/war/src/main/webapp/help/view-config/description.html b/war/src/main/webapp/help/view-config/description.html deleted file mode 100644 index 116a5d17ed7c..000000000000 --- a/war/src/main/webapp/help/view-config/description.html +++ /dev/null @@ -1,6 +0,0 @@ -
- This message will be displayed on - the view page - . Useful for describing what this view does or linking to relevant resources. - Can contain HTML tags or whatever markup language is defined for the system. -
diff --git a/war/src/main/webapp/help/view-config/description_bg.html b/war/src/main/webapp/help/view-config/description_bg.html deleted file mode 100644 index 2f9a0c920697..000000000000 --- a/war/src/main/webapp/help/view-config/description_bg.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Това съобщение ще се показва на - страницата за изгледа - . Това е удобно да обясните за какво служи изгледа или да дадете подходящи - връзки към полезни ресурси. Може да съдържа форматиране чрез етикети на HTML - или произволен маркиращ език, който се поддържа от Jenkins. -
diff --git a/war/src/main/webapp/help/view-config/description_de.html b/war/src/main/webapp/help/view-config/description_de.html deleted file mode 100644 index 63eecbf510c6..000000000000 --- a/war/src/main/webapp/help/view-config/description_de.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Diese Beschreibung wird auf der - Ansichtsseite - angezeigt. Sie beschreibt, um was es in der Ansicht geht oder enthält Links zu - weiteren relevanten Ressourcen. Die Beschreibung darf HTML-Auszeichnungen - enthalten. -
diff --git a/war/src/main/webapp/help/view-config/description_fr.html b/war/src/main/webapp/help/view-config/description_fr.html deleted file mode 100644 index e2276e50a88c..000000000000 --- a/war/src/main/webapp/help/view-config/description_fr.html +++ /dev/null @@ -1,6 +0,0 @@ -
- Ce message s'affichera sur la - page de visualisation - . Utile pour décrire l'objectif de cette vue ou pour donner des liens vers des - ressources supplémentaires. Supporte les tags HTML. -
diff --git a/war/src/main/webapp/help/view-config/description_it.html b/war/src/main/webapp/help/view-config/description_it.html deleted file mode 100644 index 562324afca80..000000000000 --- a/war/src/main/webapp/help/view-config/description_it.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Questo messaggio sarà visualizzato sulla - pagina della vista - . Quest'opzione è utile per descrivere lo scopo di questa vista o per inserire - collegamenti a risorse rilevanti. Può contenere marcatori HTML o del - linguaggio a marcatori definito per il sistema. -
diff --git a/war/src/main/webapp/help/view-config/description_ja.html b/war/src/main/webapp/help/view-config/description_ja.html deleted file mode 100644 index f45f11ad4084..000000000000 --- a/war/src/main/webapp/help/view-config/description_ja.html +++ /dev/null @@ -1,6 +0,0 @@ -
- この説明は、 - ビュー - に表示されます。 - このビューについて説明したり、関連するリソースにリンクするのに便利です。HTMLタグを使用できます。 -
diff --git a/war/src/main/webapp/help/view-config/description_nl.html b/war/src/main/webapp/help/view-config/description_nl.html deleted file mode 100644 index ebb5e3686899..000000000000 --- a/war/src/main/webapp/help/view-config/description_nl.html +++ /dev/null @@ -1,8 +0,0 @@ -
- Deze boodschap zal getoond worden op - uw specifieke overzichtspagina - . Het kan nuttig zijn om te omschrijven wat uw overzichtspagina specifiek - omvat. De boodschap mag HTML bevatten. U kunt dus ook, op eenvoudige wijze, - referenties toevoegen naar relevante artefacten, zoals webpaginas, documenten, - e-mail adressen, ... -
diff --git a/war/src/main/webapp/help/view-config/description_pt_BR.html b/war/src/main/webapp/help/view-config/description_pt_BR.html deleted file mode 100644 index df7732115bb6..000000000000 --- a/war/src/main/webapp/help/view-config/description_pt_BR.html +++ /dev/null @@ -1,6 +0,0 @@ -
- Esta mensagem será mostrada na - página de visualização - . Útil para descrever sobre o que é esta visualização, ou - ligá-la a recursos relevantes. Pode conter marcações HTML. -
diff --git a/war/src/main/webapp/help/view-config/description_ru.html b/war/src/main/webapp/help/view-config/description_ru.html deleted file mode 100644 index 7303f0d6adf3..000000000000 --- a/war/src/main/webapp/help/view-config/description_ru.html +++ /dev/null @@ -1,6 +0,0 @@ -
- Это сообщение будет показываться на - странице Пользовательского списка - . Удобно для описания Пользовательского списка или ссылок на имеющие отношение - ресурсы. Может содержать HTML. -
diff --git a/war/src/main/webapp/help/view-config/description_tr.html b/war/src/main/webapp/help/view-config/description_tr.html deleted file mode 100644 index 08c2a592ada8..000000000000 --- a/war/src/main/webapp/help/view-config/description_tr.html +++ /dev/null @@ -1,7 +0,0 @@ -
- Bu mesaj, - görüntü ana sayfasında - gösterilecektir. Bu görüntünün ne ile ilgili - olduğunu anlatmak, veya ilgili kaynaklara bağlantılar - yapabilmek için kullanılabilir. HTML tag'leri kullanabilirsiniz. -
diff --git a/war/src/main/webapp/help/view-config/description_zh_TW.html b/war/src/main/webapp/help/view-config/description_zh_TW.html deleted file mode 100644 index 2f38a3d86281..000000000000 --- a/war/src/main/webapp/help/view-config/description_zh_TW.html +++ /dev/null @@ -1,5 +0,0 @@ -
- 訊息會顯示在 - 視景頁 - 。 能用來說明這個視景的用途,或是提供相關資源的連結。 可以使用 HTML 標籤。 -
diff --git a/war/src/main/webapp/help/view-config/filter-executors.html b/war/src/main/webapp/help/view-config/filter-executors.html deleted file mode 100644 index 034420bb5917..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- If checked, only those build executors will be shown that could execute the - jobs in this view. -
diff --git a/war/src/main/webapp/help/view-config/filter-executors_bg.html b/war/src/main/webapp/help/view-config/filter-executors_bg.html deleted file mode 100644 index 6b36c6989ca7..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Когато е избрано, ще се показват само компютрите, които могат да изпълняват - задачите в този изглед. -
diff --git a/war/src/main/webapp/help/view-config/filter-executors_de.html b/war/src/main/webapp/help/view-config/filter-executors_de.html deleted file mode 100644 index 52e6465c770c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_de.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- Wenn angewählt, werden nur diejenigen Build-Prozessoren angezeigt, welche Jobs - in dieser Ansicht ausführen könnten. -
diff --git a/war/src/main/webapp/help/view-config/filter-executors_it.html b/war/src/main/webapp/help/view-config/filter-executors_it.html deleted file mode 100644 index 44fb82b5bea2..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_it.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- Se quest'opzione è selezionata, solo gli esecutori in grado di eseguire i - processi qui elencati saranno visualizzati in questa vista. -
diff --git a/war/src/main/webapp/help/view-config/filter-executors_ja.html b/war/src/main/webapp/help/view-config/filter-executors_ja.html deleted file mode 100644 index efe9214b79d3..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_ja.html +++ /dev/null @@ -1,24 +0,0 @@ - -
このビューのジョブを実行可能なエグゼキューターのみ表示します。
diff --git a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html deleted file mode 100644 index 053df68e3154..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- Caso selecionado, apenas executores de build que podem executar jobs nessa - view aparecerão. -
diff --git a/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html b/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html deleted file mode 100644 index ff504373040c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-executors_zh_TW.html +++ /dev/null @@ -1 +0,0 @@ -
啟用後,就只會顯示能建置視景中作業的那些執行程式。
diff --git a/war/src/main/webapp/help/view-config/filter-queue.html b/war/src/main/webapp/help/view-config/filter-queue.html deleted file mode 100644 index e658f998232a..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue.html +++ /dev/null @@ -1,24 +0,0 @@ - -
If checked, only jobs in this view will be shown in the queue.
diff --git a/war/src/main/webapp/help/view-config/filter-queue_bg.html b/war/src/main/webapp/help/view-config/filter-queue_bg.html deleted file mode 100644 index 7b22a78abde0..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Когато е избрано, ще се показват само тези задачи в опашката, които са също и - в изгледа. -
diff --git a/war/src/main/webapp/help/view-config/filter-queue_de.html b/war/src/main/webapp/help/view-config/filter-queue_de.html deleted file mode 100644 index 2c2ec446239c..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_de.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- Wenn angewählt, werden in der Build-Warteschlange nur Jobs dieser Ansicht - angezeigt. -
diff --git a/war/src/main/webapp/help/view-config/filter-queue_it.html b/war/src/main/webapp/help/view-config/filter-queue_it.html deleted file mode 100644 index e7258892a005..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_it.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- Se quest'opzione è selezionata solo i processi che compaiono in questa vista - saranno visualizzati nella coda. -
diff --git a/war/src/main/webapp/help/view-config/filter-queue_ja.html b/war/src/main/webapp/help/view-config/filter-queue_ja.html deleted file mode 100644 index 26da33be36a1..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_ja.html +++ /dev/null @@ -1,24 +0,0 @@ - -
このビューのジョブのみキューに表示されます。
diff --git a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html deleted file mode 100644 index f92dd00bb380..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html +++ /dev/null @@ -1,24 +0,0 @@ - -
Caso selecionado, apenas jobs nessa view aparecerão na fila.
diff --git a/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html b/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html deleted file mode 100644 index 717957f1529e..000000000000 --- a/war/src/main/webapp/help/view-config/filter-queue_zh_TW.html +++ /dev/null @@ -1 +0,0 @@ -
選用後,佇列中只會顯示視景裡的作業。
From f8ef23acd99c85b253266b47fe0376eb7faa2745 Mon Sep 17 00:00:00 2001 From: Debayan Ghosh <66942246+debayangg@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:42:12 +0530 Subject: [PATCH 085/160] [JENKINS-72979] Remove trailing space from Windows agent secret file instructions (#9739) --- .../resources/hudson/slaves/JNLPLauncher/main.jelly | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly index 2f211d16feae..ad9184473224 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly @@ -53,26 +53,26 @@ ${copy_java_cmd_secret_unix} ${copy_agent_jar_windows} ${copy_java_cmd_secret_windows} - - + +

${%slaveAgent.cli.run.secret} (Unix) - +

-${copy_secret_to_file}
+${copy_secret_to_file_unix}
 ${copy_agent_jar_unix}
 ${copy_java_cmd_secret2_unix}
 

${%slaveAgent.cli.run.secret} (Windows) - +

-${copy_secret_to_file}
+${copy_secret_to_file_windows}
 ${copy_agent_jar_windows}
 ${copy_java_cmd_secret2_windows}
 
From 01ee3ad4d4c5c455c9ae48f3cde947c7f8f80f02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:21:11 +0100 Subject: [PATCH 086/160] Update dependency sass to v1.79.5 (#9865) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 165 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 160 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 0182b878c742..62fad3f2a61a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.79.4", + "sass": "1.79.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.9.0", diff --git a/yarn.lock b/yarn.lock index e0ae45a3a4a4..d3b55f59b810 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1925,6 +1925,140 @@ __metadata: languageName: node linkType: hard +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-x64": "npm:2.4.1" + "@parcel/watcher-freebsd-x64": "npm:2.4.1" + "@parcel/watcher-linux-arm-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-musl": "npm:2.4.1" + "@parcel/watcher-linux-x64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-x64-musl": "npm:2.4.1" + "@parcel/watcher-win32-arm64": "npm:2.4.1" + "@parcel/watcher-win32-ia32": "npm:2.4.1" + "@parcel/watcher-win32-x64": "npm:2.4.1" + detect-libc: "npm:^1.0.3" + is-glob: "npm:^4.0.3" + micromatch: "npm:^4.0.5" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -3142,6 +3276,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -4248,7 +4391,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.79.4" + sass: "npm:1.79.5" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -4639,7 +4782,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -4832,6 +4975,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.2.0 resolution: "node-gyp@npm:10.2.0" @@ -6209,16 +6361,17 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.79.4": - version: 1.79.4 - resolution: "sass@npm:1.79.4" +"sass@npm:1.79.5": + version: 1.79.5 + resolution: "sass@npm:1.79.5" dependencies: + "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/505ff0d9267d0fb990971e617acfeabf7c060c55d4cef68fe8a4bc693e7ea88ae7d7caeca3975e4b453459ba4a707b6e5b6979fc9395a7e08f0a43ca6aed06b8 + checksum: 10c0/7331865fd1d0c03e6e180a4fe0e175ac1bf1214f6c77f0d99ad72fbe2ed9ede3fab8a64c0c41471cb8a358a9d11624ec59a49283f9b6070eb99c522b34b814bf languageName: node linkType: hard From fe80df5c5119cdf8584f80a43b97293f4c74adf9 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Mon, 14 Oct 2024 20:23:01 +0200 Subject: [PATCH 087/160] Create a new taglib to capture the save/apply bottom bar (#9813) Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> --- .../main/java/hudson/logging/LogRecorder.java | 3 +- core/src/main/java/hudson/model/Computer.java | 3 +- core/src/main/java/jenkins/model/Jenkins.java | 2 +- .../logging/LogRecorder/configure.jelly | 6 +-- .../hudson/model/Computer/configure.jelly | 9 +---- .../hudson/model/ComputerSet/configure.jelly | 8 +--- .../hudson/model/Job/configure.jelly | 10 +---- .../hudson/model/Run/configure.jelly | 11 +----- .../hudson/model/View/configure.jelly | 6 +-- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 7 +--- .../index.jelly | 5 +-- .../hudson/slaves/Cloud/configure.jelly | 9 +---- .../jenkins/agents/CloudSet/index.jelly | 1 + .../AppearanceGlobalConfiguration/index.jelly | 7 +--- .../Jenkins/MasterComputer/configure.jelly | 6 +-- .../jenkins/model/Jenkins/configure.jelly | 14 ++----- .../resources/lib/form/saveApplyBar.jelly | 39 +++++++++++++++++++ 20 files changed, 66 insertions(+), 101 deletions(-) create mode 100644 core/src/main/resources/lib/form/saveApplyBar.jelly diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index c11c1bbfa57e..a4c42bdfcba7 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -44,6 +44,7 @@ import hudson.remoting.VirtualChannel; import hudson.slaves.ComputerListener; import hudson.util.CopyOnWriteList; +import hudson.util.FormApply; import hudson.util.FormValidation; import hudson.util.HttpResponses; import hudson.util.RingBufferLogHandler; @@ -463,7 +464,7 @@ public synchronized void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rs save(); if (oldFile != null) oldFile.delete(); - rsp.sendRedirect2(redirect); + FormApply.success(redirect).generateResponse(req, rsp, null); } @RequirePOST diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 1047fe97000c..9e3037edf83c 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -66,6 +66,7 @@ import hudson.util.DaemonThreadFactory; import hudson.util.EditDistance; import hudson.util.ExceptionCatchingThreadFactory; +import hudson.util.FormApply; import hudson.util.Futures; import hudson.util.IOUtils; import hudson.util.NamingThreadFactory; @@ -1512,7 +1513,7 @@ public void doConfigSubmit(StaplerRequest2 req, StaplerResponse2 rsp) throws IOE } // take the user back to the agent top page. - rsp.sendRedirect2("../" + result.getNodeName() + '/'); + FormApply.success("../" + result.getNodeName() + '/').generateResponse(req, rsp, null); } /** diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 90ffceefb456..dc2c7926f605 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4159,7 +4159,7 @@ public synchronized void doConfigExecutorsSubmit(StaplerRequest2 req, StaplerRes updateComputerList(); - rsp.sendRedirect(req.getContextPath() + '/' + toComputer().getUrl()); // back to the computer page + FormApply.success(req.getContextPath() + '/' + toComputer().getUrl()).generateResponse(req, rsp, null); } /** diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly index b49ccc278858..ef7c6f3781b2 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure.jelly @@ -66,12 +66,8 @@ THE SOFTWARE.
- - - - + - diff --git a/core/src/main/resources/hudson/model/Computer/configure.jelly b/core/src/main/resources/hudson/model/Computer/configure.jelly index bd33078013cd..ce76f5fb2d3b 100644 --- a/core/src/main/resources/hudson/model/Computer/configure.jelly +++ b/core/src/main/resources/hudson/model/Computer/configure.jelly @@ -46,15 +46,8 @@ THE SOFTWARE. - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly index 9e58aeda59e6..3483113b0fb4 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/configure.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/configure.jelly @@ -45,14 +45,8 @@ THE SOFTWARE. instances="${it.monitors}" forceRowSet="true"/> - - - - - - + - diff --git a/core/src/main/resources/hudson/model/Job/configure.jelly b/core/src/main/resources/hudson/model/Job/configure.jelly index d226a966558d..3d347a863945 100644 --- a/core/src/main/resources/hudson/model/Job/configure.jelly +++ b/core/src/main/resources/hudson/model/Job/configure.jelly @@ -63,16 +63,8 @@ THE SOFTWARE. - - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/Run/configure.jelly b/core/src/main/resources/hudson/model/Run/configure.jelly index edc2a24e904e..ff2bc3f09944 100644 --- a/core/src/main/resources/hudson/model/Run/configure.jelly +++ b/core/src/main/resources/hudson/model/Run/configure.jelly @@ -38,17 +38,8 @@ THE SOFTWARE. - - - - - - - + - - - diff --git a/core/src/main/resources/hudson/model/View/configure.jelly b/core/src/main/resources/hudson/model/View/configure.jelly index 6f2ff2744fe1..1d47dd542287 100644 --- a/core/src/main/resources/hudson/model/View/configure.jelly +++ b/core/src/main/resources/hudson/model/View/configure.jelly @@ -66,12 +66,8 @@ THE SOFTWARE. - - - - + - diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly index c6b458cecfe9..006458e02048 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE.
- - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly index 0d90ad4b2d76..eeceeb7eee0c 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly index 0d90ad4b2d76..eeceeb7eee0c 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly index 6971e5abf8d0..ea96f1bc39e8 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index.jelly @@ -62,11 +62,8 @@ THE SOFTWARE. - - - - - + + diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly index 0d90501fbbb0..a50387704139 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index.jelly @@ -64,10 +64,7 @@ THE SOFTWARE. - - - - + diff --git a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly index f7479a743176..acb1e2d980fa 100644 --- a/core/src/main/resources/hudson/slaves/Cloud/configure.jelly +++ b/core/src/main/resources/hudson/slaves/Cloud/configure.jelly @@ -37,15 +37,8 @@ THE SOFTWARE. - - - - - + - - - diff --git a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly index f0d1fa0f9c69..3bf3f0183e44 100644 --- a/core/src/main/resources/jenkins/agents/CloudSet/index.jelly +++ b/core/src/main/resources/jenkins/agents/CloudSet/index.jelly @@ -35,6 +35,7 @@ THE SOFTWARE. + diff --git a/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly b/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly index 9c4863c2b3f1..a49d8c765acf 100644 --- a/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly +++ b/core/src/main/resources/jenkins/appearance/AppearanceGlobalConfiguration/index.jelly @@ -44,12 +44,7 @@ THE SOFTWARE.
- - - - - - + diff --git a/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly index d71a75949106..d01b9dc210a2 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/MasterComputer/configure.jelly @@ -55,11 +55,7 @@ THE SOFTWARE. - - - - - + diff --git a/core/src/main/resources/jenkins/model/Jenkins/configure.jelly b/core/src/main/resources/jenkins/model/Jenkins/configure.jelly index 34b067bec99c..b24f0e872cf4 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/configure.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/configure.jelly @@ -32,6 +32,7 @@ THE SOFTWARE. +
@@ -46,7 +47,6 @@ THE SOFTWARE. - @@ -60,17 +60,9 @@ THE SOFTWARE. - - - - - - - + + - - -
diff --git a/core/src/main/resources/lib/form/saveApplyBar.jelly b/core/src/main/resources/lib/form/saveApplyBar.jelly new file mode 100644 index 000000000000..d3860e7e9620 --- /dev/null +++ b/core/src/main/resources/lib/form/saveApplyBar.jelly @@ -0,0 +1,39 @@ + + + + + + Creates the bottom bar for the "Save" and "Apply" buttons. + In read only mode (<j:set var="readOnlyMode" value="true"/>) the buttons are not displayed. + + + + + + + + + + From 8458d66713fc400113d08804c0a6ff4ee9212114 Mon Sep 17 00:00:00 2001 From: Markus Winter Date: Mon, 14 Oct 2024 20:23:26 +0200 Subject: [PATCH 088/160] [JENKINS-73813] Show a notification when scheduling a build fails (#9787) Co-authored-by: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Co-authored-by: Tim Jacomb --- .../hudson/views/BuildButtonColumn/column.jelly | 5 ++++- .../views/BuildButtonColumn/column.properties | 1 + .../hudson/views/BuildButtonColumn/icon.js | 8 +++++++- .../lib/hudson/project/configurable.jelly | 2 +- .../lib/hudson/project/configurable.properties | 1 + .../hudson/project/configurable/configurable.js | 8 +++++++- core/src/main/resources/lib/layout/task.jelly | 1 + core/src/main/resources/lib/layout/task/task.js | 8 +++++++- src/main/js/components/dropdowns/jumplists.js | 16 ++++++++++++---- 9 files changed, 41 insertions(+), 9 deletions(-) diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly index 8cced8eccbda..ce12897c5efa 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly @@ -37,7 +37,10 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties index bf14a6abb2db..86d64eaaf683 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.properties @@ -23,3 +23,4 @@ Task_scheduled={0} scheduled Schedule_a_task=Schedule a {1} for {0} Schedule_a_task_with_parameters=Schedule a {1} with parameters for {0} +Task_schedule_failed=Failed to schedule build for {0} diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js b/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js index 80977933eaaa..936c87b0766a 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/icon.js @@ -5,6 +5,7 @@ Behaviour.specify( function (e) { var url = e.getAttribute("data-url"); var message = e.getAttribute("data-notification"); + var failure = e.getAttribute("data-failure"); var id = e.getAttribute("data-id"); var icon = document.getElementById(id); @@ -12,8 +13,13 @@ Behaviour.specify( fetch(url, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show(message, notificationBar.SUCCESS); + } else { + notificationBar.show(failure, notificationBar.ERROR); + } }); - hoverNotification(message, this, -100); return false; }; }, diff --git a/core/src/main/resources/lib/hudson/project/configurable.jelly b/core/src/main/resources/lib/hudson/project/configurable.jelly index 44bac9b2b9bf..907068bcfd6e 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.jelly +++ b/core/src/main/resources/lib/hudson/project/configurable.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/lib/hudson/project/configurable.properties b/core/src/main/resources/lib/hudson/project/configurable.properties index b47b64121055..e95746b7dd99 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.properties +++ b/core/src/main/resources/lib/hudson/project/configurable.properties @@ -22,3 +22,4 @@ delete=Delete {0} delete.confirm=Delete the {0} ‘{1}’? +buildFailed=Failed to schedule build. Reload the page and try again. diff --git a/core/src/main/resources/lib/hudson/project/configurable/configurable.js b/core/src/main/resources/lib/hudson/project/configurable/configurable.js index a96e64219502..8ea9dacf17ae 100644 --- a/core/src/main/resources/lib/hudson/project/configurable/configurable.js +++ b/core/src/main/resources/lib/hudson/project/configurable/configurable.js @@ -4,12 +4,18 @@ function foo(el, ev) { let parameterized = el.dataset.parameterized; let success = el.dataset.buildSuccess; + let failure = el.dataset.buildFailure; if (parameterized === "false") { fetch(el.href, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show(success, notificationBar.SUCCESS); + } else { + notificationBar.show(failure, notificationBar.ERROR); + } }); - hoverNotification(success, ev.target.parentNode); ev.preventDefault(); } } diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index 7afcbcfef821..550d9282e51b 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -186,6 +186,7 @@ THE SOFTWARE. href="${href}" class="task-link task-link-no-confirm ${isCurrent ? 'task-link--active' : ''}" data-task-success="${%Done.}" + data-task-failure="${%Failed.}" data-task-post="${attrs.post}" ATTRIBUTES="${attrs}" EXCEPT="badge confirmationMessage contextMenu destructive enabled href icon permission permissions post requiresConfirmation title"> diff --git a/core/src/main/resources/lib/layout/task/task.js b/core/src/main/resources/lib/layout/task/task.js index 5d6fd6fd008c..b0e95063bec8 100644 --- a/core/src/main/resources/lib/layout/task/task.js +++ b/core/src/main/resources/lib/layout/task/task.js @@ -6,6 +6,7 @@ Behaviour.specify("a.task-link-no-confirm", "task-link", 0, function (el) { let post = el.dataset.taskPost; let callback = el.dataset.callback; let success = el.dataset.taskSuccess; + let failure = el.dataset.taskFailure; let href = el.href; if (callback !== undefined) { @@ -20,8 +21,13 @@ Behaviour.specify("a.task-link-no-confirm", "task-link", 0, function (el) { fetch(href, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar(success, notificationBar.SUCCESS); + } else { + notificationBar(failure, notificationBar.ERROR); + } }); - hoverNotification(success, el.parentNode); ev.preventDefault(); }; } diff --git a/src/main/js/components/dropdowns/jumplists.js b/src/main/js/components/dropdowns/jumplists.js index f831f452bafe..c1df72306c25 100644 --- a/src/main/js/components/dropdowns/jumplists.js +++ b/src/main/js/components/dropdowns/jumplists.js @@ -105,11 +105,19 @@ function mapChildrenItemsToDropdownItems(items) { fetch(item.url, { method: "post", headers: crumb.wrap({}), + }).then((rsp) => { + if (rsp.ok) { + notificationBar.show( + item.displayName + ": Done.", + notificationBar.SUCCESS, + ); + } else { + notificationBar.show( + item.displayName + ": Failed.", + notificationBar.ERROR, + ); + } }); - notificationBar.show( - item.displayName + ": Done.", - notificationBar.SUCCESS, - ); } } }, From 1c14bdc4de794db80d13f817e721def64f2f40e6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:44:14 -0700 Subject: [PATCH 089/160] Update dependency io.jenkins.plugins:asm-api to v9.7.1-97.v4cc844130d97 (#9866) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index b5cb11d590e5..b75dbca848d2 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -502,7 +502,7 @@ THE SOFTWARE. io.jenkins.plugins asm-api - 9.7.1-95.v9f552033802a_ + 9.7.1-97.v4cc844130d97 hpi From 7520ae670f47d934f5d5637cc126ba6b256bae01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:25:55 -0700 Subject: [PATCH 090/160] Update dependency org.jenkins-ci.plugins:script-security to v1365 (#9870) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 6bf29cc3138d..d7ed09f844c1 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1362.v67dc1f0e1b_b_3 + 1365.v4778ca_84b_de5
org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index b75dbca848d2..43c94afb6048 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1362.v67dc1f0e1b_b_3 + 1365.v4778ca_84b_de5 hpi From 91b46327f72ac173a5a900969ed2b07837446e09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:26:12 -0700 Subject: [PATCH 091/160] Update dependency io.jenkins.plugins:json-api to v20240303-101.v7a_8666713110 (#9868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 43c94afb6048..aeec9af66846 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -551,7 +551,7 @@ THE SOFTWARE. io.jenkins.plugins json-api - 20240303-41.v94e11e6de726 + 20240303-101.v7a_8666713110 hpi From b21f42837783a0a817b7fc4e355f2cb361c9a084 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:52:44 +0000 Subject: [PATCH 092/160] [maven-release-plugin] prepare release jenkins-2.481 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0065b595ae9a..008ccf3ea993 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..17c38b15a83f 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..a3c6d3f3eda9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..2ad4119f96c1 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-coverage diff --git a/pom.xml b/pom.xml index 1a472b3fd02a..4682b9629872 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.481 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.481 -SNAPSHOT - 2024-10-08T14:08:31Z + 2024-10-15T10:33:41Z github diff --git a/test/pom.xml b/test/pom.xml index d7ed09f844c1..b039d4876485 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index aeec9af66846..0ef1e6ac6f8e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..1fbb43e55cb3 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..6ceb1d232003 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.481 ../.. From b5b9876b516ef198ae21b6c0625ccd216242f872 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:53:08 +0000 Subject: [PATCH 093/160] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 008ccf3ea993..0065b595ae9a 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 17c38b15a83f..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index a3c6d3f3eda9..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index 2ad4119f96c1..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 4682b9629872..a8fc54f26297 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.481 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.481 + 2.482 -SNAPSHOT - 2024-10-15T10:33:41Z + 2024-10-15T13:52:44Z github diff --git a/test/pom.xml b/test/pom.xml index b039d4876485..d7ed09f844c1 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 0ef1e6ac6f8e..aeec9af66846 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 1fbb43e55cb3..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 6ceb1d232003..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.481 + ${revision}${changelist} ../.. From aa6876b2a858e4501b6db65d8f343e463d16ad1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:58:58 -0700 Subject: [PATCH 094/160] Update dependency stylelint to v16.10.0 (#9869) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 75 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 62fad3f2a61a..d1c90ea0da96 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "sass": "1.79.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", - "stylelint": "16.9.0", + "stylelint": "16.10.0", "stylelint-checkstyle-reporter": "1.0.0", "stylelint-config-standard": "36.0.1", "webpack": "5.95.0", diff --git a/yarn.lock b/yarn.lock index d3b55f59b810..332960baf1ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3034,10 +3034,10 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.2.2": - version: 3.2.2 - resolution: "css-functions-list@npm:3.2.2" - checksum: 10c0/8638a63d0cf1bdc50d4a752ec1c94a57e9953c3b03eace4f5526db20bec3c061e95089f905dbb4999c44b9780ce777ba856967560f6d15119a303f6030901c10 +"css-functions-list@npm:^3.2.3": + version: 3.2.3 + resolution: "css-functions-list@npm:3.2.3" + checksum: 10c0/03f9ed34eeed310d2b1cf0e524eea02bc5f87854a4de85f8957ea432ab1036841a3fb00879590519f7bb8fda40d992ce7a72fa9b61696ca1dc53b90064858f96 languageName: node linkType: hard @@ -3139,6 +3139,16 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:^3.0.0": + version: 3.0.0 + resolution: "css-tree@npm:3.0.0" + dependencies: + mdn-data: "npm:2.10.0" + source-map-js: "npm:^1.0.1" + checksum: 10c0/43d44fdf7004ae91d73d486f17894fef77efa33747a6752b9241cf0f5fb47fabc16ec34a96a993651d9014dfdeee803d7c5fcd3548214252ee19f4e5c98999b2 + languageName: node + linkType: hard + "css-tree@npm:~2.2.0": version: 2.2.1 resolution: "css-tree@npm:2.2.1" @@ -3242,7 +3252,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -3702,7 +3712,7 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^9.0.0": +"file-entry-cache@npm:^9.1.0": version: 9.1.0 resolution: "file-entry-cache@npm:9.1.0" dependencies: @@ -4136,13 +4146,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.2": +"ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard +"ignore@npm:^6.0.2": + version: 6.0.2 + resolution: "ignore@npm:6.0.2" + checksum: 10c0/9a38feac1861906a78ba0f03e8ef3cd6b0526dce2a1a84e1009324b557763afeb9c3ebcc04666b21f7bbf71adda45e76781bb9e2eaa0903d45dcaded634454f5 + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.3.7 resolution: "immutable@npm:4.3.7" @@ -4395,7 +4412,7 @@ __metadata: sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" - stylelint: "npm:16.9.0" + stylelint: "npm:16.10.0" stylelint-checkstyle-reporter: "npm:1.0.0" stylelint-config-standard: "npm:36.0.1" tippy.js: "npm:6.3.7" @@ -4761,6 +4778,13 @@ __metadata: languageName: node linkType: hard +"mdn-data@npm:2.10.0": + version: 2.10.0 + resolution: "mdn-data@npm:2.10.0" + checksum: 10c0/f6f1a6a6eb092bab250d06f6f6c7cb1733a77a17e7119aac829ad67d4322bbf6a30df3c6d88686e71942e66bd49274b2ddfede22a1d3df0d6c49a56fbd09eb7c + languageName: node + linkType: hard + "meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" @@ -6006,12 +6030,12 @@ __metadata: languageName: node linkType: hard -"postcss-safe-parser@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-safe-parser@npm:7.0.0" +"postcss-safe-parser@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-safe-parser@npm:7.0.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/4217afd8ce2809e959dc365e4675f499303cc6b91f94db06c8164422822db2d3b3124df701ee2234db4127ad05619b016bfb9c2bccae9bf9cf898a396f1632c9 + checksum: 10c0/6957b10b818bd8d4664ec0e548af967f7549abedfb37f844d389571d36af681340f41f9477b9ccf34bcc7599bdef222d1d72e79c64373001fae77089fba6d965 languageName: node linkType: hard @@ -6075,7 +6099,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.41": +"postcss@npm:8.4.47, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.47": version: 8.4.47 resolution: "postcss@npm:8.4.47" dependencies: @@ -6604,7 +6628,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": +"strip-ansi@npm:^7.0.1": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -6673,9 +6697,9 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.9.0": - version: 16.9.0 - resolution: "stylelint@npm:16.9.0" +"stylelint@npm:16.10.0": + version: 16.10.0 + resolution: "stylelint@npm:16.10.0" dependencies: "@csstools/css-parser-algorithms": "npm:^3.0.1" "@csstools/css-tokenizer": "npm:^3.0.1" @@ -6685,17 +6709,17 @@ __metadata: balanced-match: "npm:^2.0.0" colord: "npm:^2.9.3" cosmiconfig: "npm:^9.0.0" - css-functions-list: "npm:^3.2.2" - css-tree: "npm:^2.3.1" - debug: "npm:^4.3.6" + css-functions-list: "npm:^3.2.3" + css-tree: "npm:^3.0.0" + debug: "npm:^4.3.7" fast-glob: "npm:^3.3.2" fastest-levenshtein: "npm:^1.0.16" - file-entry-cache: "npm:^9.0.0" + file-entry-cache: "npm:^9.1.0" global-modules: "npm:^2.0.0" globby: "npm:^11.1.0" globjoin: "npm:^0.1.4" html-tags: "npm:^3.3.1" - ignore: "npm:^5.3.2" + ignore: "npm:^6.0.2" imurmurhash: "npm:^0.1.4" is-plain-object: "npm:^5.0.0" known-css-properties: "npm:^0.34.0" @@ -6704,21 +6728,20 @@ __metadata: micromatch: "npm:^4.0.8" normalize-path: "npm:^3.0.0" picocolors: "npm:^1.0.1" - postcss: "npm:^8.4.41" + postcss: "npm:^8.4.47" postcss-resolve-nested-selector: "npm:^0.1.6" - postcss-safe-parser: "npm:^7.0.0" + postcss-safe-parser: "npm:^7.0.1" postcss-selector-parser: "npm:^6.1.2" postcss-value-parser: "npm:^4.2.0" resolve-from: "npm:^5.0.0" string-width: "npm:^4.2.3" - strip-ansi: "npm:^7.1.0" supports-hyperlinks: "npm:^3.1.0" svg-tags: "npm:^1.0.0" table: "npm:^6.8.2" write-file-atomic: "npm:^5.0.1" bin: stylelint: bin/stylelint.mjs - checksum: 10c0/d3ff9c8945c56b04a2fa16ec33d163325496d5db94b6fcb5adf74c76f7f794ac992888273f9a3317652ba8b6195168b2ffff382ca2a667a241e2ace8c9505ae2 + checksum: 10c0/d07dd156c225d16c740995daacd78090f7fc317602e87bda2fca323a4ae427a8526d724f3089df3b2185df4520f987547668ceea9b30985988ccbc514034aa21 languageName: node linkType: hard From 8d5c614237aeb7114d3329e05cc12a023025bb31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:59:42 -0700 Subject: [PATCH 095/160] Update jenkins/ath Docker tag to v6040 (#9872) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 7009d692b8d0..3326a2118260 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6038.v190f938efc87 +export ATH_VERSION=6040.v72ed2f5b_59f6 if [[ $# -eq 0 ]]; then export JDK=17 From 29a711458a48578c08a6027b2b2adf57be916a0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 08:00:14 -0700 Subject: [PATCH 096/160] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-2 (#9873) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index aeec9af66846..b7b41897bc9e 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-1 + 5.5.1-2 hpi From b50cf513c151ad81b0c6dd18c4b66e5c0d02c2bd Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Tue, 15 Oct 2024 17:32:02 +0200 Subject: [PATCH 097/160] [JENKINS-30101][JENKINS-30175] Simplify persistence design for temporarily offline status (#9855) Co-authored-by: Jesse Glick --- core/src/main/java/hudson/model/Computer.java | 109 ++++++++++-------- core/src/main/java/hudson/model/Node.java | 26 ++--- .../AbstractNodeMonitorDescriptor.java | 4 +- .../main/java/hudson/slaves/OfflineCause.java | 32 ++++- .../model/Computer/setOfflineCause.jelly | 2 +- .../hudson/cli/OfflineNodeCommandTest.java | 4 +- test/src/test/java/hudson/model/NodeTest.java | 10 +- 7 files changed, 113 insertions(+), 74 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 9e3037edf83c..8c3d814c91fe 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -180,11 +180,6 @@ private long connectTime = 0; - /** - * True if Jenkins shouldn't start new builds on this node. - */ - private boolean temporarilyOffline; - /** * {@link Node} object may be created and deleted independently * from this object. @@ -361,6 +356,13 @@ public AnnotatedLargeText getLogText() { */ @Exported public OfflineCause getOfflineCause() { + var node = getNode(); + if (node != null) { + var temporaryOfflineCause = node.getTemporaryOfflineCause(); + if (temporaryOfflineCause != null) { + return temporaryOfflineCause; + } + } return offlineCause; } @@ -372,6 +374,7 @@ public boolean hasOfflineCause() { @Exported @Override public String getOfflineCauseReason() { + var offlineCause = getOfflineCause(); if (offlineCause == null) { return ""; } @@ -550,7 +553,7 @@ public void cliDisconnect(String cause) throws ExecutionException, InterruptedEx @Deprecated public void cliOffline(String cause) throws ExecutionException, InterruptedException { checkPermission(DISCONNECT); - setTemporarilyOffline(true, new ByCLI(cause)); + setTemporaryOfflineCause(new ByCLI(cause)); } /** @@ -559,7 +562,7 @@ public void cliOffline(String cause) throws ExecutionException, InterruptedExcep @Deprecated public void cliOnline() throws ExecutionException, InterruptedException { checkPermission(CONNECT); - setTemporarilyOffline(false, null); + setTemporaryOfflineCause(null); } /** @@ -621,7 +624,7 @@ public BuildTimelineWidget getTimeline() { @Exported @Override public boolean isOffline() { - return temporarilyOffline || getChannel() == null; + return isTemporarilyOffline() || getChannel() == null; } public final boolean isOnline() { @@ -670,41 +673,64 @@ public boolean isLaunchSupported() { @Exported @Deprecated public boolean isTemporarilyOffline() { - return temporarilyOffline; + var node = getNode(); + return node != null && node.isTemporarilyOffline(); } /** * @deprecated as of 1.320. - * Use {@link #setTemporarilyOffline(boolean, OfflineCause)} + * Use {@link #setTemporaryOfflineCause(OfflineCause)} */ @Deprecated public void setTemporarilyOffline(boolean temporarilyOffline) { - setTemporarilyOffline(temporarilyOffline, null); + setTemporaryOfflineCause(temporarilyOffline ? new OfflineCause.LegacyOfflineCause() : null); + } + + /** + * @deprecated + * Use {@link #setTemporaryOfflineCause(OfflineCause)} instead. + */ + @Deprecated(since = "TODO") + public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { + if (cause == null) { + setTemporarilyOffline(temporarilyOffline); + } else { + setTemporaryOfflineCause(temporarilyOffline ? cause : null); + } } /** * Marks the computer as temporarily offline. This retains the underlying * {@link Channel} connection, but prevent builds from executing. * - * @param cause - * If the first argument is true, specify the reason why the node is being put - * offline. + * @param temporaryOfflineCause The reason why the node is being put offline. + * If null, this cancels the status + * @since TODO */ - public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { - offlineCause = temporarilyOffline ? cause : null; - this.temporarilyOffline = temporarilyOffline; - Node node = getNode(); - if (node != null) { - node.setTemporaryOfflineCause(offlineCause); + public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOfflineCause) { + var node = getNode(); + if (node == null) { + throw new IllegalStateException("Can't set a temporary offline cause if the node has been removed"); } - synchronized (statusChangeLock) { - statusChangeLock.notifyAll(); + node.setTemporaryOfflineCause(temporaryOfflineCause); + } + + /** + * @since TODO + * @return If the node is temporarily offline, the reason why. + */ + @SuppressWarnings("unused") // used by setOfflineCause.jelly + public String getTemporaryOfflineCauseReason() { + var node = getNode(); + if (node == null) { + // Node was deleted; computer still exists + return null; } - if (temporarilyOffline) { - Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOffline(this, cause)); - } else { - Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOnline(this)); + var cause = node.getTemporaryOfflineCause(); + if (cause instanceof OfflineCause.UserCause userCause) { + return userCause.getMessage(); } + return cause != null ? cause.toString() : ""; } @Exported @@ -786,16 +812,6 @@ protected void setNode(Node node) { this.nodeName = null; setNumExecutors(node.getNumExecutors()); - if (this.temporarilyOffline) { - // When we get a new node, push our current temp offline - // status to it (as the status is not carried across - // configuration changes that recreate the node). - // Since this is also called the very first time this - // Computer is created, avoid pushing an empty status - // as that could overwrite any status that the Node - // brought along from its persisted config data. - node.setTemporaryOfflineCause(this.offlineCause); - } } /** @@ -1397,24 +1413,23 @@ public void doRssLatest(StaplerRequest2 req, StaplerResponse2 rsp) throws IOExce @RequirePOST public HttpResponse doToggleOffline(@QueryParameter String offlineMessage) throws IOException, ServletException { - if (!temporarilyOffline) { - checkPermission(DISCONNECT); - offlineMessage = Util.fixEmptyAndTrim(offlineMessage); - setTemporarilyOffline(!temporarilyOffline, - new OfflineCause.UserCause(User.current(), offlineMessage)); - } else { + var node = getNode(); + if (node == null) { + return HttpResponses.notFound(); + } + if (node.isTemporarilyOffline()) { checkPermission(CONNECT); - setTemporarilyOffline(!temporarilyOffline, null); + setTemporaryOfflineCause(null); + return HttpResponses.redirectToDot(); + } else { + return doChangeOfflineCause(offlineMessage); } - return HttpResponses.redirectToDot(); } @RequirePOST public HttpResponse doChangeOfflineCause(@QueryParameter String offlineMessage) throws IOException, ServletException { checkPermission(DISCONNECT); - offlineMessage = Util.fixEmptyAndTrim(offlineMessage); - setTemporarilyOffline(true, - new OfflineCause.UserCause(User.current(), offlineMessage)); + setTemporaryOfflineCause(new OfflineCause.UserCause(User.current(), Util.fixEmptyAndTrim(offlineMessage))); return HttpResponses.redirectToDot(); } diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 55cacd269133..d918b0f1db34 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -30,7 +30,6 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import hudson.BulkChange; -import hudson.Extension; import hudson.ExtensionPoint; import hudson.FilePath; import hudson.FileSystemProvisioner; @@ -69,6 +68,7 @@ import java.util.logging.Logger; import jenkins.model.Jenkins; import jenkins.model.Nodes; +import jenkins.util.Listeners; import jenkins.util.SystemProperties; import jenkins.util.io.OnMaster; import net.sf.json.JSONObject; @@ -265,24 +265,13 @@ public void onLoad(Nodes parent, String name) { } /** - * Let Nodes be aware of the lifecycle of their own {@link Computer}. + * @return true if this node has a temporary offline cause set. */ - @Extension - public static class InternalComputerListener extends ComputerListener { - @Override - public void onOnline(Computer c, TaskListener listener) { - Node node = c.getNode(); - - // At startup, we need to restore any previously in-effect temp offline cause. - // We wait until the computer is started rather than getting the data to it sooner - // so that the normal computer start up processing works as expected. - if (node != null && node.temporaryOfflineCause != null && node.temporaryOfflineCause != c.getOfflineCause()) { - c.setTemporarilyOffline(true, node.temporaryOfflineCause); - } - } + boolean isTemporarilyOffline() { + return temporaryOfflineCause != null; } - private OfflineCause temporaryOfflineCause; + private volatile OfflineCause temporaryOfflineCause; /** * Enable a {@link Computer} to inform its node when it is taken @@ -294,6 +283,11 @@ void setTemporaryOfflineCause(OfflineCause cause) { temporaryOfflineCause = cause; save(); } + if (temporaryOfflineCause != null) { + Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOffline(toComputer(), temporaryOfflineCause)); + } else { + Listeners.notify(ComputerListener.class, false, l -> l.onTemporarilyOnline(toComputer())); + } } catch (java.io.IOException e) { LOGGER.warning("Unable to complete save, temporary offline status will not be persisted: " + e.getMessage()); } diff --git a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java index 7cd1c75abc8d..d49924508bee 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java @@ -233,7 +233,7 @@ public boolean isIgnored() { */ protected boolean markOnline(Computer c) { if (isIgnored() || c.isOnline()) return false; // noop - c.setTemporarilyOffline(false, null); + c.setTemporaryOfflineCause(null); return true; } @@ -247,7 +247,7 @@ protected boolean markOnline(Computer c) { protected boolean markOffline(Computer c, OfflineCause oc) { if (isIgnored() || c.isTemporarilyOffline()) return false; // noop - c.setTemporarilyOffline(true, oc); + c.setTemporaryOfflineCause(oc); // notify the admin MonitorMarkedNodeOffline no = AdministrativeMonitor.all().get(MonitorMarkedNodeOffline.class); diff --git a/core/src/main/java/hudson/slaves/OfflineCause.java b/core/src/main/java/hudson/slaves/OfflineCause.java index 556c0ebb0c53..2a267ef03a4a 100644 --- a/core/src/main/java/hudson/slaves/OfflineCause.java +++ b/core/src/main/java/hudson/slaves/OfflineCause.java @@ -33,6 +33,8 @@ import java.util.Date; import jenkins.model.Jenkins; import org.jvnet.localizer.Localizable; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -71,6 +73,19 @@ public long getTimestamp() { return new Date(timestamp); } + /** + * @deprecated Only exists for backward compatibility. + * @see Computer#setTemporarilyOffline(boolean) + */ + @Deprecated + @Restricted(NoExternalUse.class) + public static class LegacyOfflineCause extends OfflineCause { + @Exported(name = "description") @Override + public String toString() { + return ""; + } + } + /** * {@link OfflineCause} that renders a static text, * but without any further UI. @@ -136,15 +151,15 @@ public static class UserCause extends SimpleOfflineCause { // null when unknown private /*final*/ @CheckForNull String userId; + private final String message; + public UserCause(@CheckForNull User user, @CheckForNull String message) { - this( - user != null ? user.getId() : null, - message != null ? " : " + message : "" - ); + this(user != null ? user.getId() : null, message); } private UserCause(String userId, String message) { - super(hudson.slaves.Messages._SlaveComputer_DisconnectedBy(userId != null ? userId : Jenkins.ANONYMOUS2.getName(), message)); + super(hudson.slaves.Messages._SlaveComputer_DisconnectedBy(userId != null ? userId : Jenkins.ANONYMOUS2.getName(), message != null ? " : " + message : "")); + this.message = message; this.userId = userId; } @@ -155,6 +170,13 @@ public User getUser() { ; } + /** + * @return the message that was provided when the computer was taken offline + */ + public String getMessage() { + return message; + } + // Storing the User in a filed was a mistake, switch to userId private Object readResolve() throws ObjectStreamException { if (user != null) { diff --git a/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly b/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly index 587057a464e1..8bac3c7e27c7 100644 --- a/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly +++ b/core/src/main/resources/hudson/model/Computer/setOfflineCause.jelly @@ -34,7 +34,7 @@ THE SOFTWARE. ${%blurb}

- +

diff --git a/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java b/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java index 564c1b098baf..878001e1b145 100644 --- a/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java +++ b/test/src/test/java/hudson/cli/OfflineNodeCommandTest.java @@ -118,7 +118,7 @@ public void offlineNodeShouldSucceedOnOfflineNode() throws Exception { slave.toComputer().setTemporarilyOffline(true, null); assertThat(slave.toComputer().isOffline(), equalTo(true)); assertThat(slave.toComputer().isTemporarilyOffline(), equalTo(true)); - assertThat(slave.toComputer().getOfflineCause(), equalTo(null)); + assertThat(slave.toComputer().getOfflineCause(), instanceOf(OfflineCause.LegacyOfflineCause.class)); final CLICommandInvoker.Result result = command .authorizedTo(Computer.DISCONNECT, Jenkins.READ) @@ -177,7 +177,7 @@ public void offlineNodeShouldSucceedOnOfflineNodeWithCause() throws Exception { slave.toComputer().setTemporarilyOffline(true, null); assertThat(slave.toComputer().isOffline(), equalTo(true)); assertThat(slave.toComputer().isTemporarilyOffline(), equalTo(true)); - assertThat(slave.toComputer().getOfflineCause(), equalTo(null)); + assertThat(slave.toComputer().getOfflineCause(), instanceOf(OfflineCause.LegacyOfflineCause.class)); final CLICommandInvoker.Result result = command .authorizedTo(Computer.DISCONNECT, Jenkins.READ) diff --git a/test/src/test/java/hudson/model/NodeTest.java b/test/src/test/java/hudson/model/NodeTest.java index 39ffe25f7643..cae1c2120982 100644 --- a/test/src/test/java/hudson/model/NodeTest.java +++ b/test/src/test/java/hudson/model/NodeTest.java @@ -27,6 +27,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.endsWith; import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -102,7 +104,10 @@ public void testSetTemporaryOfflineCause() throws Exception { assertEquals("Node should have offline cause which was set.", cause, node.toComputer().getOfflineCause()); OfflineCause cause2 = new OfflineCause.ByCLI("another message"); node.setTemporaryOfflineCause(cause2); - assertEquals("Node should have original offline cause after setting another.", cause, node.toComputer().getOfflineCause()); + assertEquals("Node should have the new offline cause.", cause2, node.toComputer().getOfflineCause()); + // Exists in some plugins + node.toComputer().setTemporarilyOffline(false, new OfflineCause.ByCLI("A third message")); + assertThat(node.getTemporaryOfflineCause(), nullValue()); } @Test @@ -115,6 +120,8 @@ public void testOfflineCause() throws Exception { try (ACLContext ignored = ACL.as2(someone.impersonate2())) { computer.doToggleOffline("original message"); cause = (OfflineCause.UserCause) computer.getOfflineCause(); + assertThat(computer.getOfflineCauseReason(), is("original message")); + assertThat(computer.getTemporaryOfflineCauseReason(), is("original message")); assertTrue(cause.toString(), cause.toString().matches("^.*?Disconnected by someone@somewhere.com : original message")); assertEquals(someone, cause.getUser()); } @@ -122,6 +129,7 @@ public void testOfflineCause() throws Exception { try (ACLContext ignored = ACL.as2(root.impersonate2())) { computer.doChangeOfflineCause("new message"); cause = (OfflineCause.UserCause) computer.getOfflineCause(); + assertThat(computer.getTemporaryOfflineCauseReason(), is("new message")); assertTrue(cause.toString(), cause.toString().matches("^.*?Disconnected by root@localhost : new message")); assertEquals(root, cause.getUser()); From c41791ef322fd07bdd1d618732c69f71f9a67462 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 15 Oct 2024 19:41:25 +0300 Subject: [PATCH 098/160] Fix run generate-weekly-changelog.sh failed (#9874) closes --- .github/workflows/changelog.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 7634f375c150..f7032327b8df 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -67,4 +67,8 @@ jobs: GIT_COMMITTER_EMAIL: <86592549+jenkins-infra-changelog-generator[bot]@users.noreply.github.com> run: | wget --quiet https://raw.githubusercontent.com/jenkinsci/core-changelog-generator/master/generate-weekly-changelog.sh + # Create a Python virtual environment for pip install + # See https://github.com/jenkinsci/core-changelog-generator/issues/37 + python3 -m venv venv + source venv/bin/activate bash generate-weekly-changelog.sh From 5019eb900cc3e39590249f8d20ffc87310b96821 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Tue, 15 Oct 2024 17:36:47 -0400 Subject: [PATCH 099/160] Stop build in `DeleteBuildsCommandTest.deleteBuildsShouldFailIfTheBuildIsRunning` so test can be cleaned up on Windows consistently (#9876) --- test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java index 5e2e917e9808..08e6552f610e 100644 --- a/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java +++ b/test/src/test/java/hudson/cli/DeleteBuildsCommandTest.java @@ -36,6 +36,7 @@ import hudson.model.ExecutorTest; import hudson.model.FreeStyleProject; import hudson.model.Item; +import hudson.model.Result; import hudson.model.Run; import hudson.model.labels.LabelAtom; import hudson.tasks.Shell; @@ -139,7 +140,7 @@ public class DeleteBuildsCommandTest { @Issue("JENKINS-73835") @Test public void deleteBuildsShouldFailIfTheBuildIsRunning() throws Exception { FreeStyleProject project = j.createFreeStyleProject("aProject"); - ExecutorTest.startBlockingBuild(project); + var build = ExecutorTest.startBlockingBuild(project); assertThat(((FreeStyleProject) j.jenkins.getItem("aProject")).getBuilds(), hasSize(1)); final CLICommandInvoker.Result result = command @@ -148,6 +149,9 @@ public class DeleteBuildsCommandTest { assertThat(result, failedWith(1)); assertThat(result, hasNoStandardOutput()); assertThat(result.stderr(), containsString("Unable to delete aProject #1 because it is still running")); + + build.doStop(); + j.assertBuildStatus(Result.ABORTED, j.waitForCompletion(build)); } @Test public void deleteBuildsShouldSuccessEvenTheBuildIsStuckInTheQueue() throws Exception { From dc4ad7e1a872e6dd9504f6c1ff1f95d84ca6046b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:53:45 -0700 Subject: [PATCH 100/160] Update dependency io.jenkins.plugins:gson-api to v2.11.0-85.v1f4e87273c33 (#9867) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index b7b41897bc9e..f0ff4fdd9870 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -523,7 +523,7 @@ THE SOFTWARE. io.jenkins.plugins gson-api - 2.11.0-41.v019fcf6125dc + 2.11.0-85.v1f4e87273c33 hpi From 4413da07f9e6d0e4a8fb96a1ff646b9e59e98d14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:17:54 -0700 Subject: [PATCH 101/160] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-3 (#9879) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index f0ff4fdd9870..fd16177eabf8 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-2 + 5.5.1-3 hpi From e1a6b190d4d71e95a8e00facd52ce7718909b9e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:18:42 -0700 Subject: [PATCH 102/160] Update dependency org.jenkins-ci:jenkins to v1.125 (#9877) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/src/site/site.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index 8b17895170df..a840aba6842c 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -40,7 +40,7 @@ org.apache.maven.skins maven-fluido-skin - 1.12.0 + 2.0.0-M11 diff --git a/pom.xml b/pom.xml index a8fc54f26297..ef3c35a41d94 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci jenkins - 1.123 + 1.125 From e097c2218e2c406b782ef0447f44a48672b4bf14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:56:23 -0700 Subject: [PATCH 103/160] Update dependency org.jenkins-ci.plugins.workflow:workflow-support to v930 (#9881) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index d7ed09f844c1..2f4dea0ecf20 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -134,7 +134,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 926.v9f4f9b_b_98c19 + 930.vf51d22b_ce488 diff --git a/war/pom.xml b/war/pom.xml index fd16177eabf8..c172a6ae3334 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -350,7 +350,7 @@ THE SOFTWARE. org.jenkins-ci.plugins.workflow workflow-support - 926.v9f4f9b_b_98c19 + 930.vf51d22b_ce488 hpi From a4f6f61d29303e3549a825c2a3bfa3e2021f6cff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:10:58 -0700 Subject: [PATCH 104/160] Update dependency org.jenkins-ci.main:remoting to v3270 (#9880) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ef3c35a41d94..c0f32e2a0bc0 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3261.v9c670a_4748a_9 + 3270.v9e0d174083ed Max Medium From 8612f16534d9f04a33b6a6f407bccb040315eec0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:36:50 -0700 Subject: [PATCH 105/160] Update dependency org.springframework:spring-framework-bom to v6.1.14 (#9884) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index 0065b595ae9a..bd8699441c8b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -62,7 +62,7 @@ THE SOFTWARE. org.springframework spring-framework-bom - 6.1.13 + 6.1.14 pom import From 091953fb3ea25a7c0fb0e78e8c31a80258a24c28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:16:37 -0700 Subject: [PATCH 106/160] Update dependency org.jenkins-ci.plugins:junit to v1307 (#9886) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 2f4dea0ecf20..726af9deeece 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -230,7 +230,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1304.vc85a_b_ca_96613 + 1307.vdd5b_2646279e test diff --git a/war/pom.xml b/war/pom.xml index c172a6ae3334..9c3ad8fd30e4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -314,7 +314,7 @@ THE SOFTWARE. org.jenkins-ci.plugins junit - 1304.vc85a_b_ca_96613 + 1307.vdd5b_2646279e hpi From 5c6b0932cf380c38c86a06693fbfbffde1bb8b69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:21:29 +0100 Subject: [PATCH 107/160] Update dependency sass to v1.80.1 (#9889) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d1c90ea0da96..4fe09a1d1515 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.79.5", + "sass": "1.80.1", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 332960baf1ec..9e6ed9c952d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4408,7 +4408,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.79.5" + sass: "npm:1.80.1" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6385,9 +6385,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.79.5": - version: 1.79.5 - resolution: "sass@npm:1.79.5" +"sass@npm:1.80.1": + version: 1.80.1 + resolution: "sass@npm:1.80.1" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6395,7 +6395,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/7331865fd1d0c03e6e180a4fe0e175ac1bf1214f6c77f0d99ad72fbe2ed9ede3fab8a64c0c41471cb8a358a9d11624ec59a49283f9b6070eb99c522b34b814bf + checksum: 10c0/91ec2b8bcba4c3c68c047fdcbe04cb82646b5cc6446e04d9134ff3c642d9895363de5cbf88869f0a6aa81bcd2de9b8ccba7df7ff35d33a07a18754014ee7a31a languageName: node linkType: hard From c72033e3d175c415cb379bbc3f1a7befb0aca4f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 09:22:59 +0100 Subject: [PATCH 108/160] Update dependency org.jenkins-ci.main:remoting to v3272 (#9888) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c0f32e2a0bc0..dac90b2fb41d 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3270.v9e0d174083ed + 3272.ve1ea_5d6a_c99f Max Medium From 13d2b78f0e3380f4465c248d4ba1f7c6e15af80e Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Sun, 20 Oct 2024 01:23:47 -0700 Subject: [PATCH 109/160] Migrate `site.xml` to new model (#9885) --- core/src/site/site.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/site/site.xml b/core/src/site/site.xml index a840aba6842c..01aeebc17802 100644 --- a/core/src/site/site.xml +++ b/core/src/site/site.xml @@ -1,5 +1,8 @@ + - + @@ -34,9 +37,7 @@ ]]> - - Jenkins Taglib Documentation - + org.apache.maven.skins maven-fluido-skin @@ -56,4 +57,4 @@ false - + From e8360278e28b31f0897b68e9ca40fae9acd75851 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Sun, 20 Oct 2024 10:24:52 +0200 Subject: [PATCH 110/160] Print Jenkins version on boot (#9878) --- core/src/main/java/jenkins/model/Jenkins.java | 1 + .../jenkins/model/JenkinsVersionTest.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 test/src/test/java/jenkins/model/JenkinsVersionTest.java diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index dc2c7926f605..4391b1547dab 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1012,6 +1012,7 @@ protected Jenkins(File root, ServletContext context, PluginManager pluginManager adjuncts = new AdjunctManager(getServletContext(), pluginManager.uberClassLoader, "adjuncts/" + SESSION_HASH, TimeUnit.DAYS.toMillis(365)); ClassFilterImpl.register(); + LOGGER.info("Starting version " + getVersion()); // initialization consists of ... executeReactor(is, diff --git a/test/src/test/java/jenkins/model/JenkinsVersionTest.java b/test/src/test/java/jenkins/model/JenkinsVersionTest.java new file mode 100644 index 000000000000..dd72747ac889 --- /dev/null +++ b/test/src/test/java/jenkins/model/JenkinsVersionTest.java @@ -0,0 +1,24 @@ +package jenkins.model; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasItem; + +import java.util.logging.Level; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.LoggerRule; + +public class JenkinsVersionTest { + @Rule + public JenkinsRule j = new JenkinsRule(); + + @Rule + public LoggerRule logging = new LoggerRule().record(Jenkins.class, Level.INFO).capture(100); + + @Test + public void printsVersion() { + assertThat(logging.getMessages(), hasItem(containsString(Jenkins.getVersion().toString()))); + } +} From 0d3c32a4e38eff4d5d8f3bbfcf47555d69b6cfe5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:25:30 +0100 Subject: [PATCH 111/160] Update dependency sass to v1.80.2 (#9892) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4fe09a1d1515..15e01e86ed2b 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.1", + "sass": "1.80.2", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 9e6ed9c952d2..27bbb6242402 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4408,7 +4408,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.1" + sass: "npm:1.80.2" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6385,9 +6385,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.1": - version: 1.80.1 - resolution: "sass@npm:1.80.1" +"sass@npm:1.80.2": + version: 1.80.2 + resolution: "sass@npm:1.80.2" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6395,7 +6395,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/91ec2b8bcba4c3c68c047fdcbe04cb82646b5cc6446e04d9134ff3c642d9895363de5cbf88869f0a6aa81bcd2de9b8ccba7df7ff35d33a07a18754014ee7a31a + checksum: 10c0/0006e2ee7a732abaa96a663167b078b8d53b4d7fe5ce435636a8bca6e8a3b6ebc12308c0725f577a456329ed962436d96cfcdd50a8e733ed4c4e4590f21243c9 languageName: node linkType: hard From 9af59503d518d87cbfcb1660b439f0fca2ac689e Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:35:12 +0100 Subject: [PATCH 112/160] Refine content and appearance of the project 'Configure' screen (#9734) Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> Co-authored-by: Tim Jacomb --- .../resources/lib/form/descriptorList.jelly | 5 ++++- .../hudson/project/config-buildWrappers.jelly | 3 ++- .../project/config-buildWrappers.properties | 1 + .../lib/hudson/project/config-builders.jelly | 14 +++++++------- .../hudson/project/config-builders.properties | 1 + .../hudson/project/config-publishers2.jelly | 19 +++++++++---------- .../project/config-publishers2.properties | 1 + .../lib/hudson/project/config-scm.jelly | 4 +++- .../lib/hudson/project/config-scm.properties | 1 + .../lib/hudson/project/config-trigger.jelly | 3 ++- .../hudson/project/config-trigger.properties | 1 + src/main/js/section-to-sidebar-items.js | 2 +- src/main/scss/components/_section.scss | 2 +- 13 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 core/src/main/resources/lib/hudson/project/config-buildWrappers.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-builders.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-publishers2.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-scm.properties create mode 100644 core/src/main/resources/lib/hudson/project/config-trigger.properties diff --git a/core/src/main/resources/lib/form/descriptorList.jelly b/core/src/main/resources/lib/form/descriptorList.jelly index ed485ef79fc6..f5d364d45682 100644 --- a/core/src/main/resources/lib/form/descriptorList.jelly +++ b/core/src/main/resources/lib/form/descriptorList.jelly @@ -34,6 +34,9 @@ THE SOFTWARE. Sets the icon on the sidebar item for the section anchor link The icon isn't visible in the section itself + + Optional attribute to set a description for the section + hudson.model.Descriptor collection whose configuration page is rendered. @@ -72,7 +75,7 @@ THE SOFTWARE. - +
diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly b/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly index bf11b396140e..a4895cc2c8cc 100644 --- a/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers.jelly @@ -29,7 +29,8 @@ THE SOFTWARE. - diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties b/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties new file mode 100644 index 000000000000..f5e24444151c --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers.properties @@ -0,0 +1 @@ +description=Configure settings and variables that define the context in which your build runs, like credentials, paths, and global parameters. diff --git a/core/src/main/resources/lib/hudson/project/config-builders.jelly b/core/src/main/resources/lib/hudson/project/config-builders.jelly index f73d3db19324..7ac736b8ca2e 100644 --- a/core/src/main/resources/lib/hudson/project/config-builders.jelly +++ b/core/src/main/resources/lib/hudson/project/config-builders.jelly @@ -27,12 +27,12 @@ THE SOFTWARE. --> - - - - + + diff --git a/core/src/main/resources/lib/hudson/project/config-builders.properties b/core/src/main/resources/lib/hudson/project/config-builders.properties new file mode 100644 index 000000000000..09d79670c511 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-builders.properties @@ -0,0 +1 @@ +description=Automate your build process with ordered tasks like code compilation, testing, and deployment. diff --git a/core/src/main/resources/lib/hudson/project/config-publishers2.jelly b/core/src/main/resources/lib/hudson/project/config-publishers2.jelly index 20ad2f6509e1..6a422834750e 100644 --- a/core/src/main/resources/lib/hudson/project/config-publishers2.jelly +++ b/core/src/main/resources/lib/hudson/project/config-publishers2.jelly @@ -27,15 +27,14 @@ THE SOFTWARE. --> - - - - + + diff --git a/core/src/main/resources/lib/hudson/project/config-publishers2.properties b/core/src/main/resources/lib/hudson/project/config-publishers2.properties new file mode 100644 index 000000000000..30d6d39fe2fb --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-publishers2.properties @@ -0,0 +1 @@ +description=Define what happens after a build completes, like sending notifications, archiving artifacts, or triggering other jobs. diff --git a/core/src/main/resources/lib/hudson/project/config-scm.jelly b/core/src/main/resources/lib/hudson/project/config-scm.jelly index 6a0202e005b5..56c174b11887 100644 --- a/core/src/main/resources/lib/hudson/project/config-scm.jelly +++ b/core/src/main/resources/lib/hudson/project/config-scm.jelly @@ -25,7 +25,9 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/lib/hudson/project/config-scm.properties b/core/src/main/resources/lib/hudson/project/config-scm.properties new file mode 100644 index 000000000000..9cc6366bbee7 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-scm.properties @@ -0,0 +1 @@ +description=Connect and manage your code repository to automatically pull the latest code for your builds. diff --git a/core/src/main/resources/lib/hudson/project/config-trigger.jelly b/core/src/main/resources/lib/hudson/project/config-trigger.jelly index 9d3651d6e1a2..26700d99d336 100644 --- a/core/src/main/resources/lib/hudson/project/config-trigger.jelly +++ b/core/src/main/resources/lib/hudson/project/config-trigger.jelly @@ -31,7 +31,8 @@ THE SOFTWARE. - diff --git a/core/src/main/resources/lib/hudson/project/config-trigger.properties b/core/src/main/resources/lib/hudson/project/config-trigger.properties new file mode 100644 index 000000000000..dc25d12170ad --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-trigger.properties @@ -0,0 +1 @@ +description=Set up automated actions that start your build based on specific events, like code changes or scheduled times. diff --git a/src/main/js/section-to-sidebar-items.js b/src/main/js/section-to-sidebar-items.js index 38683e995f5b..54a6ff6e10a5 100644 --- a/src/main/js/section-to-sidebar-items.js +++ b/src/main/js/section-to-sidebar-items.js @@ -1,7 +1,7 @@ import { createElementFromHtml, toId } from "./util/dom"; const HEADER_SELECTOR = - ".config-table .jenkins-app-bar h2, .config-table > .jenkins-section > .jenkins-section__title"; + ".config-table .jenkins-app-bar h2, .config-table > .jenkins-section > .jenkins-section__title, .config-table > section > .jenkins-section > .jenkins-section__title"; const DEFAULT_ICON = ``; window.addEventListener("load", function () { diff --git a/src/main/scss/components/_section.scss b/src/main/scss/components/_section.scss index 4e0768d8f6e0..4519554ff849 100644 --- a/src/main/scss/components/_section.scss +++ b/src/main/scss/components/_section.scss @@ -36,7 +36,7 @@ .jenkins-section__description { // Tweaked margin so that it appears visually centred when placed next to `.jenkins-section__title` - margin: -0.5rem 0 1rem; + margin: -0.8125rem 0 1rem; color: var(--text-color-secondary); line-height: 1.66; } From eb07f9e734e1be9e649f0e3baadaa2afc900a088 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Mon, 21 Oct 2024 14:35:23 -0400 Subject: [PATCH 113/160] Reduce default size of diagnostic buffer for `FlightRecorderInputStream` from 1MiB to 1KiB (#9887) --- .../hudson/cli/FlightRecorderInputStream.java | 2 +- .../java/hudson/cli/PlainCLIProtocolTest.java | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/src/test/java/hudson/cli/PlainCLIProtocolTest.java diff --git a/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java b/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java index 5a1167c4fdc5..41d7a719dd09 100644 --- a/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java +++ b/cli/src/main/java/hudson/cli/FlightRecorderInputStream.java @@ -21,7 +21,7 @@ class FlightRecorderInputStream extends InputStream { * Size (in bytes) of the flight recorder ring buffer used for debugging remoting issues. * @since 2.41 */ - static final int BUFFER_SIZE = Integer.getInteger("hudson.remoting.FlightRecorderInputStream.BUFFER_SIZE", 1024 * 1024); + static final int BUFFER_SIZE = Integer.getInteger("hudson.remoting.FlightRecorderInputStream.BUFFER_SIZE", 1024); private final InputStream source; private ByteArrayRingBuffer recorder = new ByteArrayRingBuffer(BUFFER_SIZE); diff --git a/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java b/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java new file mode 100644 index 000000000000..d9081ed6910f --- /dev/null +++ b/test/src/test/java/hudson/cli/PlainCLIProtocolTest.java @@ -0,0 +1,61 @@ +package hudson.cli; + +import static org.awaitility.Awaitility.await; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasItem; + +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.util.logging.Level; +import org.junit.Rule; +import org.junit.jupiter.api.Test; +import org.jvnet.hudson.test.LoggerRule; + +public class PlainCLIProtocolTest { + + @Rule public LoggerRule logger = new LoggerRule().record(PlainCLIProtocol.class, Level.FINE).capture(50); + + @Test + public void streamCorruption() throws Exception { + final PipedOutputStream upload = new PipedOutputStream(); + final PipedOutputStream download = new PipedOutputStream(); + + class Server extends PlainCLIProtocol.ServerSide { + Server() throws IOException { + super(new PlainCLIProtocol.FramedOutput(download)); + } + + @Override + protected void onArg(String text) {} + + @Override + protected void onLocale(String text) {} + + @Override + protected void onEncoding(String text) {} + + @Override + protected synchronized void onStart() {} + + @Override + protected void onStdin(byte[] chunk) throws IOException {} + + @Override + protected void onEndStdin() throws IOException {} + + @Override + protected void handleClose() {} + } + + Server server = new Server(); + new PlainCLIProtocol.FramedReader(server, new PipedInputStream(upload)).start(); + // Trigger corruption + upload.write(0xFF); + upload.write(0xFF); + upload.write(0xFF); + upload.write(0xFF); + upload.flush(); + await().until(logger::getMessages, hasItem(containsString("Read back: 0xff 0xff 0xff 0xff"))); + } +} From 2c92eae462cd6963462fc983458dd91f72494049 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:35:37 +0200 Subject: [PATCH 114/160] [JENKINS-73768] Handle base=derived case in Util#isOverridden (#9728) Co-authored-by: Daniel Beck --- core/src/main/java/hudson/Util.java | 4 ++++ core/src/test/java/hudson/util/IsOverriddenTest.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index b4529a0ea279..07d00a44d006 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -1525,6 +1525,10 @@ public static Number tryParseNumber(@CheckForNull String numberStr, @CheckForNul * does not contain the specified method. */ public static boolean isOverridden(@NonNull Class base, @NonNull Class derived, @NonNull String methodName, @NonNull Class... types) { + if (base == derived) { + // If base and derived are the same type, the method is not overridden by definition + return false; + } // If derived is not a subclass or implementor of base, it can't override any method // Technically this should also be triggered when base == derived, because it can't override its own method, but // the unit tests explicitly test for that as working. diff --git a/core/src/test/java/hudson/util/IsOverriddenTest.java b/core/src/test/java/hudson/util/IsOverriddenTest.java index c608e7453f9a..4711c5edf0a6 100644 --- a/core/src/test/java/hudson/util/IsOverriddenTest.java +++ b/core/src/test/java/hudson/util/IsOverriddenTest.java @@ -31,6 +31,7 @@ import static org.junit.Assert.assertTrue; import hudson.Util; +import java.io.PrintWriter; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; @@ -52,6 +53,8 @@ public void isOverriddenTest() { assertTrue(Util.isOverridden(Base.class, Derived.class, "method")); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "method")); assertFalse(Util.isOverridden(Base.class, Base.class, "method")); + assertFalse(Util.isOverridden(Throwable.class, Throwable.class, "printStackTrace", PrintWriter.class)); + assertFalse(Util.isOverridden(Throwable.class, Exception.class, "printStackTrace", PrintWriter.class)); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "setX", Object.class)); assertTrue(Util.isOverridden(Base.class, Intermediate.class, "getX")); } From d7eda6a7c7f609d3451eda7c44bcf5c93eae833f Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:36:04 +0100 Subject: [PATCH 115/160] Use standard dropdowns for combobox (#9462) Co-authored-by: Zbynek Konecny --- .../main/resources/lib/form/combobox.jelly | 5 - src/main/js/app.js | 2 - .../index.js => dropdowns/autocomplete.js} | 37 +------- src/main/js/components/dropdowns/combo-box.js | 93 +++++++++++++++++++ src/main/js/components/dropdowns/index.js | 4 + src/main/js/components/dropdowns/utils.js | 31 +++++++ 6 files changed, 132 insertions(+), 40 deletions(-) rename src/main/js/components/{autocomplete/index.js => dropdowns/autocomplete.js} (76%) create mode 100644 src/main/js/components/dropdowns/combo-box.js diff --git a/core/src/main/resources/lib/form/combobox.jelly b/core/src/main/resources/lib/form/combobox.jelly index 51fe7ce0d30f..517e12cd875e 100644 --- a/core/src/main/resources/lib/form/combobox.jelly +++ b/core/src/main/resources/lib/form/combobox.jelly @@ -70,11 +70,6 @@ THE SOFTWARE. ${descriptor.calcFillSettings(field,attrs)} - - "); + } + }; + } + + + /** + * Corresponds to types declared in index.js + */ + public enum NotificationType { + SUCCESS, + WARNING, + ERROR + } } diff --git a/war/src/main/webapp/scripts/apply.js b/war/src/main/webapp/scripts/apply.js new file mode 100644 index 000000000000..b82153250bf6 --- /dev/null +++ b/war/src/main/webapp/scripts/apply.js @@ -0,0 +1,8 @@ +window.applyCompletionHandler = function (w) { + let scriptTagData = document.getElementById("form-apply-data-holder").dataset; + + w.notificationBar.show( + scriptTagData.message, + w.notificationBar[scriptTagData.notificationType], + ); +}; From 6c5cdfa96c5bc7dd0325d792a2a31700b72b6d54 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Mon, 21 Oct 2024 11:37:27 -0700 Subject: [PATCH 117/160] Allow for null to be passed to `doSafeRestart` (#9882) --- core/src/main/java/jenkins/model/Jenkins.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 4391b1547dab..6db36176c6c2 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4668,7 +4668,7 @@ public void generateNotFoundResponse(StaplerRequest2 req, StaplerResponse2 rsp) */ @Deprecated(since = "2.414") public HttpResponse doSafeRestart(StaplerRequest req) throws IOException, ServletException, RestartNotSupportedException { - return doSafeRestart(StaplerRequest.toStaplerRequest2(req), null); + return doSafeRestart(req != null ? StaplerRequest.toStaplerRequest2(req) : null, null); } /** @@ -4701,7 +4701,7 @@ public HttpResponse doSafeRestart(StaplerRequest2 req, @QueryParameter("message" @StaplerNotDispatchable public HttpResponse doSafeRestart(StaplerRequest req, @QueryParameter("message") String message) throws IOException, javax.servlet.ServletException, RestartNotSupportedException { try { - return doSafeRestart(StaplerRequest.toStaplerRequest2(req), message); + return doSafeRestart(req != null ? StaplerRequest.toStaplerRequest2(req) : null, message); } catch (ServletException e) { throw ServletExceptionWrapper.fromJakartaServletException(e); } From 1a4b5ca9db2a10a66540925ab8725271707bf2af Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:51:08 -0700 Subject: [PATCH 118/160] Update Yarn to v4.5.1 (#9893) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15e01e86ed2b..86f5277b0463 100644 --- a/package.json +++ b/package.json @@ -68,5 +68,5 @@ "engines": { "node": ">=20.0.0" }, - "packageManager": "yarn@4.5.0" + "packageManager": "yarn@4.5.1" } From 8ee91ce9846dba75b31d1339a9c0e3e90581a195 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:56:30 -0700 Subject: [PATCH 119/160] Update dependency org.springframework.security:spring-security-bom to v6.3.4 (#9894) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/pom.xml b/bom/pom.xml index bd8699441c8b..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -70,7 +70,7 @@ THE SOFTWARE. org.springframework.security spring-security-bom - 6.3.3 + 6.3.4 pom import From 5c68c7b61285f347dc8bf93ad01f0dc4c430c78f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:56:38 -0700 Subject: [PATCH 120/160] Update dependency org.jenkins-ci.main:remoting to v3273 (#9895) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dac90b2fb41d..4cb7b20a6107 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ THE SOFTWARE. https://www.jenkins.io/changelog - 3272.ve1ea_5d6a_c99f + 3273.v4cfe589b_fd83 Max Medium From 271d70bbbb17c5e59bd282bc3ddef226a04cef4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:31:43 -0700 Subject: [PATCH 121/160] Update dependency @eslint/js to v9.13.0 (#9896) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 86f5277b0463..76a3d39c66da 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@babel/cli": "7.25.7", "@babel/core": "7.25.8", "@babel/preset-env": "7.25.8", - "@eslint/js": "9.12.0", + "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", diff --git a/yarn.lock b/yarn.lock index 27bbb6242402..a791e6429c35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1696,6 +1696,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.13.0": + version: 9.13.0 + resolution: "@eslint/js@npm:9.13.0" + checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/object-schema@npm:2.1.4" @@ -4388,7 +4395,7 @@ __metadata: "@babel/cli": "npm:7.25.7" "@babel/core": "npm:7.25.8" "@babel/preset-env": "npm:7.25.8" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" From f8c551f47f3c1410a55353ea244812ef5d6dd6e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:17:22 -0700 Subject: [PATCH 122/160] Update dependency sass to v1.80.3 (#9899) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 76a3d39c66da..04ca7e4dfaeb 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.2", + "sass": "1.80.3", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index a791e6429c35..cce8d24d2c56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4415,7 +4415,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.2" + sass: "npm:1.80.3" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6392,9 +6392,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.2": - version: 1.80.2 - resolution: "sass@npm:1.80.2" +"sass@npm:1.80.3": + version: 1.80.3 + resolution: "sass@npm:1.80.3" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6402,7 +6402,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/0006e2ee7a732abaa96a663167b078b8d53b4d7fe5ce435636a8bca6e8a3b6ebc12308c0725f577a456329ed962436d96cfcdd50a8e733ed4c4e4590f21243c9 + checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd languageName: node linkType: hard From ebfa9c25580415a68d44e8f3725fa875eb8a25cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:17:43 -0700 Subject: [PATCH 123/160] Update dependency eslint to v9.13.0 (#9898) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 29 +++++++++++------------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 04ca7e4dfaeb..0cf833ecff3d 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "clean-webpack-plugin": "4.0.0", "css-loader": "7.1.2", "css-minimizer-webpack-plugin": "7.0.0", - "eslint": "9.12.0", + "eslint": "9.13.0", "eslint-config-prettier": "9.1.0", "eslint-formatter-checkstyle": "8.40.0", "globals": "15.11.0", diff --git a/yarn.lock b/yarn.lock index cce8d24d2c56..52d95f0bf98b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1665,10 +1665,10 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^0.6.0": - version: 0.6.0 - resolution: "@eslint/core@npm:0.6.0" - checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240 +"@eslint/core@npm:^0.7.0": + version: 0.7.0 + resolution: "@eslint/core@npm:0.7.0" + checksum: 10c0/3cdee8bc6cbb96ac6103d3ead42e59830019435839583c9eb352b94ed558bd78e7ffad5286dc710df21ec1e7bd8f52aa6574c62457a4dd0f01f3736fa4a7d87a languageName: node linkType: hard @@ -1689,13 +1689,6 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.12.0": - version: 9.12.0 - resolution: "@eslint/js@npm:9.12.0" - checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c - languageName: node - linkType: hard - "@eslint/js@npm:9.13.0": version: 9.13.0 resolution: "@eslint/js@npm:9.13.0" @@ -3522,16 +3515,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.12.0": - version: 9.12.0 - resolution: "eslint@npm:9.12.0" +"eslint@npm:9.13.0": + version: 9.13.0 + resolution: "eslint@npm:9.13.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" "@eslint/config-array": "npm:^0.18.0" - "@eslint/core": "npm:^0.6.0" + "@eslint/core": "npm:^0.7.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.12.0" + "@eslint/js": "npm:9.13.0" "@eslint/plugin-kit": "npm:^0.2.0" "@humanfs/node": "npm:^0.16.5" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -3568,7 +3561,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda + checksum: 10c0/d3577444152182a9d8ea8c6a6acb073d3a2773ad73a6b646f432746583ec4bfcd6a44fcc2e37d05d276984e583c46c2d289b3b981ca8f8b4052756a152341d19 languageName: node linkType: hard @@ -4400,7 +4393,7 @@ __metadata: clean-webpack-plugin: "npm:4.0.0" css-loader: "npm:7.1.2" css-minimizer-webpack-plugin: "npm:7.0.0" - eslint: "npm:9.12.0" + eslint: "npm:9.13.0" eslint-config-prettier: "npm:9.1.0" eslint-formatter-checkstyle: "npm:8.40.0" globals: "npm:15.11.0" From 4fe5040796ac443088fcb66f77adfe031c5e0278 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:58:20 -0700 Subject: [PATCH 124/160] Update dependency org.jenkins-ci.main:jenkins-test-harness to v2345 (#9897) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- test/src/test/java/hudson/PluginManagerTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 726af9deeece..4a7b8e3ec787 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -178,7 +178,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-test-harness - 2341.v35346d95d2b_7 + 2345.v699712948764 test diff --git a/test/src/test/java/hudson/PluginManagerTest.java b/test/src/test/java/hudson/PluginManagerTest.java index b75d8fc2f66f..ec25bc96a39f 100644 --- a/test/src/test/java/hudson/PluginManagerTest.java +++ b/test/src/test/java/hudson/PluginManagerTest.java @@ -759,7 +759,7 @@ public void verifyUploadedPluginPermission() throws Exception { File dir = tmp.newFolder(); File plugin = new File(dir, "htmlpublisher.jpi"); FileUtils.copyURLToFile(Objects.requireNonNull(getClass().getClassLoader().getResource("plugins/htmlpublisher.jpi")), plugin); - f.getInputByName("name").setValueAttribute(plugin.getAbsolutePath()); + f.getInputByName("name").setValue(plugin.getAbsolutePath()); r.submit(f); File filesRef = Files.createTempFile("tmp", ".tmp").toFile(); From cb34c03b5a270a160f6dbc1528b38c2960ab3843 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:43:00 +0000 Subject: [PATCH 125/160] [maven-release-plugin] prepare release jenkins-2.482 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..2534752d0f4c 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..a067e242efbd 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..ebaeaeaf803d 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..cb35163b1b17 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-coverage diff --git a/pom.xml b/pom.xml index 4cb7b20a6107..463283e581e7 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.482 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.482 -SNAPSHOT - 2024-10-15T13:52:44Z + 2024-10-22T10:33:42Z github diff --git a/test/pom.xml b/test/pom.xml index 4a7b8e3ec787..ba2e6a647feb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 9c3ad8fd30e4..3be30e0e2dac 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..9089aa880487 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..0ee6e5561f32 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.482 ../.. From b6c44153bbef7b789af670697a26893b2fdccb1a Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:43:21 +0000 Subject: [PATCH 126/160] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 2534752d0f4c..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index a067e242efbd..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index ebaeaeaf803d..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index cb35163b1b17..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 463283e581e7..cfdc76b2fd56 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.482 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.482 + 2.483 -SNAPSHOT - 2024-10-22T10:33:42Z + 2024-10-22T13:43:00Z github diff --git a/test/pom.xml b/test/pom.xml index ba2e6a647feb..4a7b8e3ec787 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index 3be30e0e2dac..9c3ad8fd30e4 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 9089aa880487..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 0ee6e5561f32..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.482 + ${revision}${changelist} ../.. From 2da45fc19fd68cf74784108743a9eb9259c6ba35 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 22:19:22 +0100 Subject: [PATCH 127/160] Update dependency org.jenkins-ci.plugins:matrix-auth to v3.2.3 (#9902) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 4a7b8e3ec787..8f1d5f20c59a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -242,7 +242,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-auth - 3.2.2 + 3.2.3 test diff --git a/war/pom.xml b/war/pom.xml index 9c3ad8fd30e4..d4ed852e7721 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -286,7 +286,7 @@ THE SOFTWARE. org.jenkins-ci.plugins matrix-auth - 3.2.2 + 3.2.3 hpi From d9fbb65e98800f4b28a4d4a7f882f5bd0172b61c Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Wed, 23 Oct 2024 10:04:54 +0200 Subject: [PATCH 128/160] Display appropriate GUI that accurately displays offline by design (#9883) --- core/src/main/java/hudson/model/Computer.java | 44 ++----- .../main/java/hudson/slaves/OfflineCause.java | 57 +++++++-- .../java/hudson/slaves/RetentionStrategy.java | 2 + .../SimpleScheduledRetentionStrategy.java | 20 ++++ .../java/jenkins/agents/IOfflineCause.java | 108 ++++++++++++++++++ .../main/java/jenkins/model/IComputer.java | 51 ++++++++- .../java/jenkins/widgets/ExecutorsWidget.java | 9 +- .../hudson/model/ComputerSet/_legend.jelly | 7 ++ .../model/ComputerSet/_legend.properties | 1 + .../hudson/model/ComputerSet/index.jelly | 2 +- .../hudson/slaves/Messages.properties | 1 + .../hudson/slaves/OfflineCause/cause.jelly | 4 +- .../jenkins/agents/Messages.properties | 1 + .../jenkins/agents/Messages_bg.properties | 2 + .../jenkins/agents/Messages_ca.properties | 1 + .../jenkins/agents/Messages_cs.properties | 1 + .../jenkins/agents/Messages_da.properties | 1 + .../jenkins/agents/Messages_de.properties | 1 + .../jenkins/agents/Messages_es.properties | 1 + .../jenkins/agents/Messages_es_AR.properties | 1 + .../jenkins/agents/Messages_et.properties | 1 + .../jenkins/agents/Messages_fi.properties | 1 + .../jenkins/agents/Messages_fr.properties | 1 + .../jenkins/agents/Messages_he.properties | 1 + .../jenkins/agents/Messages_hu.properties | 1 + .../jenkins/agents/Messages_it.properties | 1 + .../jenkins/agents/Messages_ja.properties | 1 + .../jenkins/agents/Messages_ko.properties | 1 + .../jenkins/agents/Messages_lt.properties | 1 + .../jenkins/agents/Messages_lv.properties | 1 + .../jenkins/agents/Messages_nb_NO.properties | 1 + .../jenkins/agents/Messages_nl.properties | 1 + .../jenkins/agents/Messages_pl.properties | 1 + .../jenkins/agents/Messages_pt_BR.properties | 1 + .../jenkins/agents/Messages_pt_PT.properties | 1 + .../jenkins/agents/Messages_ro.properties | 1 + .../jenkins/agents/Messages_ru.properties | 1 + .../jenkins/agents/Messages_sr.properties | 1 + .../jenkins/agents/Messages_sv_SE.properties | 1 + .../jenkins/agents/Messages_tr.properties | 1 + .../jenkins/agents/Messages_uk.properties | 1 + .../jenkins/agents/Messages_zh_TW.properties | 1 + .../main/resources/lib/hudson/executors.jelly | 7 +- .../test/java/hudson/model/ComputerTest.java | 24 ++++ .../images/symbols/computer-paused.svg | 11 ++ .../main/resources/images/symbols/pause.svg | 1 + 46 files changed, 323 insertions(+), 57 deletions(-) create mode 100644 core/src/main/java/jenkins/agents/IOfflineCause.java create mode 100644 core/src/main/resources/jenkins/agents/Messages_bg.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ca.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_cs.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_da.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_de.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_es.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_es_AR.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_et.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_fi.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_he.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_hu.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_it.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ja.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ko.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_lt.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_lv.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_nb_NO.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_nl.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pl.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pt_BR.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_pt_PT.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ro.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_ru.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_sr.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_uk.properties create mode 100644 core/src/main/resources/jenkins/agents/Messages_zh_TW.properties create mode 100644 war/src/main/resources/images/symbols/computer-paused.svg create mode 100644 war/src/main/resources/images/symbols/pause.svg diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 8c3d814c91fe..9fe65e81974b 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -355,6 +355,7 @@ public AnnotatedLargeText getLogText() { * null if the system was put offline without given a cause. */ @Exported + @Override public OfflineCause getOfflineCause() { var node = getNode(); if (node != null) { @@ -374,19 +375,7 @@ public boolean hasOfflineCause() { @Exported @Override public String getOfflineCauseReason() { - var offlineCause = getOfflineCause(); - if (offlineCause == null) { - return ""; - } - // fetch the localized string for "Disconnected By" - String gsub_base = hudson.slaves.Messages.SlaveComputer_DisconnectedBy("", ""); - // regex to remove commented reason base string - String gsub1 = "^" + gsub_base + "[\\w\\W]* \\: "; - // regex to remove non-commented reason base string - String gsub2 = "^" + gsub_base + "[\\w\\W]*"; - - String newString = offlineCause.toString().replaceAll(gsub1, ""); - return newString.replaceAll(gsub2, ""); + return IComputer.super.getOfflineCauseReason(); } /** @@ -677,6 +666,14 @@ public boolean isTemporarilyOffline() { return node != null && node.isTemporarilyOffline(); } + /** + * Allows a caller to define an {@link OfflineCause} for a computer that has never been online. + * @since TODO + */ + public void setOfflineCause(OfflineCause cause) { + this.offlineCause = cause; + } + /** * @deprecated as of 1.320. * Use {@link #setTemporaryOfflineCause(OfflineCause)} @@ -736,22 +733,13 @@ public String getTemporaryOfflineCauseReason() { @Exported @Override public String getIcon() { - // The machine was taken offline by someone - if (isTemporarilyOffline() && getOfflineCause() instanceof OfflineCause.UserCause) return "symbol-computer-disconnected"; - // The computer is not accepting tasks, e.g. because the availability demands it being offline. - if (!isAcceptingTasks()) { - return "symbol-computer-not-accepting"; - } - // The computer is not connected or it is temporarily offline due to a node monitor - if (isOffline()) return "symbol-computer-offline"; - return "symbol-computer"; + return IComputer.super.getIcon(); } /** * {@inheritDoc} * - *

- * It is both the recommended and default implementation to serve different icons based on {@link #isOffline}. + * @see #getIcon() */ @Exported @Override @@ -759,14 +747,6 @@ public String getIconClassName() { return IComputer.super.getIconClassName(); } - public String getIconAltText() { - // The machine was taken offline by someone - if (isTemporarilyOffline() && getOfflineCause() instanceof OfflineCause.UserCause) return "[temporarily offline by user]"; - // There is a "technical" reason the computer will not accept new builds - if (isOffline() || !isAcceptingTasks()) return "[offline]"; - return "[online]"; - } - @Exported @Override public @NonNull String getDisplayName() { return nodeName; diff --git a/core/src/main/java/hudson/slaves/OfflineCause.java b/core/src/main/java/hudson/slaves/OfflineCause.java index 2a267ef03a4a..07c2d3af2872 100644 --- a/core/src/main/java/hudson/slaves/OfflineCause.java +++ b/core/src/main/java/hudson/slaves/OfflineCause.java @@ -30,7 +30,7 @@ import hudson.model.User; import java.io.ObjectStreamException; import java.util.Collections; -import java.util.Date; +import jenkins.agents.IOfflineCause; import jenkins.model.Jenkins; import org.jvnet.localizer.Localizable; import org.kohsuke.accmod.Restricted; @@ -51,28 +51,20 @@ * @since 1.320 */ @ExportedBean -public abstract class OfflineCause { +public abstract class OfflineCause implements IOfflineCause { protected final long timestamp = System.currentTimeMillis(); /** - * Timestamp in which the event happened. + * {@inheritDoc} * * @since 1.612 */ @Exported + @Override public long getTimestamp() { return timestamp; } - /** - * Same as {@link #getTimestamp()} but in a different type. - * - * @since 1.612 - */ - public final @NonNull Date getTime() { - return new Date(timestamp); - } - /** * @deprecated Only exists for backward compatibility. * @see Computer#setTemporarilyOffline(boolean) @@ -192,6 +184,24 @@ private Object readResolve() throws ObjectStreamException { } return this; } + + @Override + @NonNull + public String getComputerIcon() { + return "symbol-computer-disconnected"; + } + + @Override + @NonNull + public String getComputerIconAltText() { + return "[temporarily offline by user]"; + } + + @NonNull + @Override + public String getIcon() { + return "symbol-person"; + } } public static class ByCLI extends UserCause { @@ -212,5 +222,28 @@ public static class IdleOfflineCause extends SimpleOfflineCause { public IdleOfflineCause() { super(hudson.slaves.Messages._RetentionStrategy_Demand_OfflineIdle()); } + + @Override + @NonNull + public String getComputerIcon() { + return "symbol-computer-paused"; + } + + @Override + @NonNull + public String getComputerIconAltText() { + return "[will connect automatically whenever needed]"; + } + + @Override + @NonNull + public String getIcon() { + return "symbol-pause"; + } + + @Override + public String getStatusClass() { + return "info"; + } } } diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 687e44d5c172..6fe491cdaa87 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -272,6 +272,8 @@ public long check(final SlaveComputer c) { logger.log(Level.INFO, "Launching computer {0} as it has been in demand for {1}", new Object[]{c.getName(), Util.getTimeSpanString(demandMilliseconds)}); c.connect(false); + } else if (c.getOfflineCause() == null) { + c.setOfflineCause(new OfflineCause.IdleOfflineCause()); } } else if (c.isIdle()) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index ea90529b29b4..13a267ace665 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -242,6 +242,8 @@ public void run() { c.disconnect(OfflineCause.create(Messages._SimpleScheduledRetentionStrategy_FinishedUpTime())); } } + } else { + c.setOfflineCause(new ScheduledOfflineCause()); } return 0; } @@ -252,6 +254,24 @@ private synchronized boolean isOnlineScheduled() { return (lastStart < now && lastStop > now) || (nextStart < now && nextStop > now); } + public static class ScheduledOfflineCause extends OfflineCause.SimpleOfflineCause { + public ScheduledOfflineCause() { + super(Messages._SimpleScheduledRetentionStrategy_ScheduledOfflineCause_displayName()); + } + + @NonNull + @Override + public String getComputerIcon() { + return "symbol-computer-not-accepting"; + } + + @NonNull + @Override + public String getIcon() { + return "symbol-trigger"; + } + } + @Extension @Symbol("schedule") public static class DescriptorImpl extends Descriptor> { @NonNull diff --git a/core/src/main/java/jenkins/agents/IOfflineCause.java b/core/src/main/java/jenkins/agents/IOfflineCause.java new file mode 100644 index 000000000000..fca5f35b8d25 --- /dev/null +++ b/core/src/main/java/jenkins/agents/IOfflineCause.java @@ -0,0 +1,108 @@ +/* + * The MIT License + * + * Copyright 2024 CloudBees, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package jenkins.agents; + +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Util; +import java.util.Date; +import java.util.Objects; +import jenkins.model.IComputer; + +/** + * Represents a cause that puts a {@linkplain IComputer#isOffline() computer offline}. + * @since TODO + */ +public interface IOfflineCause { + /** + * @return The icon to use for the computer that has this offline cause. It will be displayed in the build executor status widget, as well as in nodes list screen. + */ + @NonNull + default String getComputerIcon() { + return "symbol-computer-offline"; + } + + /** + * @return The alt text for the icon returned by {@link #getComputerIcon()}. + */ + @NonNull + default String getComputerIconAltText() { + return "[offline]"; + } + + /** + * @return The icon to render this offline cause. It will be displayed in the build executor status widget. + */ + @NonNull + default String getIcon() { + return "symbol-error"; + } + + /** + * @return The reason why this offline cause exists. + *

+ * For implementers: this can use HTML formatting, so make sure to only include trusted content. + */ + @NonNull + default String getReason() { + // fetch the localized string for "Disconnected By" + String gsub_base = hudson.slaves.Messages.SlaveComputer_DisconnectedBy("", ""); + // regex to remove commented reason base string + String gsub1 = "^" + gsub_base + "[\\w\\W]* \\: "; + // regex to remove non-commented reason base string + String gsub2 = "^" + gsub_base + "[\\w\\W]*"; + return Objects.requireNonNull(Util.escape(toString().replaceAll(gsub1, "").replaceAll(gsub2, ""))); + } + + /** + * @return A short message (one word) that summarizes the offline cause. + * + *

+ * For implementers: this can use HTML formatting, so make sure to only include trusted content. + */ + @NonNull + default String getMessage() { + return Messages.IOfflineCause_offline(); + } + + /** + * @return the CSS class name that should be used to render the status. + */ + @SuppressWarnings("unused") // jelly + default String getStatusClass() { + return "warning"; + } + + /** + * Timestamp in which the event happened. + */ + long getTimestamp(); + + /** + * Same as {@link #getTimestamp()} but in a different type. + */ + @NonNull + default Date getTime() { + return new Date(getTimestamp()); + } +} diff --git a/core/src/main/java/jenkins/model/IComputer.java b/core/src/main/java/jenkins/model/IComputer.java index 0708748f4370..6aaea7af463f 100644 --- a/core/src/main/java/jenkins/model/IComputer.java +++ b/core/src/main/java/jenkins/model/IComputer.java @@ -32,6 +32,7 @@ import hudson.security.AccessControlled; import java.util.List; import java.util.concurrent.Future; +import jenkins.agents.IOfflineCause; import org.jenkins.ui.icon.Icon; import org.jenkins.ui.icon.IconSet; import org.kohsuke.accmod.Restricted; @@ -91,6 +92,12 @@ default boolean hasOfflineCause() { return Util.fixEmpty(getOfflineCauseReason()) != null; } + /** + * @return the offline cause if the computer is offline. + * @since TODO + */ + IOfflineCause getOfflineCause(); + /** * If the computer was offline (either temporarily or not), * this method will return the cause as a string (without user info). @@ -101,7 +108,12 @@ default boolean hasOfflineCause() { * empty string if the system was put offline without given a cause. */ @NonNull - String getOfflineCauseReason(); + default String getOfflineCauseReason() { + if (getOfflineCause() == null) { + return ""; + } + return getOfflineCause().getReason(); + } /** * @return true if the node is currently connecting to the Jenkins controller. @@ -115,12 +127,45 @@ default boolean hasOfflineCause() { * * @see #getIconClassName() */ - String getIcon(); + default String getIcon() { + // The computer is not accepting tasks, e.g. because the availability demands it being offline. + if (!isAcceptingTasks()) { + return "symbol-computer-not-accepting"; + } + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.getComputerIcon(); + } + // The computer is not connected or it is temporarily offline due to a node monitor + if (isOffline()) return "symbol-computer-offline"; + return "symbol-computer"; + } /** * Returns the alternative text for the computer icon. */ - String getIconAltText(); + @SuppressWarnings("unused") // jelly + default String getIconAltText() { + if (!isAcceptingTasks()) { + return "[suspended]"; + } + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.getComputerIconAltText(); + } + // There is a "technical" reason the computer will not accept new builds + if (isOffline()) return "[offline]"; + return "[online]"; + } + + default String getTooltip() { + var offlineCause = getOfflineCause(); + if (offlineCause != null) { + return offlineCause.toString(); + } else { + return ""; + } + } /** * Returns the class name that will be used to look up the icon. diff --git a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java index c660d4e03911..3577d21af48b 100644 --- a/core/src/main/java/jenkins/widgets/ExecutorsWidget.java +++ b/core/src/main/java/jenkins/widgets/ExecutorsWidget.java @@ -10,6 +10,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import jenkins.model.IComputer; import jenkins.model.Jenkins; import org.jenkinsci.Symbol; @@ -23,9 +24,9 @@ */ public class ExecutorsWidget extends Widget { private final String ownerUrl; - private final List computers; + private final List computers; - public ExecutorsWidget(@NonNull String ownerUrl, @NonNull List computers) { + public ExecutorsWidget(@NonNull String ownerUrl, @NonNull List computers) { this.ownerUrl = ownerUrl; this.computers = new ArrayList<>(computers); } @@ -35,7 +36,7 @@ protected String getOwnerUrl() { return ownerUrl; } - public List getComputers() { + public List getComputers() { return Collections.unmodifiableList(computers); } @@ -92,7 +93,7 @@ public Class widgetType() { @NonNull @Override public Collection createFor(@NonNull ComputerSet target) { - return List.of(new ExecutorsWidget("computer/", List.of(target.get_all()))); + return List.of(new ExecutorsWidget("computer/", new ArrayList<>(target.getComputers()))); } } } diff --git a/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly b/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly index 07871a6fe5f1..1668323aa584 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/_legend.jelly @@ -10,6 +10,13 @@ ${%online} +

+ +
+
+ ${%paused} +
+
diff --git a/core/src/main/resources/hudson/model/ComputerSet/_legend.properties b/core/src/main/resources/hudson/model/ComputerSet/_legend.properties index 075df2f8a1c4..223ac506677e 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_legend.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/_legend.properties @@ -6,6 +6,7 @@ not-accepting=The agent is not accepting tasks for execution. This usually means the time window. The agent might still execute tasks that have started while it was accepting tasks. Cloud agents that are \ intended to run only a single task might also use this.
\ Agents will be shown as suspended in the Build Executor Status widgets. +paused=The agent has been put offline due to the configured retention strategy. It will be brought back online when needed (e.g. a new task requests it). offline=None of the above conditions applies. The agent is not connected or it is still connected but a node monitor decided \ that the agent is not in a healthy state. An agent in this state should be investigated. Legend=Icon legend diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index c96346ac4949..5e957e2bd9c0 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -77,7 +77,7 @@ THE SOFTWARE.
- +
diff --git a/core/src/main/resources/hudson/slaves/Messages.properties b/core/src/main/resources/hudson/slaves/Messages.properties index 5c95fd0df998..7dbd6e8a1909 100644 --- a/core/src/main/resources/hudson/slaves/Messages.properties +++ b/core/src/main/resources/hudson/slaves/Messages.properties @@ -42,3 +42,4 @@ ComputerLauncher.JavaVersionResult={0} -version returned {1}. ComputerLauncher.UnknownJavaVersion=Couldn’t figure out the Java version of {0} Cloud.ProvisionPermission.Description=Provision new nodes Cloud.RequiredName=Cloud must have a unique non-empty name. +SimpleScheduledRetentionStrategy.ScheduledOfflineCause.displayName=Offline according to schedule diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly index 51a05a144aaf..e2457c8ae2bc 100644 --- a/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly +++ b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly @@ -24,12 +24,12 @@ THE SOFTWARE. -
+
- ${it} +
diff --git a/core/src/main/resources/jenkins/agents/Messages.properties b/core/src/main/resources/jenkins/agents/Messages.properties index 11a27f40642c..468a77f88db8 100644 --- a/core/src/main/resources/jenkins/agents/Messages.properties +++ b/core/src/main/resources/jenkins/agents/Messages.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Specify which cloud to copy CloudSet.NoSuchCloud=No such cloud: {0} CloudsLink.DisplayName=Clouds CloudsLink.Description=Add, remove, and configure cloud instances to provision agents on-demand. +IOfflineCause.offline=Offline diff --git a/core/src/main/resources/jenkins/agents/Messages_bg.properties b/core/src/main/resources/jenkins/agents/Messages_bg.properties new file mode 100644 index 000000000000..854f81e155df --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_bg.properties @@ -0,0 +1,2 @@ +IOfflineCause.offline=\ + Извън линия diff --git a/core/src/main/resources/jenkins/agents/Messages_ca.properties b/core/src/main/resources/jenkins/agents/Messages_ca.properties new file mode 100644 index 000000000000..b1dc57237b69 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ca.properties @@ -0,0 +1 @@ +IOfflineCause.offline=Fora de línia diff --git a/core/src/main/resources/jenkins/agents/Messages_cs.properties b/core/src/main/resources/jenkins/agents/Messages_cs.properties new file mode 100644 index 000000000000..e8be0867d387 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_cs.properties @@ -0,0 +1 @@ +IOfflineCause.offline=nedostupný diff --git a/core/src/main/resources/jenkins/agents/Messages_da.properties b/core/src/main/resources/jenkins/agents/Messages_da.properties new file mode 100644 index 000000000000..3eeb9c7db8ac --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_da.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offline diff --git a/core/src/main/resources/jenkins/agents/Messages_de.properties b/core/src/main/resources/jenkins/agents/Messages_de.properties new file mode 100644 index 000000000000..3eeb9c7db8ac --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_de.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offline diff --git a/core/src/main/resources/jenkins/agents/Messages_es.properties b/core/src/main/resources/jenkins/agents/Messages_es.properties new file mode 100644 index 000000000000..227b94579e02 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_es.properties @@ -0,0 +1 @@ +IOfflineCause.offline=fuera de linea diff --git a/core/src/main/resources/jenkins/agents/Messages_es_AR.properties b/core/src/main/resources/jenkins/agents/Messages_es_AR.properties new file mode 100644 index 000000000000..6876bdefb1c9 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_es_AR.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desconectado diff --git a/core/src/main/resources/jenkins/agents/Messages_et.properties b/core/src/main/resources/jenkins/agents/Messages_et.properties new file mode 100644 index 000000000000..569f0fb79967 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_et.properties @@ -0,0 +1 @@ +IOfflineCause.offline=offlain diff --git a/core/src/main/resources/jenkins/agents/Messages_fi.properties b/core/src/main/resources/jenkins/agents/Messages_fi.properties new file mode 100644 index 000000000000..9366da643837 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_fi.properties @@ -0,0 +1 @@ +IOfflineCause.offline=ei yhteyttä diff --git a/core/src/main/resources/jenkins/agents/Messages_fr.properties b/core/src/main/resources/jenkins/agents/Messages_fr.properties index 4d11e586212e..6b5c376636ef 100644 --- a/core/src/main/resources/jenkins/agents/Messages_fr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_fr.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Spécifier le cloud à copier CloudSet.NoSuchCloud=Aucun cloud : {0} CloudsLink.DisplayName=Clouds CloudsLink.Description=Ajouter, supprimer et configurer les instances de cloud afin de provisionner les agents à la demande. +IOfflineCause.offline=déconnecté diff --git a/core/src/main/resources/jenkins/agents/Messages_he.properties b/core/src/main/resources/jenkins/agents/Messages_he.properties new file mode 100644 index 000000000000..845bb4c14d51 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_he.properties @@ -0,0 +1 @@ +IOfflineCause.offline=לא מקוון diff --git a/core/src/main/resources/jenkins/agents/Messages_hu.properties b/core/src/main/resources/jenkins/agents/Messages_hu.properties new file mode 100644 index 000000000000..f1d2ee59ca29 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_hu.properties @@ -0,0 +1 @@ +IOfflineCause.offline=kapcsolat nélkül diff --git a/core/src/main/resources/jenkins/agents/Messages_it.properties b/core/src/main/resources/jenkins/agents/Messages_it.properties new file mode 100644 index 000000000000..67f532b2888e --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_it.properties @@ -0,0 +1 @@ +IOfflineCause.offline=non in linea diff --git a/core/src/main/resources/jenkins/agents/Messages_ja.properties b/core/src/main/resources/jenkins/agents/Messages_ja.properties new file mode 100644 index 000000000000..1dc8b5a9de59 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ja.properties @@ -0,0 +1 @@ +IOfflineCause.offline=オフライン diff --git a/core/src/main/resources/jenkins/agents/Messages_ko.properties b/core/src/main/resources/jenkins/agents/Messages_ko.properties new file mode 100644 index 000000000000..b66c4afd873d --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ko.properties @@ -0,0 +1 @@ +IOfflineCause.offline=오프라인 diff --git a/core/src/main/resources/jenkins/agents/Messages_lt.properties b/core/src/main/resources/jenkins/agents/Messages_lt.properties new file mode 100644 index 000000000000..1dc33ef4d0ce --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_lt.properties @@ -0,0 +1 @@ +IOfflineCause.offline=nepasiekiamas diff --git a/core/src/main/resources/jenkins/agents/Messages_lv.properties b/core/src/main/resources/jenkins/agents/Messages_lv.properties new file mode 100644 index 000000000000..b201d5aa457b --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_lv.properties @@ -0,0 +1 @@ +IOfflineCause.offline=bezsaitē diff --git a/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties b/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties new file mode 100644 index 000000000000..e4c6f4d4c1cf --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_nb_NO.properties @@ -0,0 +1 @@ +IOfflineCause.offline=ikke tilgjengelig diff --git a/core/src/main/resources/jenkins/agents/Messages_nl.properties b/core/src/main/resources/jenkins/agents/Messages_nl.properties new file mode 100644 index 000000000000..db8aa00bc17e --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_nl.properties @@ -0,0 +1 @@ +IOfflineCause.offline=niet verbonden diff --git a/core/src/main/resources/jenkins/agents/Messages_pl.properties b/core/src/main/resources/jenkins/agents/Messages_pl.properties new file mode 100644 index 000000000000..d077ba98ac3d --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pl.properties @@ -0,0 +1 @@ +IOfflineCause.offline=rozłączony diff --git a/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties b/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties new file mode 100644 index 000000000000..6876bdefb1c9 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pt_BR.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desconectado diff --git a/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties b/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties new file mode 100644 index 000000000000..1b4e4281c66a --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_pt_PT.properties @@ -0,0 +1 @@ +IOfflineCause.offline=desligado diff --git a/core/src/main/resources/jenkins/agents/Messages_ro.properties b/core/src/main/resources/jenkins/agents/Messages_ro.properties new file mode 100644 index 000000000000..003d60708ddd --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ro.properties @@ -0,0 +1 @@ +IOfflineCause.offline=oprit diff --git a/core/src/main/resources/jenkins/agents/Messages_ru.properties b/core/src/main/resources/jenkins/agents/Messages_ru.properties new file mode 100644 index 000000000000..6b7d6b72f9bc --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_ru.properties @@ -0,0 +1 @@ +IOfflineCause.offline=выключен diff --git a/core/src/main/resources/jenkins/agents/Messages_sr.properties b/core/src/main/resources/jenkins/agents/Messages_sr.properties new file mode 100644 index 000000000000..33944f0fed07 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_sr.properties @@ -0,0 +1 @@ +IOfflineCause.offline=Ван мреже diff --git a/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties b/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties index 38cc64867d62..51ede868f109 100644 --- a/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties +++ b/core/src/main/resources/jenkins/agents/Messages_sv_SE.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Ange vilket moln som ska kopieras CloudSet.NoSuchCloud=Det finns inget sådant moln: {0} CloudsLink.DisplayName=Moln CloudsLink.Description=Lägg till, ta bort och konfigurera molninstanser för att tillhandahålla agenter på begäran. +IOfflineCause.offline=frånkopplad diff --git a/core/src/main/resources/jenkins/agents/Messages_tr.properties b/core/src/main/resources/jenkins/agents/Messages_tr.properties index 5265f554c784..240942f59eae 100644 --- a/core/src/main/resources/jenkins/agents/Messages_tr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_tr.properties @@ -4,3 +4,4 @@ CloudSet.SpecifyCloudToCopy=Hangi bulutun kopyalanacağını belirtin CloudSet.NoSuchCloud=Böyle bir bulut yok: {0} CloudsLink.DisplayName=Bulutlar CloudsLink.Description=İsteğe bağlı olarak ajan hazırlamak için kullanılmak üzere bulut tanımları ekleyin, kaldırın ve düzenleyin. +IOfflineCause.offline=поза мережею diff --git a/core/src/main/resources/jenkins/agents/Messages_uk.properties b/core/src/main/resources/jenkins/agents/Messages_uk.properties new file mode 100644 index 000000000000..1138609d6943 --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_uk.properties @@ -0,0 +1 @@ +IOfflineCause.offline=поза мережею diff --git a/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties b/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties new file mode 100644 index 000000000000..8f59605265aa --- /dev/null +++ b/core/src/main/resources/jenkins/agents/Messages_zh_TW.properties @@ -0,0 +1 @@ +IOfflineCause.offline=離線 diff --git a/core/src/main/resources/lib/hudson/executors.jelly b/core/src/main/resources/lib/hudson/executors.jelly index af2224818c40..01dab9d2b7b8 100644 --- a/core/src/main/resources/lib/hudson/executors.jelly +++ b/core/src/main/resources/lib/hudson/executors.jelly @@ -33,15 +33,16 @@ THE SOFTWARE. - + ${title} - + +
- ( ${%offline}) + ( ${%offline})
diff --git a/test/src/test/java/hudson/model/ComputerTest.java b/test/src/test/java/hudson/model/ComputerTest.java index a3392ee448af..3acac9b9fcc9 100644 --- a/test/src/test/java/hudson/model/ComputerTest.java +++ b/test/src/test/java/hudson/model/ComputerTest.java @@ -128,6 +128,30 @@ public void doNotShowUserDetailsInOfflineCause() throws Exception { verifyOfflineCause(computer); } + @Test + public void offlineCauseRemainsAfterTemporaryCauseRemoved() throws Exception { + var agent = j.createSlave(); + var computer = agent.toComputer(); + var initialOfflineCause = new OfflineCause.UserCause(User.getOrCreateByIdOrFullName("username"), "Initial cause"); + computer.setOfflineCause(initialOfflineCause); + assertThat(computer.getOfflineCause(), equalTo(initialOfflineCause)); + var temporaryCause = new OfflineCause.UserCause(User.getOrCreateByIdOrFullName("username"), "msg"); + computer.setTemporarilyOffline(true, temporaryCause); + assertThat(computer.getOfflineCause(), equalTo(temporaryCause)); + computer.setTemporarilyOffline(false, null); + assertThat(computer.getOfflineCause(), equalTo(initialOfflineCause)); + } + + @Test + public void computerIconDependsOnOfflineCause() throws Exception { + var agent = j.createSlave(); + var computer = agent.toComputer(); + assertThat(computer.getIcon(), equalTo("symbol-computer-offline")); + var cause = new OfflineCause.IdleOfflineCause(); + computer.setOfflineCause(cause); + assertThat(computer.getIcon(), equalTo(cause.getComputerIcon())); + } + @Test @LocalData public void removeUserDetailsFromOfflineCause() throws Exception { Computer computer = j.jenkins.getComputer("deserialized"); diff --git a/war/src/main/resources/images/symbols/computer-paused.svg b/war/src/main/resources/images/symbols/computer-paused.svg new file mode 100644 index 000000000000..a59da7cf7a73 --- /dev/null +++ b/war/src/main/resources/images/symbols/computer-paused.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/war/src/main/resources/images/symbols/pause.svg b/war/src/main/resources/images/symbols/pause.svg new file mode 100644 index 000000000000..cbaa400eaa99 --- /dev/null +++ b/war/src/main/resources/images/symbols/pause.svg @@ -0,0 +1 @@ + From 1869fc05fe10e8e06821fd202d6743ef7b962e85 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 07:13:23 -0700 Subject: [PATCH 129/160] Update jenkins/ath Docker tag to v6052 (#9904) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index 3326a2118260..b1159344ffd5 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6040.v72ed2f5b_59f6 +export ATH_VERSION=6052.v122b_b_a_b_94b_60 if [[ $# -eq 0 ]]; then export JDK=17 From 1f7b6a8f0e34586b14d833a52ecbf7b8f65d6f6c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 18:38:16 +0100 Subject: [PATCH 130/160] Fill in since annotations (#9910) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/Computer.java | 6 +++--- core/src/main/java/hudson/util/FormApply.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 9fe65e81974b..eec5bdd8d28d 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -687,7 +687,7 @@ public void setTemporarilyOffline(boolean temporarilyOffline) { * @deprecated * Use {@link #setTemporaryOfflineCause(OfflineCause)} instead. */ - @Deprecated(since = "TODO") + @Deprecated(since = "2.482") public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { if (cause == null) { setTemporarilyOffline(temporarilyOffline); @@ -702,7 +702,7 @@ public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause * * @param temporaryOfflineCause The reason why the node is being put offline. * If null, this cancels the status - * @since TODO + * @since 2.482 */ public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOfflineCause) { var node = getNode(); @@ -713,7 +713,7 @@ public void setTemporaryOfflineCause(@CheckForNull OfflineCause temporaryOffline } /** - * @since TODO + * @since 2.482 * @return If the node is temporarily offline, the reason why. */ @SuppressWarnings("unused") // used by setOfflineCause.jelly diff --git a/core/src/main/java/hudson/util/FormApply.java b/core/src/main/java/hudson/util/FormApply.java index 9fc5f578f05d..3d5f458ec126 100644 --- a/core/src/main/java/hudson/util/FormApply.java +++ b/core/src/main/java/hudson/util/FormApply.java @@ -113,7 +113,7 @@ public void generateResponse(StaplerRequest2 req, StaplerResponse2 rsp, Object n * @param notificationType type of notification. See {@link NotificationType} for supported types. Defines the notification * color and the icon that will be shown. * - * @since TODO + * @since 2.482 */ public static HttpResponseException showNotification(final String message, final NotificationType notificationType) { return new HttpResponseException() { From 7a1630235f99b4f3c496992462b2140b1adacc29 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 24 Oct 2024 13:41:45 -0400 Subject: [PATCH 131/160] Removing configurability of `Jenkins.agentProtocols` (#9903) --- .../java/hudson/TcpSlaveAgentListener.java | 21 +-- .../security/GlobalSecurityConfiguration.java | 20 -- core/src/main/java/jenkins/AgentProtocol.java | 52 ++---- core/src/main/java/jenkins/model/Jenkins.java | 129 +------------ .../slaves/JnlpSlaveAgentProtocol4.java | 10 - .../main/resources/hudson/Messages.properties | 1 - .../resources/hudson/Messages_bg.properties | 3 - .../resources/hudson/Messages_de.properties | 2 - .../resources/hudson/Messages_es.properties | 1 - .../resources/hudson/Messages_fr.properties | 1 - .../resources/hudson/Messages_it.properties | 1 - .../hudson/Messages_pt_BR.properties | 1 - .../resources/hudson/Messages_sr.properties | 1 - .../hudson/Messages_sv_SE.properties | 1 - .../hudson/Messages_zh_TW.properties | 1 - .../help-agentProtocol.html | 4 - .../help-agentProtocol_bg.html | 4 - .../help-agentProtocol_it.html | 4 - .../help-agentProtocol_sv_SE.html | 5 - .../GlobalSecurityConfiguration/index.groovy | 28 --- .../index_it.properties | 1 - .../JnlpSlaveAgentProtocol4/description.jelly | 4 - .../description.properties | 1 - .../description_bg.properties | 26 --- .../description_de.properties | 23 --- .../description_fr.properties | 1 - .../description_it.properties | 25 --- .../description_pt_BR.properties | 23 --- .../description_sv_SE.properties | 23 --- .../description_zh_TW.properties | 1 - .../jenkins/slaves/Messages.properties | 27 --- .../jenkins/slaves/Messages_bg.properties | 37 ---- .../jenkins/slaves/Messages_de.properties | 27 --- .../jenkins/slaves/Messages_fr.properties | 27 --- .../jenkins/slaves/Messages_it.properties | 33 ---- .../jenkins/slaves/Messages_pt_BR.properties | 27 --- .../jenkins/slaves/Messages_sv_SE.properties | 27 --- .../jenkins/slaves/Messages_zh_TW.properties | 27 --- .../test/java/jenkins/AgentProtocolTest.java | 93 ---------- .../agents/JnlpProtocol4ProxyHandlerTest.java | 5 - .../test/java/jenkins/model/JenkinsTest.java | 175 ------------------ .../jenkins/AgentProtocolTest/config.xml | 41 ---- 42 files changed, 19 insertions(+), 945 deletions(-) delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html delete mode 100644 core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties delete mode 100644 core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_bg.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_de.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_fr.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_it.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties delete mode 100644 core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties delete mode 100644 test/src/test/java/jenkins/AgentProtocolTest.java delete mode 100644 test/src/test/resources/jenkins/AgentProtocolTest/config.xml diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 3936071de2ef..e7f037652c9b 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -271,14 +271,11 @@ public void run() { String protocol = s.substring(9); AgentProtocol p = AgentProtocol.of(protocol); if (p != null) { - if (Jenkins.get().getAgentProtocols().contains(protocol)) { - LOGGER.log(p instanceof PingAgentProtocol ? Level.FINE : Level.INFO, () -> "Accepted " + protocol + " connection " + connectionInfo); - p.handle(this.s); - } else { - error("Disabled protocol:" + s, this.s); - } - } else + LOGGER.log(p instanceof PingAgentProtocol ? Level.FINE : Level.INFO, () -> "Accepted " + protocol + " connection " + connectionInfo); + p.handle(this.s); + } else { error("Unknown protocol:", this.s); + } } else { error("Unrecognized protocol: " + s, this.s); } @@ -364,21 +361,11 @@ public PingAgentProtocol() { ping = "Ping\n".getBytes(StandardCharsets.UTF_8); } - @Override - public boolean isRequired() { - return true; - } - @Override public String getName() { return "Ping"; } - @Override - public String getDisplayName() { - return Messages.TcpSlaveAgentListener_PingAgentProtocol_displayName(); - } - @Override public void handle(Socket socket) throws IOException, InterruptedException { try (socket) { diff --git a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java index a8657df65685..ae90b0428c7b 100644 --- a/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java +++ b/core/src/main/java/hudson/security/GlobalSecurityConfiguration.java @@ -37,15 +37,12 @@ import hudson.util.FormApply; import jakarta.servlet.ServletException; import java.io.IOException; -import java.util.Set; -import java.util.TreeSet; import java.util.function.Predicate; import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.GlobalConfigurationCategory; import jenkins.model.Jenkins; import jenkins.util.ServerTcpPort; -import net.sf.json.JSONArray; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; @@ -92,11 +89,6 @@ public boolean isSlaveAgentPortEnforced() { return Jenkins.get().isSlaveAgentPortEnforced(); } - @NonNull - public Set getAgentProtocols() { - return Jenkins.get().getAgentProtocols(); - } - public boolean isDisableRememberMe() { return Jenkins.get().isDisableRememberMe(); } @@ -149,18 +141,6 @@ public boolean configure(StaplerRequest2 req, JSONObject json) throws FormExcept throw new FormException(e, "slaveAgentPortType"); } } - Set agentProtocols = new TreeSet<>(); - if (json.has("agentProtocol")) { - Object protocols = json.get("agentProtocol"); - if (protocols instanceof JSONArray) { - for (int i = 0; i < ((JSONArray) protocols).size(); i++) { - agentProtocols.add(((JSONArray) protocols).getString(i)); - } - } else { - agentProtocols.add(protocols.toString()); - } - } - j.setAgentProtocols(agentProtocols); // persist all the additional security configs boolean result = true; diff --git a/core/src/main/java/jenkins/AgentProtocol.java b/core/src/main/java/jenkins/AgentProtocol.java index d43398985810..1494dc60b183 100644 --- a/core/src/main/java/jenkins/AgentProtocol.java +++ b/core/src/main/java/jenkins/AgentProtocol.java @@ -7,8 +7,6 @@ import hudson.TcpSlaveAgentListener; import java.io.IOException; import java.net.Socket; -import java.util.Set; -import jenkins.model.Jenkins; /** * Pluggable Jenkins TCP agent protocol handler called from {@link TcpSlaveAgentListener}. @@ -18,57 +16,31 @@ * Implementations of this extension point is singleton, and its {@link #handle(Socket)} method * gets invoked concurrently whenever a new connection comes in. * - *

Extending UI

- *
- *
description.jelly
- *
Optional protocol description
- *
deprecationCause.jelly
- *
Optional. If the protocol is marked as {@link #isDeprecated()}, - * clarifies the deprecation reason and provides extra documentation links
- *
- * * @author Kohsuke Kawaguchi * @since 1.467 * @see TcpSlaveAgentListener */ public abstract class AgentProtocol implements ExtensionPoint { /** - * Allow experimental {@link AgentProtocol} implementations to declare being opt-in. - * Note that {@link Jenkins#setAgentProtocols(Set)} only records the protocols where the admin has made a - * conscious decision thus: - *
    - *
  • if a protocol is opt-in, it records the admin enabling it
  • - *
  • if a protocol is opt-out, it records the admin disabling it
  • - *
- * Implementations should not transition rapidly from {@code opt-in -> opt-out -> opt-in}. - * Implementations should never flip-flop: {@code opt-in -> opt-out -> opt-in -> opt-out} as that will basically - * clear any preference that an admin has set. This latter restriction should be ok as we only ever will be - * adding new protocols and retiring old ones. - * - * @return {@code true} if the protocol requires explicit opt-in. - * @since 2.16 - * @see Jenkins#setAgentProtocols(Set) + * @deprecated no longer used */ + @Deprecated public boolean isOptIn() { return false; } + /** - * Allow essential {@link AgentProtocol} implementations (basically {@link TcpSlaveAgentListener.PingAgentProtocol}) - * to be always enabled. - * - * @return {@code true} if the protocol can never be disabled. - * @since 2.16 + * @deprecated no longer used */ - + @Deprecated public boolean isRequired() { return false; } /** - * Checks if the protocol is deprecated. - * - * @since 2.75 + * @deprecated no longer used */ + @Deprecated public boolean isDeprecated() { return false; } @@ -79,17 +51,15 @@ public boolean isDeprecated() { * This is a short string that consists of printable ASCII chars. Sent by the client to select the protocol. * * @return - * null to be disabled. This is useful for avoiding getting used - * until the protocol is properly configured. + * null to be disabled */ + @CheckForNull public abstract String getName(); /** - * Returns the human readable protocol display name. - * - * @return the human readable protocol display name. - * @since 2.16 + * @deprecated no longer used */ + @Deprecated public String getDisplayName() { return getName(); } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 6db36176c6c2..bedbea0af7c4 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -656,47 +656,6 @@ private static int getSlaveAgentPortInitialValue(int def) { */ private static final boolean SLAVE_AGENT_PORT_ENFORCE = SystemProperties.getBoolean(Jenkins.class.getName() + ".slaveAgentPortEnforce", false); - /** - * The TCP agent protocols that are explicitly disabled (we store the disabled ones so that newer protocols - * are enabled by default). Will be {@code null} instead of empty to simplify XML format. - * - * @since 2.16 - */ - @CheckForNull - @GuardedBy("this") - private List disabledAgentProtocols; - /** - * @deprecated Just a temporary buffer for XSTream migration code from JENKINS-39465, do not use - */ - @Deprecated - private transient String[] _disabledAgentProtocols; - - /** - * The TCP agent protocols that are {@link AgentProtocol#isOptIn()} and explicitly enabled. - * Will be {@code null} instead of empty to simplify XML format. - * - * @since 2.16 - */ - @CheckForNull - @GuardedBy("this") - private List enabledAgentProtocols; - /** - * @deprecated Just a temporary buffer for XSTream migration code from JENKINS-39465, do not use - */ - @Deprecated - private transient String[] _enabledAgentProtocols; - - /** - * The TCP agent protocols that are enabled. Built from {@link #disabledAgentProtocols} and - * {@link #enabledAgentProtocols}. - * - * @since 2.16 - * @see #setAgentProtocols(Set) - * @see #getAgentProtocols() - */ - @GuardedBy("this") - private transient Set agentProtocols; - /** * Whitespace-separated labels assigned to the built-in node as a {@link Node}. */ @@ -1096,18 +1055,6 @@ protected Object readResolve() { if (SLAVE_AGENT_PORT_ENFORCE) { slaveAgentPort = getSlaveAgentPortInitialValue(slaveAgentPort); } - synchronized (this) { - if (disabledAgentProtocols == null && _disabledAgentProtocols != null) { - disabledAgentProtocols = Arrays.asList(_disabledAgentProtocols); - _disabledAgentProtocols = null; - } - if (enabledAgentProtocols == null && _enabledAgentProtocols != null) { - enabledAgentProtocols = Arrays.asList(_enabledAgentProtocols); - _enabledAgentProtocols = null; - } - // Invalidate the protocols cache after the reload - agentProtocols = null; - } // no longer persisted installStateName = null; @@ -1282,81 +1229,15 @@ private void forceSetSlaveAgentPort(int port) throws IOException { */ @NonNull public synchronized Set getAgentProtocols() { - if (agentProtocols == null) { - Set result = new TreeSet<>(); - Set disabled = new TreeSet<>(); - for (String p : Util.fixNull(disabledAgentProtocols)) { - disabled.add(p.trim()); - } - Set enabled = new TreeSet<>(); - for (String p : Util.fixNull(enabledAgentProtocols)) { - enabled.add(p.trim()); - } - for (AgentProtocol p : AgentProtocol.all()) { - String name = p.getName(); - if (name != null && (p.isRequired() - || (!disabled.contains(name) && (!p.isOptIn() || enabled.contains(name))))) { - result.add(name); - } - } - /* - * An empty result is almost never valid, but it can happen due to JENKINS-70206. Since we know the result - * is likely incorrect, at least decline to cache it so that a correct result can be computed later on - * rather than continuing to deliver the incorrect result indefinitely. - */ - if (!result.isEmpty()) { - agentProtocols = result; - } - return result; - } - return agentProtocols; + return AgentProtocol.all().stream().map(AgentProtocol::getName).filter(Objects::nonNull).collect(Collectors.toCollection(TreeSet::new)); } /** - * Sets the enabled agent protocols. - * - * @param protocols the enabled agent protocols. - * @since 2.16 + * @deprecated No longer does anything. */ + @Deprecated public synchronized void setAgentProtocols(@NonNull Set protocols) { - Set disabled = new TreeSet<>(); - Set enabled = new TreeSet<>(); - for (AgentProtocol p : AgentProtocol.all()) { - String name = p.getName(); - if (name != null && !p.isRequired()) { - // we want to record the protocols where the admin has made a conscious decision - // thus, if a protocol is opt-in, we record the admin enabling it - // if a protocol is opt-out, we record the admin disabling it - // We should not transition rapidly from opt-in -> opt-out -> opt-in - // the scenario we want to have work is: - // 1. We introduce a new protocol, it starts off as opt-in. Some admins decide to test and opt-in - // 2. We decide that the protocol is ready for general use. It gets marked as opt-out. Any admins - // that took part in early testing now have their config switched to not mention the new protocol - // at all when they save their config as the protocol is now opt-out. Any admins that want to - // disable it can do so and will have their preference recorded. - // 3. We decide that the protocol needs to be retired. It gets switched back to opt-in. At this point - // the initial opt-in admins, assuming they visited an upgrade to a controller with step 2, will - // have the protocol disabled for them. This is what we want. If they didn't upgrade to a controller - // with step 2, well there is not much we can do to differentiate them from somebody who is upgrading - // from a previous step 3 controller and had needed to keep the protocol turned on. - // - // What we should never do is flip-flop: opt-in -> opt-out -> opt-in -> opt-out as that will basically - // clear any preference that an admin has set, but this should be ok as we only ever will be - // adding new protocols and retiring old ones. - if (p.isOptIn()) { - if (protocols.contains(name)) { - enabled.add(name); - } - } else { - if (!protocols.contains(name)) { - disabled.add(name); - } - } - } - } - disabledAgentProtocols = disabled.isEmpty() ? null : new ArrayList<>(disabled); - enabledAgentProtocols = enabled.isEmpty() ? null : new ArrayList<>(enabled); - agentProtocols = null; + LOGGER.log(Level.WARNING, null, new IllegalStateException("Jenkins.agentProtocols no longer configurable")); } private void launchTcpSlaveAgentListener() throws IOException { @@ -6000,8 +5881,6 @@ public boolean shouldShowStackTrace() { // for backward compatibility with <1.75, recognize the tag name "view" as well. XSTREAM.alias("view", ListView.class); XSTREAM.alias("listView", ListView.class); - XSTREAM.addImplicitArray(Jenkins.class, "_disabledAgentProtocols", "disabledAgentProtocol"); - XSTREAM.addImplicitArray(Jenkins.class, "_enabledAgentProtocols", "enabledAgentProtocol"); XSTREAM2.addCriticalField(Jenkins.class, "securityRealm"); XSTREAM2.addCriticalField(Jenkins.class, "authorizationStrategy"); // this seems to be necessary to force registration of converter early enough diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java index 54c1402927a9..87eb26daeb4c 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java @@ -137,16 +137,6 @@ private char[] constructPassword() { return "password".toCharArray(); } - @Override - public boolean isOptIn() { - return false; - } - - @Override - public String getDisplayName() { - return Messages.JnlpSlaveAgentProtocol4_displayName(); - } - @Override public String getName() { return "JNLP4-connect"; // matches JnlpProtocol4Handler.getName diff --git a/core/src/main/resources/hudson/Messages.properties b/core/src/main/resources/hudson/Messages.properties index 99c77ebbed46..a15f31703cd0 100644 --- a/core/src/main/resources/hudson/Messages.properties +++ b/core/src/main/resources/hudson/Messages.properties @@ -127,7 +127,6 @@ PluginWrapper.Plugin.Has.Dependent=The plugin ''{0}'' has, at least, one depende PluginWrapper.Plugin.Disabled=Plugin ''{0}'' disabled PluginWrapper.NoSuchPlugin=No such plugin found with the name ''{0}'' PluginWrapper.Error.Disabling=There was an error disabling the ''{0}'' plugin. Error: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping protocol ProxyConfigurationManager.DisplayName=Proxy Configuration ProxyConfigurationManager.Description=Configure the http proxy used by Jenkins diff --git a/core/src/main/resources/hudson/Messages_bg.properties b/core/src/main/resources/hudson/Messages_bg.properties index 98b816053e44..e741c7400a06 100644 --- a/core/src/main/resources/hudson/Messages_bg.properties +++ b/core/src/main/resources/hudson/Messages_bg.properties @@ -105,9 +105,6 @@ PluginWrapper.disabledAndObsolete=\ # {0} is disabled. To fix, enable it. PluginWrapper.disabled=\ „{0}“ е изключена. Включете я. -# Ping protocol -TcpSlaveAgentListener.PingAgentProtocol.displayName=\ - Протокол „ping“ # {0} v{1} failed to load. Fix this plugin first. PluginWrapper.failed_to_load_dependency=\ „{0}“, версия {1} не се зареди. Оправете приставката. diff --git a/core/src/main/resources/hudson/Messages_de.properties b/core/src/main/resources/hudson/Messages_de.properties index e4068a20b58a..d524a518cd44 100644 --- a/core/src/main/resources/hudson/Messages_de.properties +++ b/core/src/main/resources/hudson/Messages_de.properties @@ -75,5 +75,3 @@ AboutJenkins.DisplayName=Über Jenkins AboutJenkins.Description=Versions- und Lizenzinformationen anzeigen. Functions.NoExceptionDetails=Keine Details zum Ausnahmefehler - -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping-Protokoll diff --git a/core/src/main/resources/hudson/Messages_es.properties b/core/src/main/resources/hudson/Messages_es.properties index 298ef23821d8..47d3b400c747 100644 --- a/core/src/main/resources/hudson/Messages_es.properties +++ b/core/src/main/resources/hudson/Messages_es.properties @@ -117,4 +117,3 @@ PluginWrapper.Plugin.Has.Dependant=El plugin {0} tiene, al menos, un plugin depe PluginWrapper.Plugin.Disabled=Plugin {0} deshabilitado PluginWrapper.NoSuchPlugin=No se encuentra un plugin con el nombre {0} PluginWrapper.Error.Disabling=Hubo un error al desactivar el plugin ''{0}''. Error: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocolo ping diff --git a/core/src/main/resources/hudson/Messages_fr.properties b/core/src/main/resources/hudson/Messages_fr.properties index 1e0286deddc5..06e739d3b479 100644 --- a/core/src/main/resources/hudson/Messages_fr.properties +++ b/core/src/main/resources/hudson/Messages_fr.properties @@ -126,4 +126,3 @@ PluginWrapper.Plugin.Has.Dependent=Le plugin "{0}" a au moins un plugin dépenda PluginWrapper.Plugin.Disabled=Plugin "{0}" désactivé PluginWrapper.NoSuchPlugin=Aucun plugin trouvé avec le nom "{0}" PluginWrapper.Error.Disabling=Une erreur a été relevée lors de la désactivation du plugin "{0}". Erreur : "{1}" -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocole de ping diff --git a/core/src/main/resources/hudson/Messages_it.properties b/core/src/main/resources/hudson/Messages_it.properties index 2747e2d39366..d63200aabd1e 100644 --- a/core/src/main/resources/hudson/Messages_it.properties +++ b/core/src/main/resources/hudson/Messages_it.properties @@ -109,7 +109,6 @@ ProxyConfiguration.MalformedTestUrl=URL di prova {0} malformato. ProxyConfiguration.NonTLSWarning=Jenkins supporta solo l''utilizzo di una connessione http al proxy. Le credenziali potrebbero essere esposte a qualcuno sulla stessa rete. ProxyConfiguration.Success=Connessione riuscita (codice {0}) ProxyConfiguration.TestUrlRequired=È richiesto un URL di prova. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocollo ping Util.day={0} g Util.hour={0} h Util.millisecond={0} ms diff --git a/core/src/main/resources/hudson/Messages_pt_BR.properties b/core/src/main/resources/hudson/Messages_pt_BR.properties index 0a809578524e..d67bdcba599c 100644 --- a/core/src/main/resources/hudson/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/Messages_pt_BR.properties @@ -57,7 +57,6 @@ PluginWrapper.missing=Não foi possível encontrar {0} v{1}. Para corrigir, inst Functions.NoExceptionDetails=Sem detalhes da exception FilePath.validateAntFileMask.whitespaceSeparator=Espaços em branco não podem mais serem utilizados como separador. Por \ favor use ", " como separadores. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Protocolo de ping PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=Falha ao carregar a extensão ProxyConfiguration.MalformedTestUrl=URL de teste {0} inválida. FilePath.TildaDoesntWork="~" é suportado apenas em um shell Unix e em nenhum outro lugar. diff --git a/core/src/main/resources/hudson/Messages_sr.properties b/core/src/main/resources/hudson/Messages_sr.properties index 3c266c5d67a3..414a84b3a41b 100644 --- a/core/src/main/resources/hudson/Messages_sr.properties +++ b/core/src/main/resources/hudson/Messages_sr.properties @@ -40,4 +40,3 @@ PluginWrapper.disabledAndObsolete={0}, верзија {1} је онемогућ PluginWrapper.disabled={0}, верзија {1} је онемогућено. Молимо вас, омогућите ову модулу. PluginWrapper.obsolete={0}, верзија {1} је старије него што је подржано. Инсталирајте верзију {2} или новије. PluginWrapper.obsoleteCore=Морате ажурирати Jenkins са верзије {0} на {1} или новије да би могли користити ову модулу. -TcpSlaveAgentListener.PingAgentProtocol.displayName=Протокол 'ping' diff --git a/core/src/main/resources/hudson/Messages_sv_SE.properties b/core/src/main/resources/hudson/Messages_sv_SE.properties index fdfa6ee3a524..f4a977e99098 100644 --- a/core/src/main/resources/hudson/Messages_sv_SE.properties +++ b/core/src/main/resources/hudson/Messages_sv_SE.properties @@ -125,7 +125,6 @@ PluginWrapper.Plugin.Has.Dependent=Insticksprogrammet ''{0}'' har minst ett bero PluginWrapper.Plugin.Disabled=Insticksprogrammet ''{0}'' inaktiverades PluginWrapper.NoSuchPlugin=Inget insticksprogram med namnet ''{0}'' hittades PluginWrapper.Error.Disabling=Ett fel uppstod när insticksprogrammet ''{0}'' inaktiverades. Fel: ''{1}'' -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping-protokoll ProxyConfigurationManager.DisplayName=Proxykonfiguration ProxyConfigurationManager.Description=Konfigurera http-proxyn som Jenkins använder diff --git a/core/src/main/resources/hudson/Messages_zh_TW.properties b/core/src/main/resources/hudson/Messages_zh_TW.properties index 708613e7e603..cc5fb76cb059 100644 --- a/core/src/main/resources/hudson/Messages_zh_TW.properties +++ b/core/src/main/resources/hudson/Messages_zh_TW.properties @@ -96,7 +96,6 @@ PluginWrapper.Plugin.Has.Dependent=外掛「{0}」有至少一個相依性外掛 PluginWrapper.Plugin.Disabled=已停用外掛「{0}」 PluginWrapper.NoSuchPlugin=找不到名為「{0}」的外掛 PluginWrapper.Error.Disabling=停用外掛「{0}」時發生錯誤,錯誤\: 「{1}」 -TcpSlaveAgentListener.PingAgentProtocol.displayName=Ping 協定 PluginManager.emptyUpdateSiteUrl=更新站台網址不得為空,請輸入網址 PluginManager.connectionFailed=無法連線至這個URL diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html deleted file mode 100644 index 01bcd8d3b24b..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Jenkins uses a TCP port to communicate with various remote agents. This option - allows control over which agent protocols are enabled. -
diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html deleted file mode 100644 index 41852a0729a8..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_bg.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Jenkins използва порт па TCP, за да комуникира с подчинените компютри. Тази - опция задава кои протоколи за връзка са включени. -
diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html deleted file mode 100644 index 2adbe90a72a1..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_it.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Jenkins utilizza una porta TCP per comunicare con vari agenti remoti. - Quest'opzione consente di controllare i vari protocolli agente abilitati. -
diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html deleted file mode 100644 index adf57097bb6f..000000000000 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/help-agentProtocol_sv_SE.html +++ /dev/null @@ -1,5 +0,0 @@ -
- Jenkins använder en TCP-port för att kommunicera med olika fjärragenter. Det - här alternativet gör det möjligt att kontrollera vilka agentprotokoll som är - aktiverade. -
diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy index 2abc4e795cc0..9c3c80607ca8 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index.groovy @@ -3,7 +3,6 @@ package hudson.security.GlobalSecurityConfiguration import hudson.security.SecurityRealm import hudson.markup.MarkupFormatterDescriptor import hudson.security.AuthorizationStrategy -import jenkins.AgentProtocol import hudson.Functions import hudson.model.Descriptor @@ -51,33 +50,6 @@ l.layout(permission:app.SYSTEM_READ, title:my.displayName, cssclass:request.getP f.serverTcpPort() } } - f.advanced(title: _("Agent protocols"), align:"left") { - f.entry(title: _("Agent protocols"), help: '/descriptor/hudson.security.GlobalSecurityConfiguration/help/agentProtocol') { - def agentProtocols = my.agentProtocols - div() { - for (AgentProtocol p : AgentProtocol.all()) { - if (p.name != null && !p.required) { - f.block() { - f.checkbox(name: "agentProtocol", - title: p.displayName, - checked: agentProtocols.contains(p.name), - json: p.name) - } - div(class: "tr") { - div(class:"setting-description"){ - st.include(from:p, page: "description", optional:true) - if (p.deprecated) { - br() - text(b(_("Deprecated. "))) - st.include(from:p, page: "deprecationCause", optional:true) - } - } - } - } - } - } - } - } } Functions.getSortedDescriptorsForGlobalConfigByDescriptor(my.FILTER).each { Descriptor descriptor -> diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties index 9b343aab6b5e..ba6cf0fe694f 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_it.properties @@ -25,7 +25,6 @@ Agent\ protocols=Protocolli agente Agents=Agenti Authentication=Autenticazione Authorization=Autorizzazione -Deprecated.\ =Deprecato. Disable\ remember\ me=Disabilita "Ricordami" LOADING=Caricamento in corso Markup\ Formatter=Componente formattazione markup diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly deleted file mode 100644 index 55e2c974b5ba..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly +++ /dev/null @@ -1,4 +0,0 @@ - - - ${%summary} - diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties deleted file mode 100644 index 4ecb60357fd6..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.properties +++ /dev/null @@ -1 +0,0 @@ -summary=A TLS secured connection between the controller and the agent performed by TLS upgrade of the socket. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties deleted file mode 100644 index 4d13804ebdad..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_bg.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov -# -# 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. - -# A TLS secured connection between the master and the agent performed by TLS upgrade of the socket. -summary=\ - Защитена връзка между управляващия и подчинения компютър чрез преминаване към\ - TLS по гнездото. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties deleted file mode 100644 index 77064f1441ee..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2017 Daniel Beck and a number of other of contributors -# -# 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. - -summary=Eine TLS-gesicherte Verbindung zwischen Master-Knoten und Agenten über TLS-Upgrade des Sockets. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties deleted file mode 100644 index 26c2dd5b35c8..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_fr.properties +++ /dev/null @@ -1 +0,0 @@ -summary=Une connexion TLS sécurisée entre le contrôleur et l''agent a été effectuée via une mise à jour du TLS du socket. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties deleted file mode 100644 index 2d9452d7f068..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_it.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Italian localization plugin for Jenkins -# Copyright © 2020 Alessandro Menti -# -# 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. - -summary=Una connessione fra il master e l''agente protetta da TLS ed \ - eseguita aggiornando il socket a TLS. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties deleted file mode 100644 index 74e67bc910b6..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_pt_BR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# 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. - -summary=Uma conexão segura via TLS entre o controlador e o agente realizada por uma atualização de TLS no soquete. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties deleted file mode 100644 index 35b1deaba4fd..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_sv_SE.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# 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. - -summary=En TLS-säker anslutning mellan styrenheten och agenten utfördes av sockelns TLS-uppgradering. diff --git a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties b/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties deleted file mode 100644 index 949804a0f146..000000000000 --- a/core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description_zh_TW.properties +++ /dev/null @@ -1 +0,0 @@ -summary=透過 TLS 通訊端升級 Controller 和 Agent 間的 TLS 安全連線。 diff --git a/core/src/main/resources/jenkins/slaves/Messages.properties b/core/src/main/resources/jenkins/slaves/Messages.properties deleted file mode 100644 index 41abfc7a302c..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# 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. - -JnlpSlaveAgentProtocol.displayName=Inbound TCP Agent Protocol/1 (deprecated, unencrypted) -JnlpSlaveAgentProtocol2.displayName=Inbound TCP Agent Protocol/2 (deprecated, unencrypted) -JnlpSlaveAgentProtocol3.displayName=Inbound TCP Agent Protocol/3 (deprecated, basic encryption) -JnlpSlaveAgentProtocol4.displayName=Inbound TCP Agent Protocol/4 (TLS encryption) -DeprecatedAgentProtocolMonitor.displayName=Deprecated Agent Protocol Monitor diff --git a/core/src/main/resources/jenkins/slaves/Messages_bg.properties b/core/src/main/resources/jenkins/slaves/Messages_bg.properties deleted file mode 100644 index 459672fa3c3d..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_bg.properties +++ /dev/null @@ -1,37 +0,0 @@ -# The MIT License -# -# Bulgarian translation: Copyright (c) 2016, 2017, Alexander Shopov -# -# 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. - -# Java Web Start Agent Protocol/3 -JnlpSlaveAgentProtocol3.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 3 -# Java Web Start Agent Protocol/1 -JnlpSlaveAgentProtocol.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 1 -# Java Web Start Agent Protocol/2 -JnlpSlaveAgentProtocol2.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 2 -# Java Web Start Agent Protocol/4 (TLS encryption) -JnlpSlaveAgentProtocol4.displayName=\ - Протокол за стартиране на агента за Java през уeб, версия 4 (шифриране с TLS) -# Deprecated Agent Protocol Monitor -DeprecatedAgentProtocolMonitor.displayName=\ - Датчик за остарели протоколи за стартиране на агента за Java през уeб diff --git a/core/src/main/resources/jenkins/slaves/Messages_de.properties b/core/src/main/resources/jenkins/slaves/Messages_de.properties deleted file mode 100644 index cceceebe685f..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_de.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2017 Daniel Beck and a number of other of contributors -# -# 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. - -# Java Web Start Agent Protocol/4 (TLS encryption) -JnlpSlaveAgentProtocol4.displayName=Java-Web-Start-Agentenprotokoll Version 4 (TLS-Verschlüsselung) -JnlpSlaveAgentProtocol2.displayName=Java-Web-Start-Agentenprotokoll Version 2 (unverschlüsselt) -JnlpSlaveAgentProtocol.displayName=Java-Web-Start-Agentenprotokoll Version 1 (unverschlüsselt) -JnlpSlaveAgentProtocol3.displayName=Java-Web-Start-Agentenprotokoll Version 3 (einfache Verschlüsselung) diff --git a/core/src/main/resources/jenkins/slaves/Messages_fr.properties b/core/src/main/resources/jenkins/slaves/Messages_fr.properties deleted file mode 100644 index babe83c53fa8..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_fr.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# 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. - -JnlpSlaveAgentProtocol.displayName=Inbound TCP Agent Protocol/1 (obsolète, non chiffré) -JnlpSlaveAgentProtocol2.displayName=Inbound TCP Agent Protocol/2 (obsolète, non chiffré) -JnlpSlaveAgentProtocol3.displayName=Inbound TCP Agent Protocol/3 (obsolète, chiffrement basique) -JnlpSlaveAgentProtocol4.displayName=Inbound TCP Agent Protocol/4 (chiffrement TLS) -DeprecatedAgentProtocolMonitor.displayName=Moniteur de protocole obsolète d''agent diff --git a/core/src/main/resources/jenkins/slaves/Messages_it.properties b/core/src/main/resources/jenkins/slaves/Messages_it.properties deleted file mode 100644 index 15a4fd1854fa..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_it.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Italian localization plugin for Jenkins -# Copyright © 2020 Alessandro Menti -# -# 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. - -DeprecatedAgentProtocolMonitor.displayName=Componente di monitoraggio \ - protocolli deprecati agenti -JnlpSlaveAgentProtocol.displayName=Protocollo in ingresso TCP per agenti, \ - versione 1 (deprecato, senza crittografia) -JnlpSlaveAgentProtocol2.displayName=Protocollo in ingresso TCP per agenti, \ - versione 2 (deprecato, senza crittografia) -JnlpSlaveAgentProtocol3.displayName=Protocollo in ingresso TCP per agenti, \ - versione 3 (deprecato, con crittografia di base) -JnlpSlaveAgentProtocol4.displayName=Protocollo in ingresso TCP per agenti, \ - versione 4 (crittografia TLS) diff --git a/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties b/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties deleted file mode 100644 index c185388bf156..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_pt_BR.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors -# -# 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. - -DeprecatedAgentProtocolMonitor.displayName=Monitor de protocolo de agente descontinuado -JnlpSlaveAgentProtocol3.displayName=Protocolo de agente TCP de entrada/3 (descontinuado, criptografia básica) -JnlpSlaveAgentProtocol2.displayName=Protocolo de agente TCP de entrada/2 (descontinuado, sem criptografia) -JnlpSlaveAgentProtocol.displayName=Protocolo de agente TCP de entrada/1 (descontinuado, sem criptografia) -JnlpSlaveAgentProtocol4.displayName=Protocolo de agente TCP de entrada/4 (criptografia via TLS) diff --git a/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties b/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties deleted file mode 100644 index 4274099d00a1..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_sv_SE.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# 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. - -JnlpSlaveAgentProtocol.displayName=Ingående TCP-agentsprotokoll/1 (inaktuell, ej krypterat) -JnlpSlaveAgentProtocol2.displayName=Ingående TCP-agentsprotokoll/2 (inaktuell, ej krypterat) -JnlpSlaveAgentProtocol3.displayName=Ingående TCP-agentsprotokoll/3 (inaktuell, enkel kryptering) -JnlpSlaveAgentProtocol4.displayName=Ingående TCP-agentsprotokoll/4 (TLS-kryptering) -DeprecatedAgentProtocolMonitor.displayName=Inaktuell övervakning av agentsprotokoll diff --git a/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties b/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties deleted file mode 100644 index 830e59610c15..000000000000 --- a/core/src/main/resources/jenkins/slaves/Messages_zh_TW.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright 2016 Stephen Connolly -# -# 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. - -JnlpSlaveAgentProtocol.displayName=連入 TCP Agent 通訊協定/1 (棄用、未加密) -JnlpSlaveAgentProtocol2.displayName=連入 TCP Agent 通訊協定/2 (棄用、未加密) -JnlpSlaveAgentProtocol3.displayName=連入 TCP Agent 通訊協定/3 (棄用、基本加密) -JnlpSlaveAgentProtocol4.displayName=連入 TCP Agent 通訊協定/4 (TLS 加密) -DeprecatedAgentProtocolMonitor.displayName=已棄用的 Agent 通訊協定監視器 diff --git a/test/src/test/java/jenkins/AgentProtocolTest.java b/test/src/test/java/jenkins/AgentProtocolTest.java deleted file mode 100644 index 531281109db7..000000000000 --- a/test/src/test/java/jenkins/AgentProtocolTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2017 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; - -import static org.junit.Assert.fail; - -import edu.umd.cs.findbugs.annotations.CheckForNull; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import jenkins.model.Jenkins; -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.recipes.LocalData; - -/** - * Tests for {@link AgentProtocol}. - * - * @author Oleg Nenashev - */ -public class AgentProtocolTest { - - @Rule - public JenkinsRule j = new JenkinsRule(); - - @Test - @LocalData - @Issue("JENKINS-45841") - public void testShouldNotOverrideUserConfiguration() throws Exception { - assertEnabled("JNLP4-connect"); - assertDisabled("JNLP2-connect", "JNLP3-connect"); - assertProtocols(true, "System protocols should be always enabled", "Ping"); - } - - private void assertEnabled(String ... protocolNames) { - assertProtocols(true, null, protocolNames); - } - - private void assertDisabled(String ... protocolNames) { - assertProtocols(false, null, protocolNames); - } - - private void assertProtocols(boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) { - assertProtocols(j.jenkins, shouldBeEnabled, why, protocolNames); - } - - public static void assertProtocols(Jenkins jenkins, boolean shouldBeEnabled, @CheckForNull String why, String ... protocolNames) { - Set agentProtocols = jenkins.getAgentProtocols(); - List failedChecks = new ArrayList<>(); - for (String protocol : protocolNames) { - if (shouldBeEnabled && !agentProtocols.contains(protocol)) { - failedChecks.add(protocol); - } - if (!shouldBeEnabled && agentProtocols.contains(protocol)) { - failedChecks.add(protocol); - } - } - - if (!failedChecks.isEmpty()) { - String message = String.format("Protocol(s) are not %s: %s. %sEnabled protocols: %s", - shouldBeEnabled ? "enabled" : "disabled", - String.join(",", failedChecks), - why != null ? "Reason: " + why + ". " : "", - String.join(",", agentProtocols)); - fail(message); - } - } - -} diff --git a/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java b/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java index 76f11d455f4d..e4c031922ded 100644 --- a/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java +++ b/test/src/test/java/jenkins/agents/JnlpProtocol4ProxyHandlerTest.java @@ -94,11 +94,6 @@ public String getName() { return JnlpProtocol4ProxyHandler.NAME; } - @Override - public String getDisplayName() { - return "Test handler"; - } - @Override public void handle(Socket socket) throws IOException, InterruptedException { var agentIO = socket.getChannel(); diff --git a/test/src/test/java/jenkins/model/JenkinsTest.java b/test/src/test/java/jenkins/model/JenkinsTest.java index c44b12cdd037..3f3f615a6c5f 100644 --- a/test/src/test/java/jenkins/model/JenkinsTest.java +++ b/test/src/test/java/jenkins/model/JenkinsTest.java @@ -32,19 +32,15 @@ import static org.hamcrest.Matchers.arrayContaining; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeFalse; -import edu.umd.cs.findbugs.annotations.CheckForNull; import hudson.ExtensionList; import hudson.Functions; import hudson.XmlFile; @@ -76,7 +72,6 @@ import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.Socket; import java.net.URI; import java.net.URL; import java.nio.file.Files; @@ -84,7 +79,6 @@ import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.HashSet; @@ -94,7 +88,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; -import jenkins.AgentProtocol; import org.apache.commons.io.FileUtils; import org.htmlunit.FailingHttpStatusCodeException; import org.htmlunit.HttpMethod; @@ -600,174 +593,6 @@ public void onOnline(Computer c, TaskListener listener) throws IOException, Inte } } - @Test - @Issue("JENKINS-39465") - public void agentProtocols_singleEnable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.add(MockOptInProtocol1.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - assertProtocolEnabled(MockOptInProtocol1.NAME, "before the roundtrip"); - - j.jenkins.reload(); - - final Set reloadedProtocols = j.jenkins.getAgentProtocols(); - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, reloadedProtocols); - assertThat("We should have additional enabled protocol", - reloadedProtocols.size(), equalTo(defaultProtocols.size() + 1)); - assertProtocolEnabled(MockOptInProtocol1.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_multipleDisable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - assertProtocolEnabled(MockOptOutProtocol1.NAME, "after startup"); - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.remove(MockOptOutProtocol1.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - assertProtocolDisabled(MockOptOutProtocol1.NAME, "before the roundtrip"); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - j.jenkins.reload(); - - assertNotSame("The protocol list must have been really refreshed", agentProtocolsBeforeReload, j.jenkins.getAgentProtocols()); - assertThat("We should have disabled one protocol", - j.jenkins.getAgentProtocols().size(), equalTo(defaultProtocols.size() - 1)); - - assertProtocolDisabled(MockOptOutProtocol1.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_multipleEnable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.add(MockOptInProtocol1.NAME); - newProtocols.add(MockOptInProtocol2.NAME); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - assertProtocolEnabled(MockOptInProtocol1.NAME, "before the roundtrip"); - assertProtocolEnabled(MockOptInProtocol2.NAME, "before the roundtrip"); - - j.jenkins.reload(); - - final Set reloadedProtocols = j.jenkins.getAgentProtocols(); - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, reloadedProtocols); - assertThat("There should be two additional enabled protocols", - reloadedProtocols.size(), equalTo(defaultProtocols.size() + 2)); - assertProtocolEnabled(MockOptInProtocol1.NAME, "after the roundtrip"); - assertProtocolEnabled(MockOptInProtocol2.NAME, "after the roundtrip"); - } - - @Test - @Issue("JENKINS-39465") - public void agentProtocols_singleDisable_roundtrip() throws Exception { - final Set defaultProtocols = Collections.unmodifiableSet(j.jenkins.getAgentProtocols()); - final String protocolToDisable1 = MockOptOutProtocol1.NAME; - final String protocolToDisable2 = MockOptOutProtocol2.NAME; - - final Set newProtocols = new HashSet<>(defaultProtocols); - newProtocols.remove(protocolToDisable1); - newProtocols.remove(protocolToDisable2); - j.jenkins.setAgentProtocols(newProtocols); - j.jenkins.save(); - assertProtocolDisabled(protocolToDisable1, "before the roundtrip"); - assertProtocolDisabled(protocolToDisable2, "before the roundtrip"); - final Set agentProtocolsBeforeReload = j.jenkins.getAgentProtocols(); - j.jenkins.reload(); - - assertNotSame("The protocol list must have been really reloaded", agentProtocolsBeforeReload, j.jenkins.getAgentProtocols()); - assertThat("We should have disabled two protocols", - j.jenkins.getAgentProtocols().size(), equalTo(defaultProtocols.size() - 2)); - assertProtocolDisabled(protocolToDisable1, "after the roundtrip"); - assertProtocolDisabled(protocolToDisable2, "after the roundtrip"); - } - - private void assertProtocolDisabled(String protocolName, @CheckForNull String stage) { - assertThat(protocolName + " must be disabled. Stage=" + (stage != null ? stage : "undefined"), - j.jenkins.getAgentProtocols(), not(hasItem(protocolName))); - } - - private void assertProtocolEnabled(String protocolName, @CheckForNull String stage) { - assertThat(protocolName + " must be enabled. Stage=" + (stage != null ? stage : "undefined"), - j.jenkins.getAgentProtocols(), hasItem(protocolName)); - } - - @TestExtension - public static class MockOptInProtocol1 extends MockOptInProtocol { - - static final String NAME = "MOCK-OPTIN-1"; - - @Override - public String getName() { - return NAME; - } - } - - @TestExtension - public static class MockOptInProtocol2 extends MockOptInProtocol { - - static final String NAME = "MOCK-OPTIN-2"; - - @Override - public String getName() { - return NAME; - } - } - - private abstract static class MockOptInProtocol extends AgentProtocol { - @Override - public boolean isOptIn() { - return true; - } - - @Override - public void handle(Socket socket) throws IOException, InterruptedException { - throw new IOException("This is a mock agent protocol. It cannot be used for connection"); - } - } - - @TestExtension - public static class MockOptOutProtocol1 extends MockOptOutProtocol { - - static final String NAME = "MOCK-OPTOUT-1"; - - @Override - public String getName() { - return NAME; - } - } - - @TestExtension - public static class MockOptOutProtocol2 extends MockOptOutProtocol { - - static final String NAME = "MOCK-OPTOUT-2"; - - @Override - public String getName() { - return NAME; - } - } - - private abstract static class MockOptOutProtocol extends AgentProtocol { - @Override - public boolean isOptIn() { - return false; - } - - @Override - public void handle(Socket socket) throws IOException, InterruptedException { - throw new IOException("This is a mock agent protocol. It cannot be used for connection"); - } - } - @Test public void getComputers() throws Exception { List agents = new ArrayList<>(); diff --git a/test/src/test/resources/jenkins/AgentProtocolTest/config.xml b/test/src/test/resources/jenkins/AgentProtocolTest/config.xml deleted file mode 100644 index b072a16fa96e..000000000000 --- a/test/src/test/resources/jenkins/AgentProtocolTest/config.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 1.0 - 2 - NORMAL - true - - - false - - ${ITEM_ROOTDIR}/workspace - ${ITEM_ROOTDIR}/builds - - - - - - 0 - - - - all - false - false - - - - all - 0 - - JNLP4-connect - - - JNLP2-connect - JNLP3-connect - - - - - \ No newline at end of file From 5ab2262790c72626719a369787ceb29580caf2cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 09:20:53 -0700 Subject: [PATCH 132/160] Update jenkins/ath Docker tag to v6058 (#9911) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index b1159344ffd5..d57b7834ee32 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6052.v122b_b_a_b_94b_60 +export ATH_VERSION=6058.v6b_05a_06f312a_ if [[ $# -eq 0 ]]; then export JDK=17 From 9e256de2d1e13dbf436a7cd51b8ed26d01b52a77 Mon Sep 17 00:00:00 2001 From: Allan Burdajewicz Date: Sat, 26 Oct 2024 07:31:35 +1000 Subject: [PATCH 133/160] [JENKINS-73845] Fix OperatingSystemEndOfLifeAdminMonitor endOfLifeDate displayed on first warning day (#9908) * [JENKINS-73845] Fix OperatingSystemEndOfLifeAdminMonitor endOfLifeDate displayed on first warning day * [JENKINS-73845] Add test * [JENKINS-73845] Improve test --- .../OperatingSystemEndOfLifeAdminMonitor.java | 2 +- ...ratingSystemEndOfLifeAdminMonitorTest.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java index 0ff40d018225..50cf3c9da6f0 100644 --- a/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java +++ b/core/src/main/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitor.java @@ -145,7 +145,7 @@ void readOperatingSystemList(String initialOperatingSystemJson) throws IOExcepti } LOGGER.log(Level.FINE, "Matched operating system {0}", name); - if (startDate.isBefore(LocalDate.now())) { + if (!startDate.isAfter(LocalDate.now())) { this.operatingSystemName = name; this.documentationUrl = buildDocumentationUrl(this.operatingSystemName); this.endOfLifeDate = endOfLife.toString(); diff --git a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java index 5cd09790cdd9..84bc3790241a 100644 --- a/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java +++ b/core/src/test/java/jenkins/monitor/OperatingSystemEndOfLifeAdminMonitorTest.java @@ -28,6 +28,7 @@ import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; @@ -35,15 +36,24 @@ import java.io.File; import java.io.IOException; import java.net.URL; +import java.nio.file.Files; +import java.time.LocalDate; import java.util.Random; import java.util.stream.Stream; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.junit.Rule; import org.junit.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import org.junit.rules.TemporaryFolder; public class OperatingSystemEndOfLifeAdminMonitorTest { + @Rule + public TemporaryFolder tmp = new TemporaryFolder(); + private final OperatingSystemEndOfLifeAdminMonitor monitor; private final Random random = new Random(); private final String PREFIX = "administrativeMonitor/"; @@ -210,6 +220,21 @@ public void testReadOperatingSystemNames(String fileName, String pattern, String assertThat(monitor.readOperatingSystemName(releaseFile, pattern), is(job)); } + @Test + public void testReadOperatingSystemListOnWarningDate() throws Exception { + File dataFile = tmp.newFile(); + Files.writeString(dataFile.toPath(), "PRETTY_NAME=\"Test OS\""); + JSONObject eolIn6Months = new JSONObject(); + eolIn6Months.put("pattern", "Test OS"); + eolIn6Months.put("endOfLife", LocalDate.now().plusMonths(6).toString()); + eolIn6Months.put("file", dataFile.getAbsolutePath()); + JSONArray jsonArray = new JSONArray(); + jsonArray.add(eolIn6Months); + monitor.readOperatingSystemList(jsonArray.toString()); + assertTrue(monitor.isActivated()); + assertEquals(LocalDate.now().plusMonths(6).toString(), monitor.getEndOfLifeDate()); + } + @Test public void testReadOperatingSystemNameMissingFile() { assertThat(monitor.readOperatingSystemName(new File("/this/file/does/not/exist"), ".*"), is("")); From 9c228bb3213e35465b85ffad8a5b26bd0406df76 Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 26 Oct 2024 00:31:56 +0300 Subject: [PATCH 134/160] Turkish localization fixes for security configuration (#9890) * Turkish localization fixes for security configuration * Turkish localization for success page after creating first user --- .../ReverseProxySetupMonitor/message_tr.properties | 2 +- .../GlobalSecurityConfiguration/index_tr.properties | 3 ++- .../HudsonPrivateSecurityRealm/firstUser_tr.properties | 1 + .../HudsonPrivateSecurityRealm/success_tr.properties | 2 ++ .../resources/hudson/security/Messages_tr.properties | 10 +++++++++- .../SetupWizard/setupWizardFirstUser_tr.properties | 1 + 6 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties create mode 100644 core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties index 2ac4acc9ebbe..2de2187639d5 100644 --- a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_tr.properties @@ -1,4 +1,4 @@ # This file is under the MIT License by authors -More\ Info=Daha fazla Bilgi +More\ Info=Daha Fazla Bilgi blurb=Ters vekil sunucu yapılandırmanız bozuk görünüyor. diff --git a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties index 1b12b9eb167c..7f79912af880 100644 --- a/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties +++ b/core/src/main/resources/hudson/security/GlobalSecurityConfiguration/index_tr.properties @@ -20,8 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Authentication=Kimlik Doğrulama Disable\ remember\ me=Beni hatırla özelliğini devre dışı bırak -Markup\ Formatter= +Markup\ Formatter=Metin Formatlayıcısı Access\ Control=Erişim Kontrolü Security\ Realm=Güvenlik Alanı Authorization=Yetkilendirme diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties new file mode 100644 index 000000000000..73adeed2eeaf --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_tr.properties @@ -0,0 +1 @@ +Create\ First\ Admin\ User=İlk Yönetici Kullanıcıyı Oluştur diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties new file mode 100644 index 000000000000..2320478a1e6c --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success_tr.properties @@ -0,0 +1,2 @@ +Success=Tebrikler +description=Giriş yaptınız. Ana sayfaya geri dönün. diff --git a/core/src/main/resources/hudson/security/Messages_tr.properties b/core/src/main/resources/hudson/security/Messages_tr.properties index eefcbfd2ea1c..b3303fcafc21 100644 --- a/core/src/main/resources/hudson/security/Messages_tr.properties +++ b/core/src/main/resources/hudson/security/Messages_tr.properties @@ -22,7 +22,7 @@ GlobalSecurityConfiguration.DisplayName=Güvenlik GlobalSecurityConfiguration.Description=Jenkins''i güvenli hale getir; sisteme erişim izni olanları belirle. -LegacyAuthorizationStrategy.DisplayName=Miras modu +LegacyAuthorizationStrategy.DisplayName=Eski yöntem HudsonPrivateSecurityRealm.DisplayName=Jenkins''in kendi kullanıcı veritabanı HudsonPrivateSecurityRealm.Details.DisplayName=Şifre @@ -32,7 +32,15 @@ HudsonPrivateSecurityRealm.Details.PasswordError=\ HudsonPrivateSecurityRealm.ManageUserLinks.DisplayName=Kullanıcılar HudsonPrivateSecurityRealm.ManageUserLinks.Description=Jenkins''de oturum açabilecek kullanıcıları oluşturun, silin veya değiştirin. +FullControlOnceLoggedInAuthorizationStrategy.DisplayName=Giriş yapmış kullanıcılar her şeyi yapabilir + +AuthorizationStrategy.DisplayName=Herkes her şeyi yapabilir + +LegacySecurityRealm.Displayname=Servlet konteynerine devredin + UserDetailsServiceProxy.UnableToQuery=Kullanıcı bilgisi alınamıyor: {0} # not in use Permission.Permissions.Title=Mevcut Değil + +NoneSecurityRealm.DisplayName=Hiçbiri diff --git a/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties new file mode 100644 index 000000000000..73adeed2eeaf --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_tr.properties @@ -0,0 +1 @@ +Create\ First\ Admin\ User=İlk Yönetici Kullanıcıyı Oluştur From 1eea693eb23b9d5870910446727959e4e9188e9e Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 26 Oct 2024 00:32:10 +0300 Subject: [PATCH 135/160] Translate user property categories to Turkish (#9891) --- .../hudson/model/AllView/noJob_tr.properties | 1 + .../model/userproperty/Messages_tr.properties | 13 +++++++++++++ .../index_tr.properties | 1 + .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../index_tr.properties | 2 ++ .../main/resources/lib/form/helpLink_tr.properties | 2 ++ .../resources/lib/form/saveApplyBar_tr.properties | 1 + 9 files changed, 26 insertions(+) create mode 100644 core/src/main/resources/hudson/model/userproperty/Messages_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties create mode 100644 core/src/main/resources/lib/form/helpLink_tr.properties create mode 100644 core/src/main/resources/lib/form/saveApplyBar_tr.properties diff --git a/core/src/main/resources/hudson/model/AllView/noJob_tr.properties b/core/src/main/resources/hudson/model/AllView/noJob_tr.properties index f11e7258733e..31dd63cf187c 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_tr.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_tr.properties @@ -29,6 +29,7 @@ setUpDistributedBuilds=Dağıtılmış bir yapılandırma kurun setUpAgent=Bir ajan kur setUpCloud=Bir bulut ayarla learnMoreDistributedBuilds=Dağıtılmış yapılandırmalar hakkında daha fazla bilgi edinin +thisFolderIsEmpty=Bu klasör boş startBuilding=Yazılım projenizi yapılandırmaya başlayın diff --git a/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties b/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties new file mode 100644 index 000000000000..8144297c655b --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/Messages_tr.properties @@ -0,0 +1,13 @@ +UserPropertyCategory.Account.DisplayName=Hesap +UserPropertyCategory.Appearance.DisplayName=Görünüm +UserPropertyCategory.Experimental.DisplayName=Deneyler +UserPropertyCategory.Invisible.DisplayName=Görünmez +UserPropertyCategory.Preferences.DisplayName=Tercihler +UserPropertyCategory.Unclassified.DisplayName=Sınıflandırılmamış +UserPropertyCategory.Security.DisplayName=Güvenlik + +UserPropertyCategoryAccountAction.DisplayName=Hesap +UserPropertyCategoryAppearanceAction.DisplayName=Görünüm +UserPropertyCategoryExperimentalAction.DisplayName=Deneyler +UserPropertyCategoryPreferencesAction.DisplayName=Tercihler +UserPropertyCategorySecurityAction.DisplayName=Güvenlik diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties index ead6d67dee06..14b810099914 100644 --- a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAccountAction/index_tr.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +title=Hesap Full\ name=İsminiz Description=Açıklama Save=Kaydet diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties new file mode 100644 index 000000000000..f9e350543d71 --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryAppearanceAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Görünüm +warningNoItems=Yapılandırılacak görünüm öğesi yok. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties new file mode 100644 index 000000000000..b645842a1872 --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryExperimentalAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Deneyler +warningNoItems=Şu anda herhangi bir deney mevcut değil. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties new file mode 100644 index 000000000000..5108f7b2cc0b --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategoryPreferencesAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Tercihler +warningNoItems=Tercih bulunamadı. diff --git a/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties new file mode 100644 index 000000000000..21a255c0268e --- /dev/null +++ b/core/src/main/resources/hudson/model/userproperty/UserPropertyCategorySecurityAction/index_tr.properties @@ -0,0 +1,2 @@ +title=Güvenlik +warningNoItems=Güvenlik yapılandırması mevcut değil. diff --git a/core/src/main/resources/lib/form/helpLink_tr.properties b/core/src/main/resources/lib/form/helpLink_tr.properties new file mode 100644 index 000000000000..7f6685c75dde --- /dev/null +++ b/core/src/main/resources/lib/form/helpLink_tr.properties @@ -0,0 +1,2 @@ +Help=Yardım +Help\ for\ feature\:=Özellik için yardım: diff --git a/core/src/main/resources/lib/form/saveApplyBar_tr.properties b/core/src/main/resources/lib/form/saveApplyBar_tr.properties new file mode 100644 index 000000000000..c065a247209d --- /dev/null +++ b/core/src/main/resources/lib/form/saveApplyBar_tr.properties @@ -0,0 +1 @@ +Save=Kaydet From 97e10096736aa8c49e7679c770eb582fe78246cd Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Fri, 25 Oct 2024 23:32:29 +0200 Subject: [PATCH 136/160] When calling Nodes#setNodes, NodeListener methods should be called as required (#9905) * When calling Nodes#setNodes, NodeListener methods should be called as required For example, when loading a new casc configuration, it calls Nodes#setNodes, and the NodeListener methods were not called, causing listener implementations not to be notified according to the new state. * Fix reviews --- core/src/main/java/jenkins/model/Nodes.java | 38 ++++---- .../test/java/jenkins/model/NodesTest.java | 86 ++++++++++++++++++- 2 files changed, 106 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/jenkins/model/Nodes.java b/core/src/main/java/jenkins/model/Nodes.java index e15d391c4975..a01c3fc342b5 100644 --- a/core/src/main/java/jenkins/model/Nodes.java +++ b/core/src/main/java/jenkins/model/Nodes.java @@ -43,10 +43,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.TreeMap; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; @@ -114,26 +113,31 @@ public List getNodes() { * @throws IOException if the new list of nodes could not be persisted. */ public void setNodes(final @NonNull Collection nodes) throws IOException { - Set toRemove = new HashSet<>(); - Queue.withLock(new Runnable() { - @Override - public void run() { - toRemove.addAll(Nodes.this.nodes.keySet()); - for (Node n : nodes) { - final String name = n.getNodeName(); + Map toRemove = new HashMap<>(); + Queue.withLock(() -> { + toRemove.putAll(Nodes.this.nodes); + for (var node : nodes) { + final var name = node.getNodeName(); + var oldNode = toRemove.get(name); + if (oldNode != null) { + NodeListener.fireOnUpdated(oldNode, node); toRemove.remove(name); - Nodes.this.nodes.put(name, n); - n.onLoad(Nodes.this, name); + } else { + NodeListener.fireOnCreated(node); } - Nodes.this.nodes.keySet().removeAll(toRemove); - jenkins.updateComputerList(); - jenkins.trimLabels(); + Nodes.this.nodes.put(name, node); + node.onLoad(Nodes.this, name); } + Nodes.this.nodes.keySet().removeAll(toRemove.keySet()); + jenkins.updateComputerList(); + jenkins.trimLabels(); }); save(); - for (String name : toRemove) { - LOGGER.fine(() -> "deleting " + new File(getRootDir(), name)); - Util.deleteRecursive(new File(getRootDir(), name)); + for (var deletedNode : toRemove.values()) { + NodeListener.fireOnDeleted(deletedNode); + var nodeName = deletedNode.getNodeName(); + LOGGER.fine(() -> "deleting " + new File(getRootDir(), nodeName)); + Util.deleteRecursive(new File(getRootDir(), nodeName)); } } diff --git a/test/src/test/java/jenkins/model/NodesTest.java b/test/src/test/java/jenkins/model/NodesTest.java index c7207b9977c5..ef2bee08ef4a 100644 --- a/test/src/test/java/jenkins/model/NodesTest.java +++ b/test/src/test/java/jenkins/model/NodesTest.java @@ -25,7 +25,10 @@ package jenkins.model; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.sameInstance; @@ -47,6 +50,11 @@ import hudson.slaves.ComputerLauncher; import hudson.slaves.DumbSlave; import java.io.IOException; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; @@ -55,7 +63,6 @@ import org.jvnet.hudson.test.recipes.LocalData; public class NodesTest { - @Rule public JenkinsRule r = new JenkinsRule(); @@ -239,4 +246,81 @@ protected boolean allowLoad(@NonNull Node node) { } } + @Test + public void listenersCalledOnSetNodes() throws URISyntaxException, IOException, Descriptor.FormException { + var agentA = new DumbSlave("nodeA", "temp", r.createComputerLauncher(null)); + var agentB = new DumbSlave("nodeB", "temp", r.createComputerLauncher(null)); + var agentA2 = new DumbSlave("nodeA", "temp2", r.createComputerLauncher(null)); + Jenkins.get().setNodes(List.of(agentA, agentB)); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, empty()); + assertThat(CheckSetNodes.deleted, empty()); + Jenkins.get().setNodes(List.of(agentA2)); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, contains(new DumbSlaveNameAndRemoteFSMatcher(new DumbSlavePair(agentA, agentA2)))); + assertThat(CheckSetNodes.deleted, contains("nodeB")); + Jenkins.get().setNodes(List.of()); + assertThat(CheckSetNodes.created, containsInAnyOrder("nodeA", "nodeB")); + assertThat(CheckSetNodes.updated, contains(new DumbSlaveNameAndRemoteFSMatcher(new DumbSlavePair(agentA, agentA2)))); + assertThat(CheckSetNodes.deleted, containsInAnyOrder("nodeA", "nodeB")); + } + + private record DumbSlavePair(DumbSlave oldNode, DumbSlave newNode) { + @Override + public String toString() { + return "NodePair{" + + "oldNode=" + toStringNode(oldNode) + + ", newNode=" + toStringNode(newNode) + + '}'; + } + + private String toStringNode(DumbSlave node) { + return "(name=" + node.getNodeName() + ",remoteFS=" + node.getRemoteFS() + ")"; + } + } + + @TestExtension("listenersCalledOnSetNodes") + public static class CheckSetNodes extends NodeListener { + private static final List created = new ArrayList<>(); + private static final List updated = new ArrayList<>(); + private static final List deleted = new ArrayList<>(); + + @Override + protected void onCreated(@NonNull Node node) { + created.add(node.getNodeName()); + } + + @Override + protected void onUpdated(@NonNull Node oldOne, @NonNull Node newOne) { + if (oldOne instanceof DumbSlave oldDumbSlave && newOne instanceof DumbSlave newDumbSlave) { + updated.add(new DumbSlavePair(oldDumbSlave, newDumbSlave)); + } + } + + @Override + protected void onDeleted(@NonNull Node node) { + deleted.add(node.getNodeName()); + } + } + + private static class DumbSlaveNameAndRemoteFSMatcher extends TypeSafeMatcher { + private final DumbSlavePair expected; + + public DumbSlaveNameAndRemoteFSMatcher(DumbSlavePair expected) { + this.expected = expected; + } + + @Override + protected boolean matchesSafely(DumbSlavePair dumbSlavePair) { + return expected.oldNode.getNodeName().equals(dumbSlavePair.oldNode.getNodeName()) + && expected.oldNode.getRemoteFS().equals(dumbSlavePair.oldNode.getRemoteFS()) + && expected.newNode.getNodeName().equals(dumbSlavePair.newNode.getNodeName()) + && expected.newNode.getRemoteFS().equals(dumbSlavePair.newNode.getRemoteFS()); + } + + @Override + public void describeTo(Description description) { + description.appendText("NodePair(").appendValue(expected).appendText(")"); + } + } } From 1405d8b7f5dc0d79ed44d177e093d0cd306fde9c Mon Sep 17 00:00:00 2001 From: xndcn Date: Sat, 26 Oct 2024 05:32:52 +0800 Subject: [PATCH 137/160] Add note about environment variable in parameter file.html (#9909) --- war/src/main/webapp/help/parameter/file.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/war/src/main/webapp/help/parameter/file.html b/war/src/main/webapp/help/parameter/file.html index ccf5b5ffab90..ef4f8d7f8e4a 100644 --- a/war/src/main/webapp/help/parameter/file.html +++ b/war/src/main/webapp/help/parameter/file.html @@ -22,6 +22,15 @@ my.zip .) The name will not include the directory name portion.

+

+ Please note that some shells, such as dash, or /bin/sh provided by dash, + do not make such environment variables with special characters available to + child processes. Try using shebang like + #!/bin/bash + in shell script and use + $(printenv abc.zip) + to get the original file name. +

File upload is optional. If a user chooses not to upload anything, Jenkins will simply skips this parameter and will not place anything (but it also From 1474f6a778e854a80132ee4bae62fc2b5babf5c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:33:24 -0600 Subject: [PATCH 138/160] Update dependency org.jenkins-ci.plugins:script-security to v1366 (#9913) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 8f1d5f20c59a..957127ed55c3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1365.v4778ca_84b_de5 + 1366.vd44b_49a_5c85c org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index d4ed852e7721..2d447fd7776b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1365.v4778ca_84b_de5 + 1366.vd44b_49a_5c85c hpi From e553af07ec0f3224fd2cda69e2301a79f45cfd56 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:33:55 -0600 Subject: [PATCH 139/160] Update babel monorepo to v7.25.9 (#9912) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +- yarn.lock | 1194 +++++++++++++++++++++++--------------------------- 2 files changed, 561 insertions(+), 639 deletions(-) diff --git a/package.json b/package.json index 0cf833ecff3d..b4babc069cc4 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,9 @@ "lint": "yarn lint:js && yarn lint:css" }, "devDependencies": { - "@babel/cli": "7.25.7", - "@babel/core": "7.25.8", - "@babel/preset-env": "7.25.8", + "@babel/cli": "7.25.9", + "@babel/core": "7.25.9", + "@babel/preset-env": "7.25.9", "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index 52d95f0bf98b..113ee9042964 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,9 +15,9 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:7.25.7": - version: 7.25.7 - resolution: "@babel/cli@npm:7.25.7" +"@babel/cli@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/cli@npm:7.25.9" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -38,121 +38,123 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/bbbc53eef15844b0bfb737d7d134f979d42c51a269e2aee994b02eb9216a22e8dd3d790d5ae9f5b5c003e01eccfc164c14aaa1ad989695e0154f66a588f77d42 + checksum: 10c0/2e8228c3715e220fa902888c643ce1a89c4ee90be3d9f7a31218d5bb2500456e0cef12cb90fd5877ab3e5a4498df8f27670425d346422a3eb52052fd3184d520 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/code-frame@npm:7.25.7" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/code-frame@npm:7.26.0" dependencies: - "@babel/highlight": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/compat-data@npm:7.25.8" - checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/compat-data@npm:7.26.0" + checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard -"@babel/core@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/core@npm:7.25.8" +"@babel/core@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/core@npm:7.25.9" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helpers": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.8" - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.8" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helpers": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" 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: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d languageName: node linkType: hard -"@babel/generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/generator@npm:7.25.7" +"@babel/generator@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/generator@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.7" + "@babel/parser": "npm:^7.26.0" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248 + "@babel/types": "npm:^7.25.9" + checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-compilation-targets@npm:7.25.7" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2 + checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" regexpu-core: "npm:^6.1.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4 + checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef languageName: node linkType: hard @@ -171,223 +173,210 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-imports@npm:7.25.7" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-module-transforms@npm:7.25.7" +"@babel/helper-module-transforms@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.25.7" - checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b + "@babel/types": "npm:^7.25.9" + checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-plugin-utils@npm:7.25.7" - checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-wrap-function": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f + checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-replace-supers@npm:7.25.7" +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.25.7" - "@babel/helper-optimise-call-expression": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b + checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-simple-access@npm:7.25.7" +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-string-parser@npm:7.25.7" - checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-identifier@npm:7.25.7" - checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-validator-option@npm:7.25.7" - checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helper-wrap-function@npm:7.25.7" - dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755 +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard -"@babel/helpers@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/helpers@npm:7.25.7" +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" dependencies: - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 languageName: node linkType: hard -"@babel/highlight@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/highlight@npm:7.25.7" +"@babel/helpers@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard -"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/parser@npm:7.25.8" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/parser@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.8" + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + checksum: 10c0/05619e239be811f4d8a9f471534c0d7dbc44faf38f6a6445663710982d2f9b057be43b4d18906d4e28830958752bdadbf88903abf687304a2bda86c4b3489455 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904 + checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2 + checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65 + checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4 + checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65 + checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272 languageName: node linkType: hard @@ -400,25 +389,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7" +"@babel/plugin-syntax-import-assertions@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690 + checksum: 10c0/525b174e60b210d96c1744c1575fc2ddedcc43a479cba64a5344cf77bd0541754fc58120b5a11ff832ba098437bb05aa80900d1f49bb3d888c5e349a4a3a356e languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" +"@babel/plugin-syntax-import-attributes@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 + checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 languageName: node linkType: hard @@ -434,649 +423,649 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935 + checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-remap-async-to-generator": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88 + checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7" +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-module-imports": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-remap-async-to-generator": "npm:^7.25.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821 + checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb + checksum: 10c0/e92ba0e3d72c038513844d8fca1cc8437dcb35cd42778e97fd03cb8303380b201468611e7ecfdcae3de33473b2679fe2de1552c5f925d112c5693425cf851f10 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7" +"@babel/plugin-transform-block-scoping@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44 + checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" +"@babel/plugin-transform-class-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47 + checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8" +"@babel/plugin-transform-class-static-block@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612 + checksum: 10c0/cdcf5545ae6514ed75fbd73cccfa209c6a5dfdf0c2bb7bb62c0fb4ec334a32281bcf1bc16ace494d9dbe93feb8bdc0bd3cf9d9ccb6316e634a67056fa13b741b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-classes@npm:7.25.7" +"@babel/plugin-transform-classes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af + checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7" +"@babel/plugin-transform-computed-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf + checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.7" +"@babel/plugin-transform-destructuring@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b + checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7" +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4 + checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7" +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74 + checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475 + checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8" +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754 + checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e + checksum: 10c0/3b42f65bab3fee28c385115ce6bcb6ba544dff187012df408a432c9fb44c980afd898911020c723dc1c9257aaf3d7d0131ad83ba15102bf30ad9a86fc2a8a912 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57 + checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-for-of@npm:7.25.7" +"@babel/plugin-transform-for-of@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277 + checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-function-name@npm:7.25.7" +"@babel/plugin-transform-function-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a + checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.8" +"@babel/plugin-transform-json-strings@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf + checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-literals@npm:7.25.7" +"@babel/plugin-transform-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e + checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e + checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7" +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c + checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356 + checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-simple-access": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c + checksum: 10c0/6ce771fb04d4810257fc8900374fece877dacaed74b05eaa16ad9224b390f43795c4d046cbe9ae304e1eb5aad035d37383895e3c64496d647c2128d183916e74 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - "@babel/traverse": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb + checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7" +"@babel/plugin-transform-modules-umd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769 + checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52 + checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-new-target@npm:7.25.7" +"@babel/plugin-transform-new-target@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff + checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4 + checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8" +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18 + checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/plugin-transform-parameters": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9 + checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-object-super@npm:7.25.7" +"@babel/plugin-transform-object-super@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-replace-supers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab + checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24 + checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f + checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-parameters@npm:7.25.7" +"@babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422 + checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.7" +"@babel/plugin-transform-private-methods@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732 + checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.8": - version: 7.25.8 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.7" - "@babel/helper-create-class-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79 + checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.25.7" +"@babel/plugin-transform-property-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55 + checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" +"@babel/plugin-transform-regenerator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212 + checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7" +"@babel/plugin-transform-reserved-words@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c + checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4 + checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-spread@npm:7.25.7" +"@babel/plugin-transform-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7 + checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7" +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097 + checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" +"@babel/plugin-transform-template-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139 + checksum: 10c0/5144da6036807bbd4e9d2a8b92ae67a759543929f34f4db9b463448a77298f4a40bf1e92e582db208fe08ee116224806a3bd0bed75d9da404fc2c0af9e6da540 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7" +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b + checksum: 10c0/2b19fd88608589d9bc6b607ff17b06791d35c67ef3249f4659283454e6a9984241e3bd4c4eb72bb8b3d860a73223f3874558b861adb7314aa317c1c6a2f0cafb languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7" +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b + checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b + checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf + checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35 + checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f languageName: node linkType: hard -"@babel/preset-env@npm:7.25.8": - version: 7.25.8 - resolution: "@babel/preset-env@npm:7.25.8" +"@babel/preset-env@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/preset-env@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.8" - "@babel/helper-compilation-targets": "npm:^7.25.7" - "@babel/helper-plugin-utils": "npm:^7.25.7" - "@babel/helper-validator-option": "npm:^7.25.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.25.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.25.7" + "@babel/plugin-syntax-import-assertions": "npm:^7.25.9" + "@babel/plugin-syntax-import-attributes": "npm:^7.25.9" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.25.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8" - "@babel/plugin-transform-async-to-generator": "npm:^7.25.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.7" - "@babel/plugin-transform-class-properties": "npm:^7.25.7" - "@babel/plugin-transform-class-static-block": "npm:^7.25.8" - "@babel/plugin-transform-classes": "npm:^7.25.7" - "@babel/plugin-transform-computed-properties": "npm:^7.25.7" - "@babel/plugin-transform-destructuring": "npm:^7.25.7" - "@babel/plugin-transform-dotall-regex": "npm:^7.25.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-dynamic-import": "npm:^7.25.8" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8" - "@babel/plugin-transform-for-of": "npm:^7.25.7" - "@babel/plugin-transform-function-name": "npm:^7.25.7" - "@babel/plugin-transform-json-strings": "npm:^7.25.8" - "@babel/plugin-transform-literals": "npm:^7.25.7" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8" - "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7" - "@babel/plugin-transform-modules-amd": "npm:^7.25.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7" - "@babel/plugin-transform-modules-umd": "npm:^7.25.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7" - "@babel/plugin-transform-new-target": "npm:^7.25.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8" - "@babel/plugin-transform-numeric-separator": "npm:^7.25.8" - "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8" - "@babel/plugin-transform-object-super": "npm:^7.25.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.8" - "@babel/plugin-transform-parameters": "npm:^7.25.7" - "@babel/plugin-transform-private-methods": "npm:^7.25.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8" - "@babel/plugin-transform-property-literals": "npm:^7.25.7" - "@babel/plugin-transform-regenerator": "npm:^7.25.7" - "@babel/plugin-transform-reserved-words": "npm:^7.25.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7" - "@babel/plugin-transform-spread": "npm:^7.25.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.25.7" - "@babel/plugin-transform-template-literals": "npm:^7.25.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7" - "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.25.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" + "@babel/plugin-transform-block-scoping": "npm:^7.25.9" + "@babel/plugin-transform-class-properties": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.25.9" + "@babel/plugin-transform-classes": "npm:^7.25.9" + "@babel/plugin-transform-computed-properties": "npm:^7.25.9" + "@babel/plugin-transform-destructuring": "npm:^7.25.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" + "@babel/plugin-transform-for-of": "npm:^7.25.9" + "@babel/plugin-transform-function-name": "npm:^7.25.9" + "@babel/plugin-transform-json-strings": "npm:^7.25.9" + "@babel/plugin-transform-literals": "npm:^7.25.9" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" + "@babel/plugin-transform-modules-amd": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-umd": "npm:^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-new-target": "npm:^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" + "@babel/plugin-transform-object-super": "npm:^7.25.9" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/plugin-transform-private-methods": "npm:^7.25.9" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" + "@babel/plugin-transform-property-literals": "npm:^7.25.9" + "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-reserved-words": "npm:^7.25.9" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" + "@babel/plugin-transform-spread": "npm:^7.25.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" + "@babel/plugin-transform-template-literals": "npm:^7.25.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.6" @@ -1085,7 +1074,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72 + checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6 languageName: node linkType: hard @@ -1111,40 +1100,39 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/template@npm:7.25.7" +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" - checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard -"@babel/traverse@npm:^7.25.7": - version: 7.25.7 - resolution: "@babel/traverse@npm:7.25.7" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.25.7" - "@babel/generator": "npm:^7.25.7" - "@babel/parser": "npm:^7.25.7" - "@babel/template": "npm:^7.25.7" - "@babel/types": "npm:^7.25.7" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard -"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4": - version: 7.25.8 - resolution: "@babel/types@npm:7.25.8" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.4.4": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.25.7" - "@babel/helper-validator-identifier": "npm:^7.25.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -2491,15 +2479,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -2783,17 +2762,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 - languageName: node - linkType: hard - "chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -2882,15 +2850,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -2900,13 +2859,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -3449,13 +3401,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -4064,13 +4009,6 @@ __metadata: languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -4385,9 +4323,9 @@ __metadata: version: 0.0.0-use.local resolution: "jenkins-ui@workspace:." dependencies: - "@babel/cli": "npm:7.25.7" - "@babel/core": "npm:7.25.8" - "@babel/preset-env": "npm:7.25.8" + "@babel/cli": "npm:7.25.9" + "@babel/core": "npm:7.25.9" + "@babel/preset-env": "npm:7.25.9" "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" @@ -6745,15 +6683,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - "supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -6899,13 +6828,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" From 23bcc39d049c9226d012f1b6f9109579ea2fb3a5 Mon Sep 17 00:00:00 2001 From: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Date: Fri, 25 Oct 2024 23:35:27 +0200 Subject: [PATCH 140/160] Add Resource Root URL test for permissions assigned to groups (#9906) Co-authored-by: Daniel Beck --- .../jenkins/security/ResourceDomainTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/src/test/java/jenkins/security/ResourceDomainTest.java b/test/src/test/java/jenkins/security/ResourceDomainTest.java index b8f2d551b094..a2eb9de0b89a 100644 --- a/test/src/test/java/jenkins/security/ResourceDomainTest.java +++ b/test/src/test/java/jenkins/security/ResourceDomainTest.java @@ -55,6 +55,34 @@ public void prepare() throws Exception { configuration.setUrl(resourceRoot); } + @Test + public void groupPermissionsWork() throws Exception { + final JenkinsRule.DummySecurityRealm securityRealm = j.createDummySecurityRealm(); + securityRealm.addGroups("alice", "admins"); + j.jenkins.setSecurityRealm(securityRealm); + MockAuthorizationStrategy a = new MockAuthorizationStrategy().grant(Jenkins.READ).everywhere().to("admins"); + j.jenkins.setAuthorizationStrategy(a); + + JenkinsRule.WebClient webClient = j.createWebClient().login("alice"); + + { // DBS directory listing is shown as always + Page page = webClient.goTo("userContent"); + Assert.assertEquals("successful request", 200, page.getWebResponse().getStatusCode()); + Assert.assertTrue("still on the original URL", page.getUrl().toString().contains("/userContent")); + Assert.assertTrue("web page", page.isHtmlPage()); + Assert.assertTrue("complex web page", page.getWebResponse().getContentAsString().contains("javascript")); + } + { // DBS on primary domain forwards to second domain when trying to access a file URL + webClient.setRedirectEnabled(true); + Page page = webClient.goTo("userContent/readme.txt", "text/plain"); + final String resourceResponseUrl = page.getUrl().toString(); + Assert.assertEquals("resource response success", 200, page.getWebResponse().getStatusCode()); + Assert.assertNull("no CSP headers", page.getWebResponse().getResponseHeaderValue("Content-Security-Policy")); + Assert.assertTrue("Served from resource domain", resourceResponseUrl.contains(RESOURCE_DOMAIN)); + Assert.assertTrue("Served from resource action", resourceResponseUrl.contains("static-files")); + } + } + @Test public void secondDomainBasics() throws Exception { JenkinsRule.WebClient webClient = j.createWebClient(); From 9191caca736ac08fc5f8ae0d34e271d3c65e0f1d Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Fri, 25 Oct 2024 15:59:26 -0600 Subject: [PATCH 141/160] Fix yarn lint issue --- war/src/main/webapp/help/parameter/file.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/war/src/main/webapp/help/parameter/file.html b/war/src/main/webapp/help/parameter/file.html index ef4f8d7f8e4a..d641470f015a 100644 --- a/war/src/main/webapp/help/parameter/file.html +++ b/war/src/main/webapp/help/parameter/file.html @@ -23,8 +23,8 @@ .) The name will not include the directory name portion.

- Please note that some shells, such as dash, or /bin/sh provided by dash, - do not make such environment variables with special characters available to + Please note that some shells, such as dash, or /bin/sh provided by dash, do + not make such environment variables with special characters available to child processes. Try using shebang like #!/bin/bash in shell script and use From 6c0422fcda13ab5bad51a5075a81de1ede4398b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:12 -0700 Subject: [PATCH 142/160] Update dependency com.puppycrawl.tools:checkstyle to v10.19.0 (#9917) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cfdc76b2fd56..b492c804f609 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.18.2 + 10.19.0 From bd90608a6fef0459d48483bf6652e9097e9ef277 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:30 -0700 Subject: [PATCH 143/160] Update jenkins/ath Docker tag to v6059 (#9914) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- ath.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ath.sh b/ath.sh index d57b7834ee32..c3a56d5fe4f8 100644 --- a/ath.sh +++ b/ath.sh @@ -6,7 +6,7 @@ set -o xtrace cd "$(dirname "$0")" # https://github.com/jenkinsci/acceptance-test-harness/releases -export ATH_VERSION=6058.v6b_05a_06f312a_ +export ATH_VERSION=6059.veb_df63f37069 if [[ $# -eq 0 ]]; then export JDK=17 From e9f8cd64ddfc63558fe247dcb1fec72656549485 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Oct 2024 11:51:57 -0700 Subject: [PATCH 144/160] Update babel monorepo to v7.26.0 (#9915) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 69 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index b4babc069cc4..892fffca567d 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ }, "devDependencies": { "@babel/cli": "7.25.9", - "@babel/core": "7.25.9", - "@babel/preset-env": "7.25.9", + "@babel/core": "7.26.0", + "@babel/preset-env": "7.26.0", "@eslint/js": "9.13.0", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", diff --git a/yarn.lock b/yarn.lock index 113ee9042964..0bb6566c1c40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,7 +42,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": version: 7.26.0 resolution: "@babel/code-frame@npm:7.26.0" dependencies: @@ -53,37 +53,37 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": version: 7.26.0 resolution: "@babel/compat-data@npm:7.26.0" checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard -"@babel/core@npm:7.25.9": - version: 7.25.9 - resolution: "@babel/core@npm:7.25.9" +"@babel/core@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helpers": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" "@babel/template": "npm:^7.25.9" "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" 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: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d + checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e languageName: node linkType: hard -"@babel/generator@npm:^7.25.9": +"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": version: 7.26.0 resolution: "@babel/generator@npm:7.26.0" dependencies: @@ -193,7 +193,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.9": +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: @@ -300,7 +300,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.9": +"@babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" dependencies: @@ -389,7 +389,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.25.9": +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: @@ -400,7 +400,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.25.9": +"@babel/plugin-syntax-import-attributes@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: @@ -494,7 +494,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.25.9": +"@babel/plugin-transform-class-static-block@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: @@ -886,6 +886,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/4abc1db6c964efafc7a927cda814c7275275afa4b530483e0936fd614de23cb5802f7ca43edaa402008a723d4e7eac282b6f5283aa2eeb3b27da6d6c1dd7f8ed + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" @@ -1000,11 +1012,11 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.25.9": - version: 7.25.9 - resolution: "@babel/preset-env@npm:7.25.9" +"@babel/preset-env@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" dependencies: - "@babel/compat-data": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.26.0" "@babel/helper-compilation-targets": "npm:^7.25.9" "@babel/helper-plugin-utils": "npm:^7.25.9" "@babel/helper-validator-option": "npm:^7.25.9" @@ -1014,8 +1026,8 @@ __metadata: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.25.9" - "@babel/plugin-syntax-import-attributes": "npm:^7.25.9" + "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" + "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" @@ -1023,7 +1035,7 @@ __metadata: "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" "@babel/plugin-transform-block-scoping": "npm:^7.25.9" "@babel/plugin-transform-class-properties": "npm:^7.25.9" - "@babel/plugin-transform-class-static-block": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.26.0" "@babel/plugin-transform-classes": "npm:^7.25.9" "@babel/plugin-transform-computed-properties": "npm:^7.25.9" "@babel/plugin-transform-destructuring": "npm:^7.25.9" @@ -1056,6 +1068,7 @@ __metadata: "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" "@babel/plugin-transform-property-literals": "npm:^7.25.9" "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" "@babel/plugin-transform-reserved-words": "npm:^7.25.9" "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" "@babel/plugin-transform-spread": "npm:^7.25.9" @@ -1074,7 +1087,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6 + checksum: 10c0/26e19dc407cfa1c5166be638b4c54239d084fe15d8d7e6306d8c6dc7bc1decc51070a8dcf28352c1a2feeefbe52a06d193a12e302327ad5f529583df75fb7a26 languageName: node linkType: hard @@ -4324,8 +4337,8 @@ __metadata: resolution: "jenkins-ui@workspace:." dependencies: "@babel/cli": "npm:7.25.9" - "@babel/core": "npm:7.25.9" - "@babel/preset-env": "npm:7.25.9" + "@babel/core": "npm:7.26.0" + "@babel/preset-env": "npm:7.26.0" "@eslint/js": "npm:9.13.0" babel-loader: "npm:9.2.1" clean-webpack-plugin: "npm:4.0.0" From 0ccfa49acb00ba11b3d4454545170788e4069c25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 08:25:28 +0000 Subject: [PATCH 145/160] Update dependency sass to v1.80.4 (#9919) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 892fffca567d..8a1a9347492a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.7", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.3", + "sass": "1.80.4", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index 0bb6566c1c40..dc03156d77e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4359,7 +4359,7 @@ __metadata: postcss-preset-env: "npm:10.0.7" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.3" + sass: "npm:1.80.4" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6336,9 +6336,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.3": - version: 1.80.3 - resolution: "sass@npm:1.80.3" +"sass@npm:1.80.4": + version: 1.80.4 + resolution: "sass@npm:1.80.4" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6346,7 +6346,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd + checksum: 10c0/58ca0f2d10720cde6621ee62f4bdbb537ea2ac572c565d5f02309f8271a5e1e880ad8c163b933e52b22b3dc0550973fb5a6033a500248e6a0d89dd050c1743cf languageName: node linkType: hard From 0a1186061f43b12be78e5148e2b3c8756356d408 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 08:27:26 +0000 Subject: [PATCH 146/160] Update dependency postcss-preset-env to v10.0.8 (#9918) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 523 ++++++++++++++++++++++++++------------------------- 2 files changed, 272 insertions(+), 253 deletions(-) diff --git a/package.json b/package.json index 8a1a9347492a..7d94e1548f40 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", - "postcss-preset-env": "10.0.7", + "postcss-preset-env": "10.0.8", "postcss-scss": "4.0.9", "prettier": "3.3.3", "sass": "1.80.4", diff --git a/yarn.lock b/yarn.lock index dc03156d77e9..f23f92f1318e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1149,13 +1149,13 @@ __metadata: languageName: node linkType: hard -"@csstools/cascade-layer-name-parser@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/cascade-layer-name-parser@npm:2.0.2" +"@csstools/cascade-layer-name-parser@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/cascade-layer-name-parser@npm:2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/2cc840445328400bb3e1e4186e6081e6519a23d9abde36a16c95892b6ad75155b3af3410d79fdda1c53a068384f970cabff4b5f5ba6867578168cbd3419016c8 + checksum: 10c0/a0f0d6c94122d0a82b0da94ee2619915a9e6e98211de6e1f28afebe34332a29cab1b7905a34b6e5c1df30a125df9f9860ce5fa960c676484417d4ef2c4db4757 languageName: node linkType: hard @@ -1166,35 +1166,35 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/css-calc@npm:2.0.2" +"@csstools/css-calc@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/css-calc@npm:2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/b36e655b4abc8ea39b300725e33cd43b1875d759dd60bee8155bf7841065615a7f24cf53199382e30aa10bb137f64021043e4af7e11b7199b674a6e6cf3ccd01 + checksum: 10c0/a3dacda66bde67edab0f2384e85462dcd46b5bb62bc2a6396f0577a006d9ad59eae270353cbd6fe1a5f7081d0546fe4b1fd9b2df242758da54ec8b7022296570 languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/css-color-parser@npm:3.0.3" +"@csstools/css-color-parser@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/css-color-parser@npm:3.0.4" dependencies: "@csstools/color-helpers": "npm:^5.0.1" - "@csstools/css-calc": "npm:^2.0.2" + "@csstools/css-calc": "npm:^2.0.3" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/02367ffc222254132c47f9cbc856f65fe0b81ee4a5e7381251b95c4064138b5ed99a5e5a79c0c8689f9e75e3d900f94773258a161a97f467c3f0420838c10e04 + checksum: 10c0/8f05264254d3768e45e46ce10e9355fe8ca0f6e4d2f648a22572f46c6d05b2378c37c2e5d970ed3b7bdfa0b152ea2af0c56a0556249bd85973aee9db7b091aa7 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/css-parser-algorithms@npm:3.0.2" +"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-parser-algorithms@npm:3.0.3" peerDependencies: "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/246afbf518ee9eaa24ed7f083360eb66884f1172fd4f8c663bff8c6099de2a8abd1e2a31d5b6fe42e010277d238469d780cff62bc7fdc6a52e7a90626b8924dc + checksum: 10c0/c1e634384affb10c3726a36f090867247005a2a470cb223de88debeab07921b78c0e7875e7847d90949c2b0ba88a290c71565f1839f7739c21a5bf1c870e137d languageName: node linkType: hard @@ -1215,82 +1215,82 @@ __metadata: languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/media-query-list-parser@npm:4.0.0" +"@csstools/media-query-list-parser@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/media-query-list-parser@npm:4.0.1" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.2 + "@csstools/css-parser-algorithms": ^3.0.3 "@csstools/css-tokenizer": ^3.0.2 - checksum: 10c0/416417bcfd84c18a2df8dc77f31c87830e151dc20530fe7f0d8f13a0848b1a9090858abdf7792d82bf2edb41ddedb7b57b34eb78b68b5c10755ae02c019e496a + checksum: 10c0/037f57520b6ca7d58ba1d71a477bd99bdbe3a6d8e7b972ed0f436d649e574f5b429e54fc47d0272daa2ac24ffb819bd9d260a90e154c4a265b8ee4d1cfb1d279 languageName: node linkType: hard -"@csstools/postcss-cascade-layers@npm:^5.0.0": - version: 5.0.0 - resolution: "@csstools/postcss-cascade-layers@npm:5.0.0" +"@csstools/postcss-cascade-layers@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/postcss-cascade-layers@npm:5.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b608c69c12671682676598e451dcd79bfc6f5030a4e17b4d1bf9659e531f1daf03526be023f9aafdc952ecc87c87b04f379a763309e3eadb2140572cd4aa5b60 + checksum: 10c0/5cc3c6f220d9216f7ab16e716a20d6db845f127c917521e6236342bfa871accd63eb662a04c1e24a28e396412dcb47b1c4abccc490b88e4010cd704d14a702f1 languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-color-function@npm:4.0.3" +"@csstools/postcss-color-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-color-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c994660ca0e2652755d9ad181c8cb46a07220c972086c97c843fa9bacf690be10c642770f898aeec4acc47c2b718dfc7372107285a678361f34d84d9e9c11e0c + checksum: 10c0/e7735c6d7c84f039c84dc1b180410aa4db7c404d55477c2e7872bc8306a3150bf37883583ec080ebd8b40b765f700cc78892d61dc167578f76e324543d551c04 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.3" +"@csstools/postcss-color-mix-function@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/4ba358eb9030fc485bfe2922d897eeb712725762cc399eaba60ba665c84dc3e56a4d5a52dfb320093c0b217d32fedb9b5197fa45738cade53d9afcbefdadf04f + checksum: 10c0/3e01f04853e49c9f69ee0538b817209b630649844039ee5b195cfbae94d41cf6e0d8a50a3d02dbe066f84855eefa1b7047f6750e4744858519978468577e567f languageName: node linkType: hard -"@csstools/postcss-content-alt-text@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-content-alt-text@npm:2.0.2" +"@csstools/postcss-content-alt-text@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-content-alt-text@npm:2.0.3" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e52d40f6567b9b23b32a6c40f9b2a74d57f99a9921b4cae015f51f72453474236c760bb13120682f8815698a615e0ad7bed22314c29dca89c34b5480d83a7a6d + checksum: 10c0/0389292a1ba11483f58db1bdd38cc774b0ec18c73f03d1db5f4a1f38edc861bb8b8d750b5c5b3615a98aaf995c0464dcfd6db5421888be0f868548c69455b5b3 languageName: node linkType: hard -"@csstools/postcss-exponential-functions@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-exponential-functions@npm:2.0.2" +"@csstools/postcss-exponential-functions@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-exponential-functions@npm:2.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/034ff89089872f63a6b00bda670c5ff11361babd221ed3e441dde969a718059e5d44ab0ed331868f137bb205331b808ecbcc4cb641d5c945238ebca28aa3ed59 + checksum: 10c0/690ac6c5ec72e085160401100cc8465a040fd70d59efadf61ef767094edac28bbb2653f53ea7cfa47d8220d0be0b9e23c3e3c2b80d9e93ad07b1db8031163d70 languageName: node linkType: hard @@ -1306,46 +1306,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.3": - version: 2.0.3 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.3" +"@csstools/postcss-gamut-mapping@npm:^2.0.4": + version: 2.0.4 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/21f5708f63e9c3b7603f8b72b5f288e0a021e9710a6abf4aaa713ff4d04bae057d1861e1f28d7670ea39ba463ac04f1507876d4a11178934e7cc7a1c6a780084 + checksum: 10c0/60c6ff13cc71a0cda7ce184fa8b42924975f2bd05e3bc096059de853ae01d48e36f27d02d7e6286d9e8c4eb4dfd526f7c302ff51be19c5f7949dd6079915a3a9 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.3": - version: 5.0.3 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.3" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.4": + version: 5.0.4 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/062d27148438309c940a1973bfc7d42a06caa9397bf2382c7a61979f5be3d6f3fae1bc8ddf94d2dd8e6c807e0530a9e76179510266aaddc439677bf79447a765 + checksum: 10c0/3b6aa4404851be09a083f35b596acc7e3f74f525386dcd2887720438638ca1893f79e699e5dad0e3a35487cb9527e08d0dcd29f1331f87800f53c13423321d6e languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-hwb-function@npm:4.0.3" +"@csstools/postcss-hwb-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-hwb-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/faf2bfbafeec765391e37c7a5cbc7b4647d9ab1ffa51e922c7dfffa545c3d436d15604dfdfb9d7684e760042e62bb42e0243dd4ebd8c3c14694a9f7be4e57b30 + checksum: 10c0/2460cc7e6324f0793d12976de175ff33344c3410ff7a04ca8a5ce0560ee3354d1d8034f9f07c0759c2b7e222a4681d02298f6a29c2a326c76b33060830da83b4 languageName: node linkType: hard @@ -1371,29 +1371,29 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-is-pseudo-class@npm:^5.0.0": - version: 5.0.0 - resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.0" +"@csstools/postcss-is-pseudo-class@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/738eb84728b24bfe19ca06ccf6ff773a423552df2f31c87704ce79da4abfd2ccf2a45d5d6d3e11e71e42cc3d92eb35a856209b9cd6116c879acf15ac75454683 + checksum: 10c0/3aaab18ebb2dcf5565efa79813eaa987d40de1e086765358524392a09631c68ad1ee952e6aff8f42513b2c18ab84891787e065fe287f696128498fc641520b6c languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.5": - version: 2.0.5 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.5" +"@csstools/postcss-light-dark-function@npm:^2.0.6": + version: 2.0.6 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.6" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/80635ee312d2a8f42aa5ce6792f1dc4a71199c384c66a3270d37e998d96db55beaa6836d689cda3b7e4828227960582fae04659ba5e4e0f64fd4543cbf15c6ab + checksum: 10c0/f3e93b58a23f0f01c9d032a892070a18e3393e60997e1d2b57c5bddb2cb36f7ee6cbaeaeb3d531b065a545a03e54d86567d34b45eddf85ed48ac360eb4ab66cd languageName: node linkType: hard @@ -1447,30 +1447,30 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-media-minmax@npm:^2.0.2": - version: 2.0.2 - resolution: "@csstools/postcss-media-minmax@npm:2.0.2" +"@csstools/postcss-media-minmax@npm:^2.0.3": + version: 2.0.3 + resolution: "@csstools/postcss-media-minmax@npm:2.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/83cf10742884fca3baa7ae26e2cb34123ce5a022622390566c139b4587ea8583fab00acbb85545786b36398e2201d2a94301e0fae805e55f375f1b5c38f67ce8 + checksum: 10c0/87c1ed6fe6ed487125e383ae7bc356ba0f68885c41cd129b85c323af69255031a8ac7b2e994d4f9b6b65d6a9f6833aeb1301ca230b592547825aedb3e3acab4b languageName: node linkType: hard -"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.2" +"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.3" dependencies: - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/3ac4073d2e958bfb24ae45f673070dd805f0fcf07bc8d00a9a98f596d1096e7be282c8d8e87df3abde90f33fcbe2c7705e972b8c1a58e43ec44729f470b76096 + checksum: 10c0/3bbadd5c79ff2102b4a2e0f107d7f3cbb89d2840b935915531d0a1bfc711d58386e6e234fccb9b4abb37e48f07cdfaa4dd66b5c795dfac9e317fa8b5cfd38e06 languageName: node linkType: hard @@ -1497,18 +1497,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.3": - version: 4.0.3 - resolution: "@csstools/postcss-oklab-function@npm:4.0.3" +"@csstools/postcss-oklab-function@npm:^4.0.4": + version: 4.0.4 + resolution: "@csstools/postcss-oklab-function@npm:4.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/650bcb4f664308972588a8f789f806d63c4069e2e008cfc3b5c80bf9df992c62972dce279b8f434c7f78823e97095942ee4f0e37bc549258887213e72acb7ef8 + checksum: 10c0/4fd2a5c22ebaf69053e005d9d009ccb41b6879f0246677159bfb6a28208e90af857446c443d34fe3efdaf50bccdd67b16fcd0c1e7c52961396a48bd84e45311f languageName: node linkType: hard @@ -1523,42 +1523,42 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.3" +"@csstools/postcss-relative-color-syntax@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c241fe6b725d775f6d2085be1dff3868d189b176fa91ab1eb1133e30e30c8151bded4e50d17a845edd0bdd0a7adf9e8883cb2634fea3394872591fe9ad2a7e86 + checksum: 10c0/f2ae6f9053e976e2431d08bdc5aa40ca5242754e23370abdfd7b6087d7ed56037e46911d1be801cf7e760aa8aee94bcab6a46f4f68696cf6befacf707c1534b7 languageName: node linkType: hard -"@csstools/postcss-scope-pseudo-class@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.0" +"@csstools/postcss-scope-pseudo-class@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/a6f562df1417c6f257c0fec95babf4cea99a25622573a2dbcfb416e2fcb8e1e53561127f5e7277d19fcb2a4603bdbc64dd6a4c416429623503c604050c99229a + checksum: 10c0/6a0ca50fae655f4498200d1ce298ca794c85fbe2e3fd5d6419843254f055df5007a973e09b5f1e78e376c02b54278e411516c8d824300c68b265d3e5b311d7ee languageName: node linkType: hard -"@csstools/postcss-stepped-value-functions@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.2" +"@csstools/postcss-stepped-value-functions@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/444a27d725bc7a8e1554469e8ac69e248ff525b728fbe058523b0f1aefcff80ca707f543d21fead0a22d51603b1669190fb01f0f2dcd599a01768a37e0d62bc3 + checksum: 10c0/31af5a650d4b2de97d3a3ef77e7ad0777b3f013f7463e23455ac31ffc946d2f79f365a1fdead52c7c535176232ab57f6f086ecdbeca1bb0b250161b1302e8c8c languageName: node linkType: hard @@ -1574,16 +1574,16 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-trigonometric-functions@npm:^4.0.2": - version: 4.0.2 - resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.2" +"@csstools/postcss-trigonometric-functions@npm:^4.0.3": + version: 4.0.3 + resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.3" dependencies: - "@csstools/css-calc": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-calc": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" peerDependencies: postcss: ^8.4 - checksum: 10c0/eaecb2ea891162e4fcbbccf4f660c99e9e59f21937b70fe6aec3b51441eff2a12c1a2dc13fff426722629a7929919fd866311eaa68d74ee9d1f5387a23502fe2 + checksum: 10c0/a13dd72c00e45e6db16c03e135f1cd1b2b412e83b7681696b49feef3a4c36ab80f5f806f3589d33405e2d14dd0dfb13572ec12007ebe3d294077b0bd3d645b2b languageName: node linkType: hard @@ -1596,12 +1596,12 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-resolve-nested@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/selector-resolve-nested@npm:2.0.0" +"@csstools/selector-resolve-nested@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/selector-resolve-nested@npm:3.0.0" peerDependencies: - postcss-selector-parser: ^6.1.0 - checksum: 10c0/10516fd1db5e0a3963063caa57d24eeb1d1f69fcb63f0b5aec5d7a44f8b36ff07b1eded3012e8a9b92fc1f484e1a5a9def0cf57d788aa7f944ee79877837cc77 + postcss-selector-parser: ^7.0.0 + checksum: 10c0/2b01c36b3fa81388d5bddd8db962766465d76b021a815c8bb5a48c3a42c530154cc155fc496707ade627dbba6745eb8ecd9fa840c1972133c0f7d8811e0a959d languageName: node linkType: hard @@ -1614,6 +1614,15 @@ __metadata: languageName: node linkType: hard +"@csstools/selector-specificity@npm:^5.0.0": + version: 5.0.0 + resolution: "@csstools/selector-specificity@npm:5.0.0" + peerDependencies: + postcss-selector-parser: ^7.0.0 + checksum: 10c0/186b444cabcdcdeb553bfe021f80c58bfe9ef38dcc444f2b1f34a5aab9be063ab4e753022b2d5792049c041c28cfbb78e4b707ec398459300e402030d35c07eb + languageName: node + linkType: hard + "@csstools/utilities@npm:^2.0.0": version: 2.0.0 resolution: "@csstools/utilities@npm:2.0.0" @@ -2979,14 +2988,14 @@ __metadata: languageName: node linkType: hard -"css-blank-pseudo@npm:^7.0.0": - version: 7.0.0 - resolution: "css-blank-pseudo@npm:7.0.0" +"css-blank-pseudo@npm:^7.0.1": + version: 7.0.1 + resolution: "css-blank-pseudo@npm:7.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/74c6c0af773a8d2c8c5a53bcfc2b2c06f9c3fd4a8bd756b7aafc102b91a1060b179a4f0aa21475b54685b62bfd9724fee90778dd992b42e0cd3ea3698132af92 + checksum: 10c0/46c3d3a611972fdb0c264db7c0b34fe437bc4300961d11945145cf04962f52a545a6ef55bc8ff4afd82b605bd692b4970f2b54582616dea00441105e725d4618 languageName: node linkType: hard @@ -3006,16 +3015,16 @@ __metadata: languageName: node linkType: hard -"css-has-pseudo@npm:^7.0.0": - version: 7.0.0 - resolution: "css-has-pseudo@npm:7.0.0" +"css-has-pseudo@npm:^7.0.1": + version: 7.0.1 + resolution: "css-has-pseudo@npm:7.0.1" dependencies: - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/2c72602ca9bcdb3afe2cce3b014e7dd17548658904c17560042ebf4bd6727b1ed8706961b1f44bff43bbdb8dc932c30a0b29f536c353df858e300e68e163b872 + checksum: 10c0/13789b08b70169204be786d652190356ace9313099d3656bd2fc38afbdd28f3d9620f0e0b07425480961b7a1ec789794961d0472f205b959d3f64c9a78ce511c languageName: node linkType: hard @@ -3131,10 +3140,10 @@ __metadata: languageName: node linkType: hard -"cssdb@npm:^8.1.1": - version: 8.1.1 - resolution: "cssdb@npm:8.1.1" - checksum: 10c0/d60facfad3bca70e21100fc35b9205cb9d3d0ac642f44f0a687e54bf787f21c43d28ce2d17fcd405f67950fb4709516108fe1f3cb15df570eff1007b5fbbc787 +"cssdb@npm:^8.1.2": + version: 8.1.2 + resolution: "cssdb@npm:8.1.2" + checksum: 10c0/056149e713a78921f56d9ef0cd734577cedb93c27966c3d0eab01956a2aa8d3c260a911766064b57ded8b4d9c55dd5275626cbb022ccd8d2d0b93b53fefd1603 languageName: node linkType: hard @@ -4356,7 +4365,7 @@ __metadata: mini-css-extract-plugin: "npm:2.9.1" postcss: "npm:8.4.47" postcss-loader: "npm:8.1.1" - postcss-preset-env: "npm:10.0.7" + postcss-preset-env: "npm:10.0.8" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" sass: "npm:1.80.4" @@ -5276,14 +5285,14 @@ __metadata: languageName: node linkType: hard -"postcss-attribute-case-insensitive@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-attribute-case-insensitive@npm:7.0.0" +"postcss-attribute-case-insensitive@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-attribute-case-insensitive@npm:7.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ce2a96bc29f59a6113953f1f72bfa2d4d34e54b194ff4d49aad0d548aa738835afaf479f22060a2605952b842f63aeae278b44e41f8f3a05731df28d08e2df97 + checksum: 10c0/48945abe2024e2d2e4c37d30b8c1aaf37af720f24f6a996f7ea7e7ed33621f5c22cf247ed22028c0c922de040c58c0802729bc39b903cb1693f4b63c0b49da34 languageName: node linkType: hard @@ -5310,18 +5319,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.3": - version: 7.0.3 - resolution: "postcss-color-functional-notation@npm:7.0.3" +"postcss-color-functional-notation@npm:^7.0.4": + version: 7.0.4 + resolution: "postcss-color-functional-notation@npm:7.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/5e04c81002512c960784043c096bc91ebc76b8fddb9259a2418b0e121eb65042944cc0f78946f6b7e5774ff1fee087849019655e4848af1f88879e3ab9ff7c17 + checksum: 10c0/1e39c47f27610ebf6a6308cfea2904fbe1f157b13654325ada23153a944666722c6132b53dfc7660632406a636479dda68eeb97a246c2e593ad6eed1e9bf838d languageName: node linkType: hard @@ -5375,57 +5384,57 @@ __metadata: languageName: node linkType: hard -"postcss-custom-media@npm:^11.0.3": - version: 11.0.3 - resolution: "postcss-custom-media@npm:11.0.3" +"postcss-custom-media@npm:^11.0.4": + version: 11.0.4 + resolution: "postcss-custom-media@npm:11.0.4" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - "@csstools/media-query-list-parser": "npm:^4.0.0" + "@csstools/media-query-list-parser": "npm:^4.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/bd3f0cf17d7422385d26afed510dc2acebb1d8c25fce13e2bbee1c49cdc7fe95ebe7f50b89ef0a88ebdd5f6826e89d99e26b905881ceff788df655670dba93d8 + checksum: 10c0/31e82e5802f6933a15f5fcf64ff41c8107af9c1d5dcba3c4422a6de3fac77bce9e3dc4ed2b79ae7f6ae460549c5da5a013669af05c1ae21549dbb09b66a9492d languageName: node linkType: hard -"postcss-custom-properties@npm:^14.0.2": - version: 14.0.2 - resolution: "postcss-custom-properties@npm:14.0.2" +"postcss-custom-properties@npm:^14.0.3": + version: 14.0.3 + resolution: "postcss-custom-properties@npm:14.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/utilities": "npm:^2.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ea2e0cb60c558bb1afb4e601dcc64a38e1b28e5df3e47b83b858fc12d909d0e3453013e6b368fc05a7db7098ffcdc702a30a92f1a3c0ef67dfb97bf089021f1a + checksum: 10c0/878ffd171ab9bbbba711930cf1b5bd48a12779e3b45d69f41366c2f65d84518f9338a92a277c0e390518c9e12272e06892cdc6575783bcdecfa6d26ebde3d043 languageName: node linkType: hard -"postcss-custom-selectors@npm:^8.0.2": - version: 8.0.2 - resolution: "postcss-custom-selectors@npm:8.0.2" +"postcss-custom-selectors@npm:^8.0.3": + version: 8.0.3 + resolution: "postcss-custom-selectors@npm:8.0.3" dependencies: - "@csstools/cascade-layer-name-parser": "npm:^2.0.2" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/cascade-layer-name-parser": "npm:^2.0.3" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/81673ffb0874f63c0f5e14315a5808259ec80ae8452aaf10d28112d30a9aaabbf61d13edb02f8be2965f44b943968c7eda051a1693da436ef157e77fcff0d752 + checksum: 10c0/3acdada43e385c23130f1dde41b189acc7739e5bbd14751ae28b2bd97b0d97f30c2a53da4f9558d108a893cc48717f76b28395a9ff38dcbbe3c3a1721ee4a68a languageName: node linkType: hard -"postcss-dir-pseudo-class@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-dir-pseudo-class@npm:9.0.0" +"postcss-dir-pseudo-class@npm:^9.0.1": + version: 9.0.1 + resolution: "postcss-dir-pseudo-class@npm:9.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/debae71bf508c0e494ebb1892ce6b3c1c4eeb6b23231180151a93920a12fec771815510cdec54db54605e090ae56af9f07c68ef6a61260d0c837adc719f9e1e4 + checksum: 10c0/da9d3387648c5c3161a653d354c8f3e70a299108df3977e8aa65cf10793e4dd58a2711b3426cd63716245b13584ca8d95adcd6e10e3c9adbc61d08743e2d8690 languageName: node linkType: hard @@ -5480,25 +5489,25 @@ __metadata: languageName: node linkType: hard -"postcss-focus-visible@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-focus-visible@npm:10.0.0" +"postcss-focus-visible@npm:^10.0.1": + version: 10.0.1 + resolution: "postcss-focus-visible@npm:10.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b86b825bac597092b300127c2686c0669ce0766165716ecda42f298f21ca69dda721e44917732cbcb2611a4ab650f1231bf8c5d4d07c9daefef815329251ae8a + checksum: 10c0/c5ecc8536a708a49a99d0abd68a88a160664e6c832c808db8edd9f0221e7017a258daa87e49daf2cb098cb037005d46cf492403c8c9c92ad8835d30adaccf665 languageName: node linkType: hard -"postcss-focus-within@npm:^9.0.0": - version: 9.0.0 - resolution: "postcss-focus-within@npm:9.0.0" +"postcss-focus-within@npm:^9.0.1": + version: 9.0.1 + resolution: "postcss-focus-within@npm:9.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1d6f1b4f4d12e23a2824f394652d520942f00fd582d3016c933a492fe0ba38aaf26bc1855576878aaeaeda1d6fc38da39bb51e8e6470c50ef03f3ea9a286b3d1 + checksum: 10c0/d6ab49d2a7f33485a9e137dc77ec92c5619a3ec92e1e672734fc604853ff1f3c0c189085c12461614be4fcb03ea0347d91791a45986a18d50b5228d161eda57a languageName: node linkType: hard @@ -5532,18 +5541,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.3": - version: 7.0.3 - resolution: "postcss-lab-function@npm:7.0.3" +"postcss-lab-function@npm:^7.0.4": + version: 7.0.4 + resolution: "postcss-lab-function@npm:7.0.4" dependencies: - "@csstools/css-color-parser": "npm:^3.0.3" - "@csstools/css-parser-algorithms": "npm:^3.0.2" + "@csstools/css-color-parser": "npm:^3.0.4" + "@csstools/css-parser-algorithms": "npm:^3.0.3" "@csstools/css-tokenizer": "npm:^3.0.2" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/c50a73a9ed54b4194998c4627599d1f42074235f572edbbcdb0e00717f3ae2121dc8378d917792b281860c5650a617d923823da6f395515f610b5760d115354d + checksum: 10c0/79ce3cc20484aef0e0bbc2d18c8f91d7362226a3db52f06a931ac8e1c58ffbc60876c6439f364093e5f16ef92260a420230cfb2a9e7b95c6c11e6f7d57626260 languageName: node linkType: hard @@ -5697,16 +5706,16 @@ __metadata: languageName: node linkType: hard -"postcss-nesting@npm:^13.0.0": - version: 13.0.0 - resolution: "postcss-nesting@npm:13.0.0" +"postcss-nesting@npm:^13.0.1": + version: 13.0.1 + resolution: "postcss-nesting@npm:13.0.1" dependencies: - "@csstools/selector-resolve-nested": "npm:^2.0.0" - "@csstools/selector-specificity": "npm:^4.0.0" - postcss-selector-parser: "npm:^6.1.0" + "@csstools/selector-resolve-nested": "npm:^3.0.0" + "@csstools/selector-specificity": "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b82a3c7010f7c6097bd3f3fe6c03f3f3af9a63a58e255f120dadd506a0ea9444aeeaba994f2a3fa34fb26e666dc72032edf5786c5fbdade790b02ad07d91ef95 + checksum: 10c0/549307c272cdd4cb5105d8fbcd582f15a1cb74e5bba240b05b27f77fe0422730be966699a49a9ad15fd9d1bc551c1edbaefb21a69686a9b131b585dbc9d90ebf languageName: node linkType: hard @@ -5860,85 +5869,85 @@ __metadata: languageName: node linkType: hard -"postcss-preset-env@npm:10.0.7": - version: 10.0.7 - resolution: "postcss-preset-env@npm:10.0.7" +"postcss-preset-env@npm:10.0.8": + version: 10.0.8 + resolution: "postcss-preset-env@npm:10.0.8" dependencies: - "@csstools/postcss-cascade-layers": "npm:^5.0.0" - "@csstools/postcss-color-function": "npm:^4.0.3" - "@csstools/postcss-color-mix-function": "npm:^3.0.3" - "@csstools/postcss-content-alt-text": "npm:^2.0.2" - "@csstools/postcss-exponential-functions": "npm:^2.0.2" + "@csstools/postcss-cascade-layers": "npm:^5.0.1" + "@csstools/postcss-color-function": "npm:^4.0.4" + "@csstools/postcss-color-mix-function": "npm:^3.0.4" + "@csstools/postcss-content-alt-text": "npm:^2.0.3" + "@csstools/postcss-exponential-functions": "npm:^2.0.3" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.3" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.3" - "@csstools/postcss-hwb-function": "npm:^4.0.3" + "@csstools/postcss-gamut-mapping": "npm:^2.0.4" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.4" + "@csstools/postcss-hwb-function": "npm:^4.0.4" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" - "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.5" + "@csstools/postcss-is-pseudo-class": "npm:^5.0.1" + "@csstools/postcss-light-dark-function": "npm:^2.0.6" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" "@csstools/postcss-logical-resize": "npm:^3.0.0" "@csstools/postcss-logical-viewport-units": "npm:^3.0.2" - "@csstools/postcss-media-minmax": "npm:^2.0.2" - "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.2" + "@csstools/postcss-media-minmax": "npm:^2.0.3" + "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.3" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.3" + "@csstools/postcss-oklab-function": "npm:^4.0.4" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.3" - "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" - "@csstools/postcss-stepped-value-functions": "npm:^4.0.2" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.4" + "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1" + "@csstools/postcss-stepped-value-functions": "npm:^4.0.3" "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" - "@csstools/postcss-trigonometric-functions": "npm:^4.0.2" + "@csstools/postcss-trigonometric-functions": "npm:^4.0.3" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" browserslist: "npm:^4.23.1" - css-blank-pseudo: "npm:^7.0.0" - css-has-pseudo: "npm:^7.0.0" + css-blank-pseudo: "npm:^7.0.1" + css-has-pseudo: "npm:^7.0.1" css-prefers-color-scheme: "npm:^10.0.0" - cssdb: "npm:^8.1.1" - postcss-attribute-case-insensitive: "npm:^7.0.0" + cssdb: "npm:^8.1.2" + postcss-attribute-case-insensitive: "npm:^7.0.1" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.3" + postcss-color-functional-notation: "npm:^7.0.4" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" - postcss-custom-media: "npm:^11.0.3" - postcss-custom-properties: "npm:^14.0.2" - postcss-custom-selectors: "npm:^8.0.2" - postcss-dir-pseudo-class: "npm:^9.0.0" + postcss-custom-media: "npm:^11.0.4" + postcss-custom-properties: "npm:^14.0.3" + postcss-custom-selectors: "npm:^8.0.3" + postcss-dir-pseudo-class: "npm:^9.0.1" postcss-double-position-gradients: "npm:^6.0.0" - postcss-focus-visible: "npm:^10.0.0" - postcss-focus-within: "npm:^9.0.0" + postcss-focus-visible: "npm:^10.0.1" + postcss-focus-within: "npm:^9.0.1" postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.3" + postcss-lab-function: "npm:^7.0.4" postcss-logical: "npm:^8.0.0" - postcss-nesting: "npm:^13.0.0" + postcss-nesting: "npm:^13.0.1" postcss-opacity-percentage: "npm:^3.0.0" postcss-overflow-shorthand: "npm:^6.0.0" postcss-page-break: "npm:^3.0.4" postcss-place: "npm:^10.0.0" - postcss-pseudo-class-any-link: "npm:^10.0.0" + postcss-pseudo-class-any-link: "npm:^10.0.1" postcss-replace-overflow-wrap: "npm:^4.0.0" - postcss-selector-not: "npm:^8.0.0" + postcss-selector-not: "npm:^8.0.1" peerDependencies: postcss: ^8.4 - checksum: 10c0/f789000e0504fd827e854bb0feb8b4c218d381314e4d863c5a36df925df412d0844c912952fe27892a320433640aeaff03ee94a3057b42011bf5d32b3963f333 + checksum: 10c0/3f7dc8eb2e7f4e7a5eee0a9456972a5b18bd40109d1aa3328f60cd645d352f3a70c83c507ea58f83b820153b0f5c3f14af3f376573c56599c36d5739c943b6f1 languageName: node linkType: hard -"postcss-pseudo-class-any-link@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-pseudo-class-any-link@npm:10.0.0" +"postcss-pseudo-class-any-link@npm:^10.0.1": + version: 10.0.1 + resolution: "postcss-pseudo-class-any-link@npm:10.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/8357716e0ba0f01c70dba65a1efd268f610249ac2fbd41833e5e87dc19ffa7911c8d5e234d0d7c77d94ba6cdfa04fe7f0f98461c34f64cdbb59abd9737ab7d32 + checksum: 10c0/95e883996e87baf14fc09d25f9a763a2e9d599eb3b9c6b736e83a8c3d0b55841bcb886bccdf51b5b7fefc128cbd0187ad8841f59878f85bd1613642e592d7673 languageName: node linkType: hard @@ -5999,18 +6008,18 @@ __metadata: languageName: node linkType: hard -"postcss-selector-not@npm:^8.0.0": - version: 8.0.0 - resolution: "postcss-selector-not@npm:8.0.0" +"postcss-selector-not@npm:^8.0.1": + version: 8.0.1 + resolution: "postcss-selector-not@npm:8.0.1" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^7.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/677f2cd9d0cd481d276663b57001b2ba96db94ad5bba397f277e53d560ccb074b27c21792deff44720a9f2d96da85fa34f438bb1d33198305b5866b35f1a4708 + checksum: 10c0/491ea3dcc421cd90135be786078521605e2062fb93624ea8813cfd5ba0d35143f931e2e608d5f20effd5ea7d3f4786d2afea2afa42d117779a0288e135f132b6 languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.2": +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.2": version: 6.1.2 resolution: "postcss-selector-parser@npm:6.1.2" dependencies: @@ -6020,6 +6029,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-selector-parser@npm:7.0.0" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/e96e096afcce70bf5c97789f5ea09d7415ae5eb701d82b05b5e8532885d31363b484fcb1ca9488c9a331f30508d9e5bb6c3109eb2eb5067ef3d3919f9928cd9d + languageName: node + linkType: hard + "postcss-svgo@npm:^7.0.1": version: 7.0.1 resolution: "postcss-svgo@npm:7.0.1" From c6944dc0fb1abe3e5681b0a39a9fa988b6287ae6 Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Mon, 28 Oct 2024 02:34:49 +0300 Subject: [PATCH 147/160] Turkish localization fixes for node list page (#9916) * Turkish localization fixes for node list page * Replace obsolete property --- .../resources/hudson/model/Computer/sidepanel_tr.properties | 2 +- .../resources/hudson/model/ComputerSet/index_tr.properties | 4 ++++ .../resources/hudson/model/ComputerSet/new_tr.properties | 2 ++ .../hudson/model/ComputerSet/sidepanel_tr.properties | 2 ++ core/src/main/resources/hudson/model/Messages_tr.properties | 2 ++ .../resources/hudson/node_monitors/Messages_tr.properties | 5 ++++- core/src/main/resources/hudson/slaves/Messages_tr.properties | 1 + core/src/main/resources/hudson/util/Messages_tr.properties | 1 + .../src/main/resources/jenkins/agents/Messages_tr.properties | 2 +- .../main/resources/lib/hudson/newFromList/form_tr.properties | 4 +++- 10 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 core/src/main/resources/hudson/model/ComputerSet/index_tr.properties create mode 100644 core/src/main/resources/hudson/model/ComputerSet/new_tr.properties create mode 100644 core/src/main/resources/hudson/util/Messages_tr.properties diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties index a96d29188a81..30694a2d05e4 100644 --- a/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_tr.properties @@ -23,6 +23,6 @@ Back\ to\ List=Listeye Dön Build\ History=Yapılandırma Geçmişi Configure=Yapılandır -Load\ Statistics=Yüklenme istatistikleri +Load\ Statistics=Yük İstatistikleri Script\ Console=Script Konsolu Status=Durum diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties new file mode 100644 index 000000000000..0434bbae3c0e --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_tr.properties @@ -0,0 +1,4 @@ +Nodes=Sunucular +New\ Node=Yeni Sunucu +Name=İsim +Data\ obtained=Son güncelleme diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties new file mode 100644 index 000000000000..921759b8e7ef --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_tr.properties @@ -0,0 +1,2 @@ +New\ node=Yeni sunucu +Node\ name=Sunucu ismi diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties index ec93e331bfed..f4761cfdc026 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_tr.properties @@ -22,3 +22,5 @@ Back\ to\ Dashboard=Kontrol Merkezi'ne Dön Manage\ Jenkins=Jenkins''i Yönet +Nodes=Sunucular +Clouds=Bulutlar diff --git a/core/src/main/resources/hudson/model/Messages_tr.properties b/core/src/main/resources/hudson/model/Messages_tr.properties index 75399955f2e6..4d9ae97b7bd8 100644 --- a/core/src/main/resources/hudson/model/Messages_tr.properties +++ b/core/src/main/resources/hudson/model/Messages_tr.properties @@ -48,6 +48,8 @@ BallColor.Pending=Bekliyor BallColor.Success=Başarılı BallColor.Unstable=Dengesiz +ComputerSet.DisplayName=Sunucular + Executor.NotAvailable=Mevcut Değil FreeStyleProject.DisplayName=Serbest stil proje diff --git a/core/src/main/resources/hudson/node_monitors/Messages_tr.properties b/core/src/main/resources/hudson/node_monitors/Messages_tr.properties index a58be1787e59..0ac3946dc2c0 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_tr.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_tr.properties @@ -22,4 +22,7 @@ ArchitectureMonitor.DisplayName=Mimari ClockMonitor.DisplayName=Saat Farkı -DiskSpaceMonitor.DisplayName=Diskteki Boş Alan +DiskSpaceMonitor.DisplayName=Boş Disk Alanı +SwapSpaceMonitor.DisplayName=Boş Swap Alanı +TemporarySpaceMonitor.DisplayName=Boş Temp Alanı +ResponseTimeMonitor.DisplayName=Tepki Süresi diff --git a/core/src/main/resources/hudson/slaves/Messages_tr.properties b/core/src/main/resources/hudson/slaves/Messages_tr.properties index 3f09ef711a25..061c5c7a2ff7 100644 --- a/core/src/main/resources/hudson/slaves/Messages_tr.properties +++ b/core/src/main/resources/hudson/slaves/Messages_tr.properties @@ -1 +1,2 @@ +DumbSlave.displayName=Kalıcı Ajan EnvironmentVariablesNodeProperty.displayName=Ortam değişkenleri diff --git a/core/src/main/resources/hudson/util/Messages_tr.properties b/core/src/main/resources/hudson/util/Messages_tr.properties new file mode 100644 index 000000000000..1df20672d1a6 --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_tr.properties @@ -0,0 +1 @@ +ClockDifference.InSync=Senkronize diff --git a/core/src/main/resources/jenkins/agents/Messages_tr.properties b/core/src/main/resources/jenkins/agents/Messages_tr.properties index 240942f59eae..2ae6997d3203 100644 --- a/core/src/main/resources/jenkins/agents/Messages_tr.properties +++ b/core/src/main/resources/jenkins/agents/Messages_tr.properties @@ -4,4 +4,4 @@ CloudSet.SpecifyCloudToCopy=Hangi bulutun kopyalanacağını belirtin CloudSet.NoSuchCloud=Böyle bir bulut yok: {0} CloudsLink.DisplayName=Bulutlar CloudsLink.Description=İsteğe bağlı olarak ajan hazırlamak için kullanılmak üzere bulut tanımları ekleyin, kaldırın ve düzenleyin. -IOfflineCause.offline=поза мережею +IOfflineCause.offline=Çevrimdışı diff --git a/core/src/main/resources/lib/hudson/newFromList/form_tr.properties b/core/src/main/resources/lib/hudson/newFromList/form_tr.properties index e8a77858a57d..c175c60f9ae7 100644 --- a/core/src/main/resources/lib/hudson/newFromList/form_tr.properties +++ b/core/src/main/resources/lib/hudson/newFromList/form_tr.properties @@ -1,3 +1,5 @@ # This file is under the MIT License by authors -Copy\ from=Buradan Kopyala +View\ type=Tip +Type\ for\ suggestions=Yazmaya başlayınca otomatik tamamlanır +Create=Oluştur From e1f99468fd81d6aa52dc434fefc6e0420e1cb449 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:57:01 -0700 Subject: [PATCH 148/160] Update dependency io.jenkins.plugins:echarts-api to v5.5.1-4 (#9922) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- war/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/pom.xml b/war/pom.xml index 2d447fd7776b..f34ff02a9028 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -365,7 +365,7 @@ THE SOFTWARE. io.jenkins.plugins echarts-api - 5.5.1-3 + 5.5.1-4 hpi From 137b3d0ff9b7bace2b9683f1e616bbbbce7ad1ca Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:43:58 +0000 Subject: [PATCH 149/160] [maven-release-plugin] prepare release jenkins-2.483 --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 6 +++--- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index fa38665c2a7b..8efbf5d2a9c7 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2473629d23cc..2e11b2c1ca7f 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 cli diff --git a/core/pom.xml b/core/pom.xml index 9bff5e5ad0b2..a63d6f21d603 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index fe1e89a120dc..b397dfb7949d 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-coverage diff --git a/pom.xml b/pom.xml index b492c804f609..0fccb82e556a 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - ${scmTag} + jenkins-2.483 https://github.com/jenkinsci/jenkins @@ -75,7 +75,7 @@ THE SOFTWARE. 2.483 -SNAPSHOT - 2024-10-22T13:43:00Z + 2024-10-29T10:33:36Z github diff --git a/test/pom.xml b/test/pom.xml index 957127ed55c3..75c0b6f95a4a 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-test diff --git a/war/pom.xml b/war/pom.xml index f34ff02a9028..a3828a2cfb9f 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index 2253163b3c4c..f64d9b8140b4 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index 178413f92c8e..b44f33a2e19a 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - ${revision}${changelist} + 2.483 ../.. From 783c18c00ed73db3d2b5ac747bf617cdb09269b6 Mon Sep 17 00:00:00 2001 From: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:44:27 +0000 Subject: [PATCH 150/160] [maven-release-plugin] prepare for next development iteration --- bom/pom.xml | 2 +- cli/pom.xml | 2 +- core/pom.xml | 2 +- coverage/pom.xml | 2 +- pom.xml | 8 ++++---- test/pom.xml | 2 +- war/pom.xml | 2 +- websocket/jetty12-ee9/pom.xml | 2 +- websocket/spi/pom.xml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 8efbf5d2a9c7..fa38665c2a7b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-bom diff --git a/cli/pom.xml b/cli/pom.xml index 2e11b2c1ca7f..2473629d23cc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} cli diff --git a/core/pom.xml b/core/pom.xml index a63d6f21d603..9bff5e5ad0b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-core diff --git a/coverage/pom.xml b/coverage/pom.xml index b397dfb7949d..fe1e89a120dc 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-coverage diff --git a/pom.xml b/pom.xml index 0fccb82e556a..f21c24fbc5e6 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} pom Jenkins main module @@ -63,7 +63,7 @@ THE SOFTWARE. scm:git:https://github.com/jenkinsci/jenkins.git scm:git:git@github.com:jenkinsci/jenkins.git - jenkins-2.483 + ${scmTag} https://github.com/jenkinsci/jenkins @@ -73,9 +73,9 @@ THE SOFTWARE. - 2.483 + 2.484 -SNAPSHOT - 2024-10-29T10:33:36Z + 2024-10-29T13:43:58Z github diff --git a/test/pom.xml b/test/pom.xml index 75c0b6f95a4a..957127ed55c3 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-test diff --git a/war/pom.xml b/war/pom.xml index a3828a2cfb9f..f34ff02a9028 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} jenkins-war diff --git a/websocket/jetty12-ee9/pom.xml b/websocket/jetty12-ee9/pom.xml index f64d9b8140b4..2253163b3c4c 100644 --- a/websocket/jetty12-ee9/pom.xml +++ b/websocket/jetty12-ee9/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} ../.. diff --git a/websocket/spi/pom.xml b/websocket/spi/pom.xml index b44f33a2e19a..178413f92c8e 100644 --- a/websocket/spi/pom.xml +++ b/websocket/spi/pom.xml @@ -28,7 +28,7 @@ THE SOFTWARE. org.jenkins-ci.main jenkins-parent - 2.483 + ${revision}${changelist} ../.. From 3a255938b680e6a6c545768ca37ca75fee1453b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 08:53:40 -0700 Subject: [PATCH 151/160] Update dependency org.jenkins-ci.plugins:script-security to v1367 (#9924) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- test/pom.xml | 2 +- war/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 957127ed55c3..3933966bdadb 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -118,7 +118,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1366.vd44b_49a_5c85c + 1367.vdf2fc45f229c org.jenkins-ci.plugins.workflow diff --git a/war/pom.xml b/war/pom.xml index f34ff02a9028..933dcab0193a 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -307,7 +307,7 @@ THE SOFTWARE. org.jenkins-ci.plugins script-security - 1366.vd44b_49a_5c85c + 1367.vdf2fc45f229c hpi From 87cfc46068ee43eeec85f0d46d7ab9230b8f5e32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:34:56 +0000 Subject: [PATCH 152/160] Fill in since annotations (#9927) Co-authored-by: timja <21194782+timja@users.noreply.github.com> --- core/src/main/java/hudson/model/Computer.java | 2 +- core/src/main/java/jenkins/agents/IOfflineCause.java | 2 +- core/src/main/java/jenkins/model/IComputer.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index eec5bdd8d28d..0c525dfabe84 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -668,7 +668,7 @@ public boolean isTemporarilyOffline() { /** * Allows a caller to define an {@link OfflineCause} for a computer that has never been online. - * @since TODO + * @since 2.483 */ public void setOfflineCause(OfflineCause cause) { this.offlineCause = cause; diff --git a/core/src/main/java/jenkins/agents/IOfflineCause.java b/core/src/main/java/jenkins/agents/IOfflineCause.java index fca5f35b8d25..b1c32820e848 100644 --- a/core/src/main/java/jenkins/agents/IOfflineCause.java +++ b/core/src/main/java/jenkins/agents/IOfflineCause.java @@ -31,7 +31,7 @@ /** * Represents a cause that puts a {@linkplain IComputer#isOffline() computer offline}. - * @since TODO + * @since 2.483 */ public interface IOfflineCause { /** diff --git a/core/src/main/java/jenkins/model/IComputer.java b/core/src/main/java/jenkins/model/IComputer.java index 6aaea7af463f..37fe0af98535 100644 --- a/core/src/main/java/jenkins/model/IComputer.java +++ b/core/src/main/java/jenkins/model/IComputer.java @@ -94,7 +94,7 @@ default boolean hasOfflineCause() { /** * @return the offline cause if the computer is offline. - * @since TODO + * @since 2.483 */ IOfflineCause getOfflineCause(); From 99c3b439fc82c3c6d37ed8de9b425917453c3208 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 13:52:30 +0000 Subject: [PATCH 153/160] Update softprops/action-gh-release action to v2.0.9 (#9929) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/publish-release-artifact.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-release-artifact.yml b/.github/workflows/publish-release-artifact.yml index 8b7242136ce9..e0268a61af0b 100644 --- a/.github/workflows/publish-release-artifact.yml +++ b/.github/workflows/publish-release-artifact.yml @@ -73,7 +73,7 @@ jobs: wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME} - name: Upload Release Asset id: upload-war - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -108,7 +108,7 @@ jobs: - name: Upload Release Asset id: upload-deb if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -144,7 +144,7 @@ jobs: - name: Upload Release Asset id: upload-rpm if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -180,7 +180,7 @@ jobs: - name: Upload Release Asset id: upload-msi if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -216,7 +216,7 @@ jobs: - name: Upload Release Asset id: upload-suse-rpm if: always() - uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 + uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 55d09cb4e6be5a0f72f09d83b34fffcc888b9147 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 09:09:03 +0000 Subject: [PATCH 154/160] Update dependency sass to v1.80.5 (#9932) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7d94e1548f40..55785de7bdbc 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "postcss-preset-env": "10.0.8", "postcss-scss": "4.0.9", "prettier": "3.3.3", - "sass": "1.80.4", + "sass": "1.80.5", "sass-loader": "16.0.2", "style-loader": "4.0.0", "stylelint": "16.10.0", diff --git a/yarn.lock b/yarn.lock index f23f92f1318e..d3296cb5b08a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4368,7 +4368,7 @@ __metadata: postcss-preset-env: "npm:10.0.8" postcss-scss: "npm:4.0.9" prettier: "npm:3.3.3" - sass: "npm:1.80.4" + sass: "npm:1.80.5" sass-loader: "npm:16.0.2" sortablejs: "npm:1.15.3" style-loader: "npm:4.0.0" @@ -6355,9 +6355,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.80.4": - version: 1.80.4 - resolution: "sass@npm:1.80.4" +"sass@npm:1.80.5": + version: 1.80.5 + resolution: "sass@npm:1.80.5" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -6365,7 +6365,7 @@ __metadata: source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/58ca0f2d10720cde6621ee62f4bdbb537ea2ac572c565d5f02309f8271a5e1e880ad8c163b933e52b22b3dc0550973fb5a6033a500248e6a0d89dd050c1743cf + checksum: 10c0/d592e57c037315f4c5976af3d37ce4c7758b1b4e89d064455d6992829ea59888c71b9dbc86f7fc8dca87ac98ebc9cece10e5c8fc5509bf192db81712a34fd579 languageName: node linkType: hard From 5db2f0139ca12c5d7dc7cf3a1f7712074936880d Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:07 -0400 Subject: [PATCH 155/160] Avoid saving `nextBuildNumber` while loading `Job` (#9778) --- core/src/main/java/hudson/model/Job.java | 21 ++++++------------- .../jenkins/model/lazy/LazyBuildMixIn.java | 4 ++-- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index e4d54d44b375..c4c8679674a1 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -221,29 +221,20 @@ public void onLoad(ItemGroup parent, String name) TextFile f = getNextBuildNumberFile(); if (f.exists()) { - // starting 1.28, we store nextBuildNumber in a separate file. - // but old Hudson didn't do it, so if the file doesn't exist, - // assume that nextBuildNumber was read from config.xml try { synchronized (this) { this.nextBuildNumber = Integer.parseInt(f.readTrim()); } } catch (NumberFormatException e) { LOGGER.log(Level.WARNING, "Corruption in {0}: {1}", new Object[] {f, e}); - //noinspection StatementWithEmptyBody - if (this instanceof LazyBuildMixIn.LazyLoadingJob) { - // allow LazyBuildMixIn.onLoad to fix it - } else { - RunT lB = getLastBuild(); - synchronized (this) { - this.nextBuildNumber = lB != null ? lB.getNumber() + 1 : 1; - } - saveNextBuildNumber(); + RunT lB = getLastBuild(); + synchronized (this) { + this.nextBuildNumber = lB != null ? lB.getNumber() + 1 : 1; } + saveNextBuildNumber(); } - } else { - // From the old Hudson, or doCreateItem. Create this file now. - saveNextBuildNumber(); + } else if (nextBuildNumber == 0) { + nextBuildNumber = 1; } if (properties == null) // didn't exist < 1.72 diff --git a/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java b/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java index c73c5cbf80f1..d6329ed13ed5 100644 --- a/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java +++ b/core/src/main/java/jenkins/model/lazy/LazyBuildMixIn.java @@ -109,8 +109,8 @@ public void onLoad(ItemGroup parent, String name) throws IOExcep int max = _builds.maxNumberOnDisk(); int next = asJob().getNextBuildNumber(); if (next <= max) { - LOGGER.log(Level.WARNING, "JENKINS-27530: improper nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max}); - asJob().updateNextBuildNumber(max + 1); + LOGGER.log(Level.FINE, "nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max}); + asJob().fastUpdateNextBuildNumber(max + 1); } RunMap currentBuilds = this.builds; if (parent != null) { From 1892e2147239b74717445c8ebfda764039487572 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:16 -0400 Subject: [PATCH 156/160] `Job.BuildNumberAssigner` (#9846) * `Job.BuildNumberAssigner` * Clearer API for `saveNextBuildNumber` https://github.com/jenkinsci/jenkins/pull/9846#discussion_r1792991572 --- core/src/main/java/hudson/model/Job.java | 41 +++++++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index c4c8679674a1..d22c25e98e3d 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -34,6 +34,7 @@ import hudson.BulkChange; import hudson.EnvVars; import hudson.Extension; +import hudson.ExtensionList; import hudson.ExtensionPoint; import hudson.FeedAdapter; import hudson.PermalinkList; @@ -337,12 +338,42 @@ public boolean isKeepDependencies() { } /** - * Allocates a new buildCommand number. + * Allocates a new build number. + * @see BuildNumberAssigner */ - public synchronized int assignBuildNumber() throws IOException { - int r = nextBuildNumber++; - saveNextBuildNumber(); - return r; + public int assignBuildNumber() throws IOException { + return ExtensionList.lookupFirst(BuildNumberAssigner.class).assignBuildNumber(this, this::saveNextBuildNumber); + } + + /** + * Alternate strategy for assigning build numbers. + */ + @Restricted(Beta.class) + public interface BuildNumberAssigner extends ExtensionPoint { + /** + * Implementation of {@link Job#assignBuildNumber}. + */ + int assignBuildNumber(Job job, SaveNextBuildNumber saveNextBuildNumber) throws IOException; + /** + * Provides an externally accessible alias for {@link Job#saveNextBuildNumber}, which is {@code protected}. + * ({@link #getNextBuildNumber} and {@link #fastUpdateNextBuildNumber} are already accessible.) + */ + interface SaveNextBuildNumber { + void call() throws IOException; + } + } + + @Restricted(DoNotUse.class) + @Extension(ordinal = -1000) + public static final class DefaultBuildNumberAssigner implements BuildNumberAssigner { + @Override + public int assignBuildNumber(Job job, SaveNextBuildNumber saveNextBuildNumber) throws IOException { + synchronized (job) { + int r = job.nextBuildNumber++; + saveNextBuildNumber.call(); + return r; + } + } } /** From bec45d721cf2b872beec98aaf7a6327abe7fdaa8 Mon Sep 17 00:00:00 2001 From: Devin Nusbaum Date: Sat, 2 Nov 2024 09:25:23 -0400 Subject: [PATCH 157/160] Skip `LogRotatorTest#ableToDeleteCurrentBuild` on Windows (#9923) * Skip `LogRotatorTest#ableToDeleteCurrentBuild` on Windows * Also remove BuildWatcher from LogRotatorTest in case it was contributing to flakiness --- test/src/test/java/hudson/tasks/LogRotatorTest.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/src/test/java/hudson/tasks/LogRotatorTest.java b/test/src/test/java/hudson/tasks/LogRotatorTest.java index 118a860147a1..d30d4d8115bc 100644 --- a/test/src/test/java/hudson/tasks/LogRotatorTest.java +++ b/test/src/test/java/hudson/tasks/LogRotatorTest.java @@ -31,7 +31,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeFalse; +import hudson.Functions; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.BuildListener; @@ -50,10 +52,8 @@ import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; -import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.jvnet.hudson.test.BuildWatcher; import org.jvnet.hudson.test.FailureBuilder; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; @@ -64,9 +64,6 @@ */ public class LogRotatorTest { - @ClassRule - public static BuildWatcher watcher = new BuildWatcher(); - @Rule public JenkinsRule j = new JenkinsRule(); @@ -103,6 +100,8 @@ public void successVsFailureWithRemoveLastBuild() throws Exception { @Test public void ableToDeleteCurrentBuild() throws Exception { + assumeFalse("Deleting the current build while is is completing does not work consistently on Windows", + Functions.isWindows()); var p = j.createFreeStyleProject(); // Keep 0 builds, i.e. immediately delete builds as they complete. LogRotator logRotator = new LogRotator(-1, 0, -1, -1); From e0a54f41da3252ac16eb96859f318b0fe80d8c66 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 2 Nov 2024 09:25:31 -0400 Subject: [PATCH 158/160] Race condition & memory leak in `TypedFilter` (#9925) --- .../jenkins/security/stapler/TypedFilter.java | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/jenkins/security/stapler/TypedFilter.java b/core/src/main/java/jenkins/security/stapler/TypedFilter.java index eabce3b2dfc9..5851c5e47269 100644 --- a/core/src/main/java/jenkins/security/stapler/TypedFilter.java +++ b/core/src/main/java/jenkins/security/stapler/TypedFilter.java @@ -5,8 +5,6 @@ import hudson.ExtensionList; import java.lang.annotation.Annotation; import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import jenkins.util.SystemProperties; @@ -25,8 +23,6 @@ public class TypedFilter implements FieldRef.Filter, FunctionList.Filter { private static final Logger LOGGER = Logger.getLogger(TypedFilter.class.getName()); - private static final Map, Boolean> staplerCache = new HashMap<>(); - private boolean isClassAcceptable(Class clazz) { if (clazz.isArray()) { // special case to allow klass.isArray() dispatcher @@ -46,31 +42,23 @@ private boolean isClassAcceptable(Class clazz) { return false; } } - return SKIP_TYPE_CHECK || isStaplerRelevantCached(clazz); + return SKIP_TYPE_CHECK || isStaplerRelevant.get(clazz); } - private static boolean isStaplerRelevantCached(@NonNull Class clazz) { - if (staplerCache.containsKey(clazz)) { - return staplerCache.get(clazz); + private static final ClassValue isStaplerRelevant = new ClassValue<>() { + @Override + protected Boolean computeValue(Class clazz) { + return isSpecificClassStaplerRelevant(clazz) || isSuperTypesStaplerRelevant(clazz); } - boolean ret = isStaplerRelevant(clazz); - - staplerCache.put(clazz, ret); - return ret; - } - - @Restricted(NoExternalUse.class) - public static boolean isStaplerRelevant(@NonNull Class clazz) { - return isSpecificClassStaplerRelevant(clazz) || isSuperTypesStaplerRelevant(clazz); - } + }; private static boolean isSuperTypesStaplerRelevant(@NonNull Class clazz) { Class superclass = clazz.getSuperclass(); - if (superclass != null && isStaplerRelevantCached(superclass)) { + if (superclass != null && isStaplerRelevant.get(superclass)) { return true; } for (Class interfaceClass : clazz.getInterfaces()) { - if (isStaplerRelevantCached(interfaceClass)) { + if (isStaplerRelevant.get(interfaceClass)) { return true; } } From f8f4f19dc10808ca11eeb6cbfbf02335297654d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 07:25:42 -0600 Subject: [PATCH 159/160] Update dependency com.puppycrawl.tools:checkstyle to v10.20.0 (#9926) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f21c24fbc5e6..7839cc10a7e8 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ THE SOFTWARE. com.puppycrawl.tools checkstyle - 10.19.0 + 10.20.0 From 466359cb98e98138206729a55f689992d600b0ec Mon Sep 17 00:00:00 2001 From: Mustafa Ulu Date: Sat, 2 Nov 2024 16:25:51 +0300 Subject: [PATCH 160/160] Translate RSS links to Turkish (#9928) Recreated rssBar_tr.properties file which was removed in https://github.com/jenkinsci/jenkins/pull/8827 --- core/src/main/resources/lib/hudson/rssBar_tr.properties | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 core/src/main/resources/lib/hudson/rssBar_tr.properties diff --git a/core/src/main/resources/lib/hudson/rssBar_tr.properties b/core/src/main/resources/lib/hudson/rssBar_tr.properties new file mode 100644 index 000000000000..86aea288f023 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_tr.properties @@ -0,0 +1,4 @@ +Legend=İkonlar hakkında +All=Tümü +Failures=Başarısız olanlar +LatestBuilds=Son yapılandırmalar