Merge branch 'master' into new-bottom-app-bar

This commit is contained in:
Jan Faracik committed 2025-07-18 17:03:44 +01:00
commit d4cf906a15
21 files changed
+165 -253

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ set -o xtrace
cd "$(dirname "$0")"
# https://github.com/jenkinsci/acceptance-test-harness/releases
export ATH_VERSION=6277.vb_5b_2154b_6691
export ATH_VERSION=6294.v8837063f315d
if [[ $# -eq 0 ]]; then
export JDK=17
+6 -1
View File
@@ -623,6 +623,11 @@ THE SOFTWARE.
<artifactId>maven-dependency-plugin</artifactId>
<!-- Version specified in grandparent POM -->
<executions>
<execution>
<goals>
<goal>properties</goal>
</goals>
</execution>
<execution>
<id>winsw</id>
<goals>
@@ -651,7 +656,7 @@ THE SOFTWARE.
<!-- Version specified in grandparent POM -->
<configuration>
<!-- Make sure to keep the directives in test/pom.xml and war/pom.xml in sync with these. -->
<argLine>@{jacocoSurefireArgs} --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED</argLine>
<argLine>@{jacocoSurefireArgs} --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED -javaagent:${org.mockito:mockito-core:jar}</argLine>
<reuseForks>false</reuseForks>
</configuration>
</plugin>
@@ -39,10 +39,11 @@ import jenkins.security.seed.UserSeedProperty;
import jenkins.util.SystemProperties;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
import org.springframework.http.HttpMethod;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher;
/**
* Login filter with a change for Jenkins so that
@@ -56,7 +57,7 @@ public final class AuthenticationProcessingFilter2 extends UsernamePasswordAuthe
@SuppressFBWarnings(value = "HARD_CODE_PASSWORD", justification = "This is a password parameter, not a password")
public AuthenticationProcessingFilter2(String authenticationGatewayUrl) {
setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/" + authenticationGatewayUrl, "POST"));
setRequiresAuthenticationRequestMatcher(PathPatternRequestMatcher.withDefaults().matcher(HttpMethod.POST, "/" + authenticationGatewayUrl));
// Jenkins/login.jelly & SetupWizard/authenticate-security-token.jelly
setUsernameParameter("j_username");
setPasswordParameter("j_password");
@@ -25,10 +25,12 @@
package jenkins.console;
import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.Extension;
import hudson.model.User;
import hudson.model.UserProperty;
import hudson.model.UserPropertyDescriptor;
import hudson.model.userproperty.UserPropertyCategory;
import java.util.List;
import org.jenkinsci.Symbol;
import org.kohsuke.accmod.Restricted;
@@ -70,6 +72,11 @@ public class ConsoleUrlProviderUserProperty extends UserProperty {
return Messages.consoleUrlProviderDisplayName_Description();
}
@Override
public @NonNull UserPropertyCategory getUserPropertyCategory() {
return UserPropertyCategory.get(UserPropertyCategory.Appearance.class);
}
@Override
public UserProperty newInstance(User user) {
return new ConsoleUrlProviderUserProperty();
@@ -2830,12 +2830,13 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve
/**
* Formerly used to bind {@link ExtensionList}s to URLs.
* <p>
* Currently handled by {@link jenkins.telemetry.impl.HttpExtensionList.ExtensionListRootAction}.
* </p>
*
* @since 1.349
* @deprecated This is no longer supported.
* For URL access to descriptors, see {@link hudson.model.DescriptorByNameOwner}.
* For URL access to specific other {@link hudson.Extension} annotated elements, create your own {@link hudson.model.Action}, like {@link hudson.console.ConsoleAnnotatorFactory.RootAction}.
*/
@Deprecated(since = "TODO")
public ExtensionList getExtensionList(String extensionType) throws ClassNotFoundException {
return getExtensionList(pluginManager.uberClassLoader.loadClass(extensionType));
}
@@ -1,124 +0,0 @@
/*
* The MIT License
*
* Copyright (c) 2025, 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.telemetry.impl;
import static java.util.logging.Level.FINE;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.Extension;
import hudson.ExtensionList;
import hudson.model.InvisibleAction;
import hudson.model.RootAction;
import java.time.LocalDate;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import jenkins.model.Jenkins;
import jenkins.telemetry.Telemetry;
import net.sf.json.JSONObject;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest2;
/**
* Collect information about which URLs in {@code /extensionList/} are being accessed.
*
* @since 2.505
*/
@Extension
@Restricted(NoExternalUse.class)
public class HttpExtensionList extends Telemetry {
private final Map<String, Integer> calls = new ConcurrentHashMap<>();
@NonNull
@Override
public String getDisplayName() {
return "Extension List access via HTTP";
}
@NonNull
@Override
public LocalDate getStart() {
return LocalDate.of(2025, 4, 5);
}
@NonNull
@Override
public LocalDate getEnd() {
return LocalDate.of(2025, 7, 1);
}
@Override
public synchronized JSONObject createContent() {
JSONObject info = new JSONObject();
info.put("components", buildComponentInformation());
Map<String, Integer> currentRequests = new TreeMap<>(calls);
calls.clear();
JSONObject payload = new JSONObject();
payload.putAll(currentRequests);
info.put("dispatches", payload);
return info;
}
public synchronized void record(String path) {
String[] parts = path.split("/");
if (parts.length > 1) {
// Record just extension point + implementation class
path = parts[0] + '/' + parts[1];
}
calls.compute(path, (p, v) -> v == null ? 1 : v + 1);
}
@Extension
@Restricted(NoExternalUse.class)
public static class ExtensionListRootAction extends InvisibleAction implements RootAction {
private static final Logger LOGGER = Logger.getLogger(ExtensionListRootAction.class.getName());
@Override
public String getUrlName() {
return "extensionList";
}
public ExtensionList getDynamic(String extensionType) throws ClassNotFoundException {
StaplerRequest2 req = Stapler.getCurrentRequest2();
if (req != null && extensionType != null) {
try {
final HttpExtensionList telemetry = ExtensionList.lookupSingleton(HttpExtensionList.class);
if (telemetry.isActivePeriod()) {
telemetry.record(extensionType + req.getRestOfPath());
}
} catch (Exception ex) {
LOGGER.log(FINE, "Failed to record telemetry for " + HttpExtensionList.class.getName(), ex);
}
}
return Jenkins.get().getExtensionList(extensionType);
}
}
}
@@ -30,7 +30,7 @@ THE SOFTWARE.
<l:layout permission="${app.ADMINISTER}" title="${%title}">
<st:include page="sidepanel.jelly" it="${it.targetUser}" />
<l:main-panel>
<f:form method="post" action="configSubmit" name="config">
<f:form method="post" action="configSubmit" name="config" class="jenkins-form">
<h1>
${%title}
</h1>
@@ -44,7 +44,7 @@ THE SOFTWARE.
<j:when test="${hasItems}">
<j:forEach var="d" items="${descriptors}" varStatus="loop">
<j:if test="${d.enabled}">
<f:section title="${d.displayName}">
<f:section title="${d.displayName}" description="${d.description}">
<j:set var="it" value="${thisAction.targetUser}" />
<j:set var="descriptor" value="${d}" />
<j:set var="instance" value="${instances[d]}" />
@@ -1,13 +1,8 @@
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<j:if test="${descriptor.enabled}">
<f:section title="${%Console URL Provider}">
<f:block>
${%description}
</f:block>
<f:entry>
<f:repeatableHeteroProperty field="providers" hasHeader="true" oneEach="true" header="${%Providers}" />
</f:entry>
<f:section title="${%Console URL Provider}" description="${%description}">
<f:repeatableHeteroProperty field="providers" hasHeader="true" oneEach="true" header="${%Providers}" />
</f:section>
</j:if>
</j:jelly>
@@ -5,8 +5,6 @@
<!-- Dummy field to always have an entry in form submissions so users can delete all providers. -->
<f:checkbox field="unused" checked="true" />
</f:invisibleEntry>
<f:entry>
<f:repeatableHeteroProperty field="providers" hasHeader="true" oneEach="true" header="${%Providers}" />
</f:entry>
<f:repeatableHeteroProperty field="providers" hasHeader="true" oneEach="true" header="${%Providers}" />
</j:if>
</j:jelly>
@@ -1,33 +0,0 @@
/*
* The MIT License
*
* Copyright 2019 Daniel Beck
*
* 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.GlobalBuildDiscarderConfiguration
f = namespace(lib.FormTagLib)
f.section(title: _("Global Build Discarders")) {
f.block() {
f.repeatableHeteroProperty(field: "configuredBuildDiscarders", hasHeader: true, oneEach: true)
}
}
@@ -0,0 +1,28 @@
<!--
The MIT License
Copyright (c) 2025, Stefan Spieker
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.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:section title="${%Global Build Discarders}">
<f:block>
<f:repeatableHeteroProperty field="configuredBuildDiscarders" hasHeader="true" oneEach="true"/>
</f:block>
</f:section>
</j:jelly>
@@ -0,0 +1,19 @@
# The MIT License
# Copyright (c) 2025, Stefan Spieker
# 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.
Global\ Build\ Discarders=Globale Build-Löschrichtlinien
@@ -1,9 +0,0 @@
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core">
<p>
${%blurb}
</p>
<p>
${%blurb2}
</p>
</j:jelly>
@@ -1,4 +0,0 @@
blurb = This trial records uses of an HTTP endpoint granting direct access to extensions, the building blocks of Jenkins's extensibility through plugins. \
It is expected that there are few legitimate uses of this endpoint, and this trial informs plans for its eventual removal.
blurb2 = Additionally, this trial collects the list of installed plugins, their version, and the version of Jenkins. \
This data will be used to understand the environments that Jenkins is running in.
+1 -1
View File
@@ -9,7 +9,7 @@
</breadcrumbs>
<head>
<![CDATA[
<script src="https://cdn.jsdelivr.net/npm/lit@3.3.0/polyfill-support.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lit@3.3.1/polyfill-support.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2.8.0/webcomponents-loader.js"></script>
<script data="jio" src="https://cdn.jsdelivr.net/npm/@jenkinsci/jenkins-io-components/+esm" type="module"></script>
<script data="jio" nomodule="" src="https://cdn.jsdelivr.net/npm/@jenkinsci/jenkins-io-components"></script>
+4 -4
View File
@@ -26,12 +26,12 @@
"@babel/cli": "7.28.0",
"@babel/core": "7.28.0",
"@babel/preset-env": "7.28.0",
"@eslint/js": "9.30.1",
"@eslint/js": "9.31.0",
"babel-loader": "10.0.0",
"clean-webpack-plugin": "4.0.0",
"css-loader": "7.1.2",
"css-minimizer-webpack-plugin": "7.0.2",
"eslint": "9.30.1",
"eslint": "9.31.0",
"eslint-config-prettier": "10.1.5",
"eslint-formatter-checkstyle": "8.40.0",
"globals": "16.3.0",
@@ -46,9 +46,9 @@
"sass-loader": "16.0.5",
"style-loader": "4.0.0",
"stylelint": "16.21.1",
"stylelint-checkstyle-reporter": "1.0.0",
"stylelint-checkstyle-reporter": "1.1.1",
"stylelint-config-standard-scss": "15.0.1",
"webpack": "5.99.9",
"webpack": "5.100.2",
"webpack-cli": "6.0.1",
"webpack-remove-empty-scripts": "1.1.1"
},
+5 -5
View File
@@ -28,7 +28,7 @@ THE SOFTWARE.
<parent>
<groupId>org.jenkins-ci</groupId>
<artifactId>jenkins</artifactId>
<version>1.133</version>
<version>1.134</version>
<relativePath />
</parent>
@@ -73,9 +73,9 @@ THE SOFTWARE.
</issueManagement>
<properties>
<revision>2.519</revision>
<revision>2.520</revision>
<changelist>-SNAPSHOT</changelist>
<project.build.outputTimestamp>2025-07-08T13:08:54Z</project.build.outputTimestamp>
<project.build.outputTimestamp>2025-07-15T13:07:49Z</project.build.outputTimestamp>
<!-- configuration for patch tracker plugin -->
<project.patchManagement.system>github</project.patchManagement.system>
@@ -87,7 +87,7 @@ THE SOFTWARE.
<changelog.url>https://www.jenkins.io/changelog</changelog.url>
<!-- Bundled Remoting version -->
<remoting.version>3309.v27b_9314fd1a_4</remoting.version>
<remoting.version>3324.vea_eda_e98cd69</remoting.version>
<spotbugs.effort>Max</spotbugs.effort>
<spotbugs.threshold>Medium</spotbugs.threshold>
@@ -98,7 +98,7 @@ THE SOFTWARE.
<spotless.check.skip>false</spotless.check.skip>
<!-- Make sure to keep the jetty-ee9-maven-plugin version in war/pom.xml in sync with the Jetty release in Winstone: -->
<winstone.version>8.11</winstone.version>
<node.version>22.17.0</node.version>
<node.version>22.17.1</node.version>
</properties>
<!--
+15 -9
View File
@@ -36,15 +36,21 @@ function dropdown() {
animation: "dropdown",
duration: 250,
onShow: (instance) => {
// Make sure only one instance is visible at all times
const dropdowns = document.querySelectorAll("[data-tippy-root]");
Array.from(dropdowns).forEach((element) => {
// Check if the Tippy.js instance exists
if (element && element._tippy) {
// To just hide the dropdown
element._tippy.hide();
}
});
// Make sure only one instance is visible at all times in case of breadcrumb
if (
instance.reference.classList.contains("hoverable-model-link") ||
instance.reference.classList.contains("hoverable-children-model-link")
) {
const dropdowns = document.querySelectorAll("[data-tippy-root]");
Array.from(dropdowns).forEach((element) => {
// Check if the Tippy.js instance exists
if (element && element._tippy) {
// To just hide the dropdown
element._tippy.hide();
}
});
}
const referenceParent = instance.reference.parentNode;
if (referenceParent.classList.contains("model-link")) {
+7 -4
View File
@@ -49,6 +49,9 @@ THE SOFTWARE.
<jenkins.addOpens>--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED</jenkins.addOpens>
<!-- Filled in by maven-hpi-plugin with the path to org-netbeans-insane-hook.jar extracted from jenkins-test-harness -->
<jenkins.insaneHook />
<!-- Filled in by maven-hpi-plugin with "-javaagent:/path/to/mockito-core-<version>.jar" -->
<jenkins.javaAgent />
</properties>
<dependencyManagement>
@@ -63,7 +66,7 @@ THE SOFTWARE.
<dependency>
<groupId>io.jenkins.plugins</groupId>
<artifactId>commons-lang3-api</artifactId>
<version>3.17.0-87.v5cf526e63b_8b_</version>
<version>3.18.0-98.v3a_674c06072d</version>
</dependency>
<dependency>
<!-- RequireUpperBoundDeps between checks-api, plugin-util-api, and font-awesome-api -->
@@ -128,7 +131,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>700.v6e45cb_a_5a_a_21</version>
<version>704.ve4f0967e98fa_</version>
</dependency>
<dependency>
<!-- Required by plugin-util-api -->
@@ -223,7 +226,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>6.1026.ve06dfa_cf31c3</version>
<version>6.1036.vb_94fd035b_287</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -386,7 +389,7 @@ THE SOFTWARE.
<artifactId>maven-surefire-plugin</artifactId>
<!-- version specified in grandparent pom -->
<configuration>
<argLine>@{jacocoSurefireArgs} -Xmx1g @{jenkins.addOpens} @{jenkins.insaneHook}</argLine>
<argLine>@{jacocoSurefireArgs} -Xmx1g @{jenkins.addOpens} @{jenkins.insaneHook} @{jenkins.javaAgent}</argLine>
<systemPropertyVariables>
<hudson.maven.debug>${mavenDebug}</hudson.maven.debug>
<buildDirectory>${project.build.directory}</buildDirectory>
+2 -2
View File
@@ -414,7 +414,7 @@ THE SOFTWARE.
<!-- dependency of checks-api, junit, plugin-util-api, workflow-api, and workflow-support -->
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>700.v6e45cb_a_5a_a_21</version>
<version>704.ve4f0967e98fa_</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
@@ -512,7 +512,7 @@ THE SOFTWARE.
<!-- dependency of bootstrap5-api, checks-api, commons-text-api, echarts-api, font-awesome-api, jquery3-api, and plugin-util-api -->
<groupId>io.jenkins.plugins</groupId>
<artifactId>commons-lang3-api</artifactId>
<version>3.17.0-87.v5cf526e63b_8b_</version>
<version>3.18.0-98.v3a_674c06072d</version>
<type>hpi</type>
</artifactItem>
<artifactItem>
+58 -39
View File
@@ -1704,6 +1704,15 @@ __metadata:
languageName: node
linkType: hard
"@eslint/core@npm:^0.15.0":
version: 0.15.1
resolution: "@eslint/core@npm:0.15.1"
dependencies:
"@types/json-schema": "npm:^7.0.15"
checksum: 10c0/abaf641940776638b8c15a38d99ce0dac551a8939310ec81b9acd15836a574cf362588eaab03ab11919bc2a0f9648b19ea8dee33bf12675eb5b6fd38bda6f25e
languageName: node
linkType: hard
"@eslint/eslintrc@npm:^3.3.1":
version: 3.3.1
resolution: "@eslint/eslintrc@npm:3.3.1"
@@ -1721,10 +1730,10 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:9.30.1":
version: 9.30.1
resolution: "@eslint/js@npm:9.30.1"
checksum: 10c0/17fc382a0deafdb1cadac1269d9c2f2464f025bde6e4d12fc4f4775eb9886b41340d4650b72e85a53423644fdc89bf59c987a852f27379ad25feecf2c5bbc1c9
"@eslint/js@npm:9.31.0":
version: 9.31.0
resolution: "@eslint/js@npm:9.31.0"
checksum: 10c0/f9d4c73d0fafe70679a418cbb25ab7ebcc8f1dba6c32456d6f8ba5a137d583ecff233cfe10f61f41d7d4d2220e94cff1f39fc7ed1fa3819d1888dee1cad678ea
languageName: node
linkType: hard
@@ -2167,10 +2176,10 @@ __metadata:
languageName: node
linkType: hard
"@types/estree@npm:*, @types/estree@npm:^1.0.6":
version: 1.0.6
resolution: "@types/estree@npm:1.0.6"
checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a
"@types/estree@npm:*, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8":
version: 1.0.8
resolution: "@types/estree@npm:1.0.8"
checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5
languageName: node
linkType: hard
@@ -2453,6 +2462,15 @@ __metadata:
languageName: node
linkType: hard
"acorn-import-phases@npm:^1.0.3":
version: 1.0.3
resolution: "acorn-import-phases@npm:1.0.3"
peerDependencies:
acorn: ^8.14.0
checksum: 10c0/43cc13a63f13105756e53cdc057f0a60dcbf38f8be739258ba85ed9f126920936a0720a4232a45569d391e82da85135af23dd431e8882a226380db289632f7b2
languageName: node
linkType: hard
"acorn-jsx@npm:^5.3.2":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
@@ -2462,7 +2480,7 @@ __metadata:
languageName: node
linkType: hard
"acorn@npm:^8.14.0, acorn@npm:^8.15.0, acorn@npm:^8.8.2":
"acorn@npm:^8.15.0, acorn@npm:^8.8.2":
version: 8.15.0
resolution: "acorn@npm:8.15.0"
bin:
@@ -3412,13 +3430,13 @@ __metadata:
languageName: node
linkType: hard
"enhanced-resolve@npm:^5.17.1":
version: 5.18.0
resolution: "enhanced-resolve@npm:5.18.0"
"enhanced-resolve@npm:^5.17.2":
version: 5.18.2
resolution: "enhanced-resolve@npm:5.18.2"
dependencies:
graceful-fs: "npm:^4.2.4"
tapable: "npm:^2.2.0"
checksum: 10c0/5fcc264a6040754ab5b349628cac2bb5f89cee475cbe340804e657a5b9565f70e6aafb338d5895554eb0ced9f66c50f38a255274a0591dcb64ee17c549c459ce
checksum: 10c0/2a45105daded694304b0298d1c0351a981842249a9867513d55e41321a4ccf37dfd35b0c1e9ceae290eab73654b09aa7a910d618ea6f9441e97c52bc424a2372
languageName: node
linkType: hard
@@ -3534,17 +3552,17 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:9.30.1":
version: 9.30.1
resolution: "eslint@npm:9.30.1"
"eslint@npm:9.31.0":
version: 9.31.0
resolution: "eslint@npm:9.31.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.12.1"
"@eslint/config-array": "npm:^0.21.0"
"@eslint/config-helpers": "npm:^0.3.0"
"@eslint/core": "npm:^0.14.0"
"@eslint/core": "npm:^0.15.0"
"@eslint/eslintrc": "npm:^3.3.1"
"@eslint/js": "npm:9.30.1"
"@eslint/js": "npm:9.31.0"
"@eslint/plugin-kit": "npm:^0.3.1"
"@humanfs/node": "npm:^0.16.6"
"@humanwhocodes/module-importer": "npm:^1.0.1"
@@ -3580,7 +3598,7 @@ __metadata:
optional: true
bin:
eslint: bin/eslint.js
checksum: 10c0/5a5867078e03ea56a1b6d1ee1548659abc38a6d5136c7ef94e21c5dbeb28e3ed50b15d2e0da25fce85600f6cf7ea7715eae650c41e8ae826c34490e9ec73d5d6
checksum: 10c0/3fd1cd5b38b907ecb3f5e7537ab91204efb38bc1ad0ca6e46fc4112f13b594272ff56e641b41580049bc333fbcb5b1b99ca9a542e8406e7da5e951068cbaec77
languageName: node
linkType: hard
@@ -4365,12 +4383,12 @@ __metadata:
"@babel/cli": "npm:7.28.0"
"@babel/core": "npm:7.28.0"
"@babel/preset-env": "npm:7.28.0"
"@eslint/js": "npm:9.30.1"
"@eslint/js": "npm:9.31.0"
babel-loader: "npm:10.0.0"
clean-webpack-plugin: "npm:4.0.0"
css-loader: "npm:7.1.2"
css-minimizer-webpack-plugin: "npm:7.0.2"
eslint: "npm:9.30.1"
eslint: "npm:9.31.0"
eslint-config-prettier: "npm:10.1.5"
eslint-formatter-checkstyle: "npm:8.40.0"
globals: "npm:16.3.0"
@@ -4390,10 +4408,10 @@ __metadata:
sortablejs: "npm:1.15.6"
style-loader: "npm:4.0.0"
stylelint: "npm:16.21.1"
stylelint-checkstyle-reporter: "npm:1.0.0"
stylelint-checkstyle-reporter: "npm:1.1.1"
stylelint-config-standard-scss: "npm:15.0.1"
tippy.js: "npm:6.3.7"
webpack: "npm:5.99.9"
webpack: "npm:5.100.2"
webpack-cli: "npm:6.0.1"
webpack-remove-empty-scripts: "npm:1.1.1"
window-handle: "npm:1.0.1"
@@ -6628,15 +6646,15 @@ __metadata:
languageName: node
linkType: hard
"stylelint-checkstyle-reporter@npm:1.0.0":
version: 1.0.0
resolution: "stylelint-checkstyle-reporter@npm:1.0.0"
"stylelint-checkstyle-reporter@npm:1.1.1":
version: 1.1.1
resolution: "stylelint-checkstyle-reporter@npm:1.1.1"
dependencies:
get-stdin: "npm:9.0.0"
xmlbuilder2: "npm:3.1.1"
bin:
stylelint-checkstyle-reporter: dist/reporter-with-stdin.mjs
checksum: 10c0/26d45528ab75ad4129abdf34436578a2a0e6a10c552e53b1bb19fb7eff8433f1fd77ab3fb6698b295802df54f9005d8031791451b695fa86269e20385b978a9b
checksum: 10c0/e003714d6877b2296cd79831ac7859c88b49e4b57ec7e01e0b46aa5169b8bdcd98422be80a79ac48e25f9fe2258fc0e0977b70584a11de39ae28e09267b75461
languageName: node
linkType: hard
@@ -7072,27 +7090,28 @@ __metadata:
languageName: node
linkType: hard
"webpack-sources@npm:^3.2.3":
version: 3.2.3
resolution: "webpack-sources@npm:3.2.3"
checksum: 10c0/2ef63d77c4fad39de4a6db17323d75eb92897b32674e97d76f0a1e87c003882fc038571266ad0ef581ac734cbe20952912aaa26155f1905e96ce251adbb1eb4e
"webpack-sources@npm:^3.3.3":
version: 3.3.3
resolution: "webpack-sources@npm:3.3.3"
checksum: 10c0/ab732f6933b513ba4d505130418995ddef6df988421fccf3289e53583c6a39e205c4a0739cee98950964552d3006604912679c736031337fb4a9d78d8576ed40
languageName: node
linkType: hard
"webpack@npm:5.99.9":
version: 5.99.9
resolution: "webpack@npm:5.99.9"
"webpack@npm:5.100.2":
version: 5.100.2
resolution: "webpack@npm:5.100.2"
dependencies:
"@types/eslint-scope": "npm:^3.7.7"
"@types/estree": "npm:^1.0.6"
"@types/estree": "npm:^1.0.8"
"@types/json-schema": "npm:^7.0.15"
"@webassemblyjs/ast": "npm:^1.14.1"
"@webassemblyjs/wasm-edit": "npm:^1.14.1"
"@webassemblyjs/wasm-parser": "npm:^1.14.1"
acorn: "npm:^8.14.0"
acorn: "npm:^8.15.0"
acorn-import-phases: "npm:^1.0.3"
browserslist: "npm:^4.24.0"
chrome-trace-event: "npm:^1.0.2"
enhanced-resolve: "npm:^5.17.1"
enhanced-resolve: "npm:^5.17.2"
es-module-lexer: "npm:^1.2.1"
eslint-scope: "npm:5.1.1"
events: "npm:^3.2.0"
@@ -7106,13 +7125,13 @@ __metadata:
tapable: "npm:^2.1.1"
terser-webpack-plugin: "npm:^5.3.11"
watchpack: "npm:^2.4.1"
webpack-sources: "npm:^3.2.3"
webpack-sources: "npm:^3.3.3"
peerDependenciesMeta:
webpack-cli:
optional: true
bin:
webpack: bin/webpack.js
checksum: 10c0/34ec3f19b50bccaf27929e5e5b901b25047f2d414acba7d0967dc98eb4f404d107fb1a4b63095edbca2b006ff5815f1720b131e10b20664b074dfc86b7ffa717
checksum: 10c0/0add75d44c482634c6879a3fc87fa2af6a6c7c8eacda5d5f60ed778a2ce13d33fd6178a2b4750368706a49e769af6d828934c28914b4faa2e21be790f92b4110
languageName: node
linkType: hard