aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJeremy Davis <jeremy.davis@sonarsource.com>2024-10-14 11:01:10 +0200
committersonartech <sonartech@sonarsource.com>2024-10-22 20:03:09 +0000
commitdf6a4b8b61181bae40298a7031bb66af6373ebb7 (patch)
tree1be57d33d3d483f7b0ae41273c16d06dac417234 /server
parent37d9d2491a688ba82b5c839a2279015826c9a28b (diff)
downloadsonarqube-df6a4b8b61181bae40298a7031bb66af6373ebb7.tar.gz
sonarqube-df6a4b8b61181bae40298a7031bb66af6373ebb7.zip
SONAR-23205 Migrate build system to vite
Diffstat (limited to 'server')
-rw-r--r--server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthStatusPageGenerator.java2
-rw-r--r--server/sonar-auth-saml/src/main/resources/samlAuthResult.html24
-rw-r--r--server/sonar-web/babel.config.js23
-rw-r--r--server/sonar-web/config/esbuild-config.js77
-rw-r--r--server/sonar-web/config/esbuild-html-plugin.js60
-rw-r--r--server/sonar-web/config/indexHtmlTemplate.js58
-rw-r--r--server/sonar-web/config/process-shim.js22
-rw-r--r--server/sonar-web/config/utils.js8
-rw-r--r--server/sonar-web/config/vite-dev-server-html-plugin.mjs (renamed from server/sonar-web/config/paths.js)17
-rw-r--r--server/sonar-web/index.html43
-rw-r--r--server/sonar-web/package.json26
-rw-r--r--server/sonar-web/scripts/build.js57
-rw-r--r--server/sonar-web/scripts/start.js135
-rw-r--r--server/sonar-web/src/main/js/app/index.ts8
-rw-r--r--server/sonar-web/src/main/js/app/theme-old.js (renamed from server/sonar-web/src/main/js/app/theme.js)0
-rw-r--r--server/sonar-web/src/main/js/app/theme.ts277
-rw-r--r--server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/issues/__tests__/IssuesApp-it.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/issues/__tests__/IssuesSourceViewer-it.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/ProjectQualityGateApp-it.tsx7
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/projectQualityProfilesApp-it.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/components/__tests__/TutorialsApp-test.tsx2
-rw-r--r--server/sonar-web/vite.config.mjs168
-rw-r--r--server/sonar-web/yarn.lock1626
-rw-r--r--server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/SamlValidationRedirectionFilter.java2
-rw-r--r--server/sonar-webserver/src/main/java/org/sonar/server/platform/web/CspFilter.java3
-rw-r--r--server/sonar-webserver/src/main/java/org/sonar/server/platform/web/WebPagesCache.java2
-rw-r--r--server/sonar-webserver/src/test/java/org/sonar/server/platform/web/CspFilterTest.java2
-rw-r--r--server/sonar-webserver/src/test/java/org/sonar/server/platform/web/WebPagesCacheTest.java2
29 files changed, 1953 insertions, 706 deletions
diff --git a/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthStatusPageGenerator.java b/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthStatusPageGenerator.java
index 672f384f746..62f9071a84f 100644
--- a/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthStatusPageGenerator.java
+++ b/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthStatusPageGenerator.java
@@ -30,7 +30,7 @@ import org.sonar.api.server.http.HttpRequest;
public final class SamlAuthStatusPageGenerator {
- private static final String WEB_CONTEXT = "%WEB_CONTEXT%";
+ private static final String WEB_CONTEXT = "WEB_CONTEXT";
private static final String SAML_AUTHENTICATION_STATUS = "%SAML_AUTHENTICATION_STATUS%";
private static final String HTML_TEMPLATE_NAME = "samlAuthResult.html";
diff --git a/server/sonar-auth-saml/src/main/resources/samlAuthResult.html b/server/sonar-auth-saml/src/main/resources/samlAuthResult.html
index bff1c9ef20d..945a8a68c83 100644
--- a/server/sonar-auth-saml/src/main/resources/samlAuthResult.html
+++ b/server/sonar-auth-saml/src/main/resources/samlAuthResult.html
@@ -3,40 +3,40 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <link rel="apple-touch-icon" href="%WEB_CONTEXT%/apple-touch-icon.png" />
- <link rel="apple-touch-icon" sizes="57x57" href="%WEB_CONTEXT%/apple-touch-icon-57x57.png" />
- <link rel="apple-touch-icon" sizes="60x60" href="%WEB_CONTEXT%/apple-touch-icon-60x60.png" />
- <link rel="apple-touch-icon" sizes="72x72" href="%WEB_CONTEXT%/apple-touch-icon-72x72.png" />
- <link rel="apple-touch-icon" sizes="76x76" href="%WEB_CONTEXT%/apple-touch-icon-76x76.png" />
+ <link rel="apple-touch-icon" href="WEB_CONTEXT/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="57x57" href="WEB_CONTEXT/apple-touch-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="WEB_CONTEXT/apple-touch-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="WEB_CONTEXT/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="WEB_CONTEXT/apple-touch-icon-76x76.png" />
<link
rel="apple-touch-icon"
sizes="114x114"
- href="%WEB_CONTEXT%/apple-touch-icon-114x114.png"
+ href="WEB_CONTEXT/apple-touch-icon-114x114.png"
/>
<link
rel="apple-touch-icon"
sizes="120x120"
- href="%WEB_CONTEXT%/apple-touch-icon-120x120.png"
+ href="WEB_CONTEXT/apple-touch-icon-120x120.png"
/>
<link
rel="apple-touch-icon"
sizes="144x144"
- href="%WEB_CONTEXT%/apple-touch-icon-144x144.png"
+ href="WEB_CONTEXT/apple-touch-icon-144x144.png"
/>
<link
rel="apple-touch-icon"
sizes="152x152"
- href="%WEB_CONTEXT%/apple-touch-icon-152x152.png"
+ href="WEB_CONTEXT/apple-touch-icon-152x152.png"
/>
<link
rel="apple-touch-icon"
sizes="180x180"
- href="%WEB_CONTEXT%/apple-touch-icon-180x180.png"
+ href="WEB_CONTEXT/apple-touch-icon-180x180.png"
/>
- <link rel="icon" type="image/x-icon" href="%WEB_CONTEXT%/favicon.ico" />
+ <link rel="icon" type="image/x-icon" href="WEB_CONTEXT/favicon.ico" />
<meta name="application-name" content="SonarQube" />
<meta name="msapplication-TileColor" content="#FFFFFF" />
- <meta name="msapplication-TileImage" content="%WEB_CONTEXT%/mstile-512x512.png" />
+ <meta name="msapplication-TileImage" content="WEB_CONTEXT/mstile-512x512.png" />
<title>SAML Authentication Test</title>
<style>
diff --git a/server/sonar-web/babel.config.js b/server/sonar-web/babel.config.js
new file mode 100644
index 00000000000..353be5de9f4
--- /dev/null
+++ b/server/sonar-web/babel.config.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2009-2024 SonarSource SA
+ * All rights reserved
+ * mailto:info AT sonarsource DOT com
+ */
+
+const envPlugins = [];
+
+module.exports = {
+ plugins: ['@emotion'],
+ presets: [
+ ['@babel/preset-react', { runtime: 'automatic' }],
+ ['@babel/preset-typescript', { allowNamespaces: true }],
+ ],
+ env: {
+ production: {
+ plugins: envPlugins,
+ },
+ development: {
+ plugins: envPlugins,
+ },
+ },
+};
diff --git a/server/sonar-web/config/esbuild-config.js b/server/sonar-web/config/esbuild-config.js
deleted file mode 100644
index 998598ee4a0..00000000000
--- a/server/sonar-web/config/esbuild-config.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-const autoprefixer = require('autoprefixer');
-const postCssPlugin = require('./esbuild-postcss-plugin');
-const postcss = require('postcss');
-const postCssCalc = require('postcss-calc');
-const postCssCustomProperties = require('postcss-custom-properties');
-const tailwindcss = require('tailwindcss');
-const htmlPlugin = require('./esbuild-html-plugin');
-const htmlTemplate = require('./indexHtmlTemplate');
-const {
- getCustomProperties,
- ESBUILD_TARGET_BROWSERS,
- AUTOPREFIXER_BROWSER_LIST,
-} = require('./utils');
-
-module.exports = (release) => {
- const plugins = [
- postCssPlugin({
- plugins: [
- autoprefixer({ overrideBrowserslist: AUTOPREFIXER_BROWSER_LIST }),
- postCssCustomProperties({
- importFrom: { customProperties: getCustomProperties() },
- preserve: false,
- }),
- postCssCalc,
- tailwindcss('./tailwind.config.js'),
- ],
- postcss,
- }),
- ];
-
- if (release) {
- // Only create index.html from template when releasing
- // The devserver will generate its own index file from the template
- plugins.push(htmlPlugin());
- }
-
- return {
- entryPoints: ['src/main/js/app/index.ts'],
- tsconfig: './tsconfig.json',
- external: ['/images/*', '../fonts/*'],
- loader: {
- '.png': 'dataurl',
- '.md': 'text',
- },
- define: {
- 'process.cwd': 'dummy_process_cwd',
- },
- inject: ['config/process-shim.js'],
- bundle: true,
- minify: release,
- metafile: true,
- sourcemap: true,
- target: ESBUILD_TARGET_BROWSERS,
- outdir: 'build/webapp/js',
- entryNames: release ? 'out[hash]' : 'out',
- plugins,
- };
-};
diff --git a/server/sonar-web/config/esbuild-html-plugin.js b/server/sonar-web/config/esbuild-html-plugin.js
deleted file mode 100644
index 113d90c9cbf..00000000000
--- a/server/sonar-web/config/esbuild-html-plugin.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-const fs = require('fs-extra');
-const path = require('path');
-const paths = require('./paths');
-const htmlTemplate = require('./indexHtmlTemplate');
-
-function extractHash(filename) {
- const regexp = /out([\w]+)\./;
- const result = filename.match(regexp);
- if (!result) {
- throw Error('filename format error: could not extract hash');
- }
-
- return result[1];
-}
-
-/*
- * This plugin generates a index.html file from the template,
- * injecting the right hash values to the imported js and css files
- */
-module.exports = () => ({
- name: 'html-plugin',
- setup({ onEnd }) {
- onEnd(result => {
- const files = result.metafile.outputs;
-
- let cssHash;
- let jsHash;
- for (const filename in files) {
- if (filename.endsWith('css')) {
- cssHash = extractHash(filename);
- } else if (filename.endsWith('js')) {
- jsHash = extractHash(filename);
- }
- }
-
- const htmlContents = htmlTemplate(cssHash, jsHash);
-
- fs.writeFile(path.join(paths.appBuild, 'index.html'), htmlContents);
- });
- }
-});
diff --git a/server/sonar-web/config/indexHtmlTemplate.js b/server/sonar-web/config/indexHtmlTemplate.js
deleted file mode 100644
index 6d708a8c2e9..00000000000
--- a/server/sonar-web/config/indexHtmlTemplate.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-module.exports = (cssHash, jsHash) => `
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" charset="UTF-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <link rel="apple-touch-icon" href="%WEB_CONTEXT%/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="57x57" href="%WEB_CONTEXT%/apple-touch-icon-57x57.png">
- <link rel="apple-touch-icon" sizes="60x60" href="%WEB_CONTEXT%/apple-touch-icon-60x60.png">
- <link rel="apple-touch-icon" sizes="72x72" href="%WEB_CONTEXT%/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="76x76" href="%WEB_CONTEXT%/apple-touch-icon-76x76.png">
- <link rel="apple-touch-icon" sizes="114x114" href="%WEB_CONTEXT%/apple-touch-icon-114x114.png">
- <link rel="apple-touch-icon" sizes="120x120" href="%WEB_CONTEXT%/apple-touch-icon-120x120.png">
- <link rel="apple-touch-icon" sizes="144x144" href="%WEB_CONTEXT%/apple-touch-icon-144x144.png">
- <link rel="apple-touch-icon" sizes="152x152" href="%WEB_CONTEXT%/apple-touch-icon-152x152.png">
- <link rel="apple-touch-icon" sizes="180x180" href="%WEB_CONTEXT%/apple-touch-icon-180x180.png">
- <link rel="icon" type="image/x-icon" href="%WEB_CONTEXT%/favicon.ico">
- <meta name="application-name" content="SonarQube" />
- <meta name="msapplication-TileColor" content="#FFFFFF" />
- <meta name="msapplication-TileImage" content="%WEB_CONTEXT%/mstile-512x512.png" />
- <title>%INSTANCE%</title>
-
- <link rel="stylesheet" href="%WEB_CONTEXT%/js/out${cssHash}.css" />
-</head>
-
-<body>
- <div id="content" data-base-url="%WEB_CONTEXT%" data-server-status="%SERVER_STATUS%" data-instance="%INSTANCE%" data-official="%OFFICIAL%">
- <div class="global-loading">
- <i class="global-loading-spinner"></i>
- <span aria-live="polite" class="global-loading-text">Loading...</span>
- </div>
- </div>
-
- <script type="module" src="%WEB_CONTEXT%/js/out${jsHash}.js"></script>
-</body>
-
-</html>
-`;
diff --git a/server/sonar-web/config/process-shim.js b/server/sonar-web/config/process-shim.js
deleted file mode 100644
index 323234455a7..00000000000
--- a/server/sonar-web/config/process-shim.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-export function dummy_process_cwd() {
- return '';
-}
diff --git a/server/sonar-web/config/utils.js b/server/sonar-web/config/utils.js
index cea65a653e5..537ecadf68b 100644
--- a/server/sonar-web/config/utils.js
+++ b/server/sonar-web/config/utils.js
@@ -31,14 +31,14 @@ function getCustomProperties() {
console.error(
`Custom CSS property "${key}" already exists with value "${
customProperties[`--${key}`]
- }".`
+ }".`,
);
process.exit(1);
}
}
});
};
- parseCustomProperties(require('../src/main/js/app/theme'));
+ parseCustomProperties(require('../src/main/js/app/theme-old'));
return customProperties;
}
@@ -49,7 +49,7 @@ function importAsGlobals(mapping) {
const filter = new RegExp(
Object.keys(mapping)
.map((moduleName) => `^${escRe(moduleName)}$`)
- .join('|')
+ .join('|'),
);
return {
@@ -76,7 +76,7 @@ function importAsGlobals(mapping) {
contents: `module.exports = ${globalName};`,
loader: 'js',
};
- }
+ },
);
},
};
diff --git a/server/sonar-web/config/paths.js b/server/sonar-web/config/vite-dev-server-html-plugin.mjs
index 9bb4d615189..e5c690583e3 100644
--- a/server/sonar-web/config/paths.js
+++ b/server/sonar-web/config/vite-dev-server-html-plugin.mjs
@@ -17,10 +17,17 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-const path = require('path');
-module.exports = {
- appBuild: path.join(__dirname, '../build/webapp'),
- appPublic: path.join(__dirname, '../public'),
- appHtml: path.join(__dirname, '../public/index.html'),
+export const viteDevServerHtmlPlugin = () => {
+ return {
+ name: 'html-transform',
+ apply: 'serve',
+ transformIndexHtml(html) {
+ return html
+ .replace(/WEB_CONTEXT/g, '')
+ .replace(/%SERVER_STATUS%/g, 'UP')
+ .replace(/%INSTANCE%/g, 'SonarQube')
+ .replace(/%OFFICIAL%/g, 'true');
+ },
+ };
};
diff --git a/server/sonar-web/index.html b/server/sonar-web/index.html
new file mode 100644
index 00000000000..4362c3bdc7d
--- /dev/null
+++ b/server/sonar-web/index.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <link rel="apple-touch-icon" href="WEB_CONTEXT/apple-touch-icon.png" />
+ <link rel="apple-touch-icon" sizes="57x57" href="WEB_CONTEXT/apple-touch-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="WEB_CONTEXT/apple-touch-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="WEB_CONTEXT/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="WEB_CONTEXT/apple-touch-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="WEB_CONTEXT/apple-touch-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="WEB_CONTEXT/apple-touch-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="WEB_CONTEXT/apple-touch-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="WEB_CONTEXT/apple-touch-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="WEB_CONTEXT/apple-touch-icon-180x180.png" />
+ <link rel="icon" type="image/x-icon" href="WEB_CONTEXT/favicon.ico" />
+ <meta name="application-name" content="SonarQube" />
+ <meta name="msapplication-TileColor" content="#FFFFFF" />
+ <meta name="msapplication-TileImage" content="/mstile-512x512.png" />
+ <title>%INSTANCE%</title>
+ <script>
+ window.__assetsPath = function (filename) {
+ return 'WEB_CONTEXT/' + filename;
+ };
+ </script>
+ </head>
+
+ <body>
+ <div
+ id="content"
+ data-base-url="WEB_CONTEXT"
+ data-server-status="%SERVER_STATUS%"
+ data-instance="%INSTANCE%"
+ data-official="%OFFICIAL%"
+ >
+ <div class="global-loading">
+ <i class="global-loading-spinner"></i>
+ <span aria-live="polite" class="global-loading-text">Loading...</span>
+ </div>
+ </div>
+ <script type="module" src="./src/main/js/app/index.ts"></script>
+ </body>
+</html>
diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json
index a01988eb7c9..8ef994a6cfa 100644
--- a/server/sonar-web/package.json
+++ b/server/sonar-web/package.json
@@ -51,6 +51,11 @@
"validator": "13.12.0"
},
"devDependencies": {
+ "@babel/core": "7.25.8",
+ "@babel/preset-env": "7.25.8",
+ "@babel/preset-react": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@emotion/babel-plugin": "11.12.0",
"@emotion/jest": "11.13.0",
"@jupyterlab/nbformat": "4.2.5",
"@swc/core": "1.7.28",
@@ -83,11 +88,11 @@
"@typescript-eslint/parser": "7.18.0",
"@typescript-eslint/rule-tester": "7.18.0",
"autoprefixer": "10.4.20",
+ "browserslist-to-esbuild": "2.1.1",
"chalk": "4.1.2",
"chokidar": "3.6.0",
"dd-trace": "5.23.0",
"design-system": "1.0.0",
- "esbuild": "0.24.0",
"eslint": "8.57.1",
"eslint-config-sonarqube": "2.1.3",
"eslint-plugin-header": "3.1.1",
@@ -117,16 +122,20 @@
"postcss-custom-properties": "12.1.11",
"prettier": "3.3.3",
"prettier-plugin-organize-imports": "4.1.0",
+ "rollup-plugin-visualizer": "5.12.0",
"tailwindcss": "3.4.13",
"turbo": "2.1.3",
"typescript": "5.6.2",
+ "vite": "5.4.8",
+ "vite-plugin-babel-macros": "1.0.6",
+ "vite-plugin-require-transform": "1.0.21",
"whatwg-fetch": "3.6.20"
},
"scripts": {
- "start": "node scripts/start.js",
- "start:force": "node scripts/start.js --force-build-design-system",
- "build": "node scripts/build.js",
- "build-release": "yarn install --immutable && node scripts/build.js release",
+ "start": "vite",
+ "build": "vite build",
+ "build-release": "yarn install --immutable && yarn build",
+ "chunks-analyze": "BUNDLE_ANALYSIS=true yarn build",
"test": "jest --workerIdleMemoryLimit=1G",
"test-ci": "NODE_OPTIONS=\"-r dd-trace/ci/init\" jest --coverage --maxWorkers=5 --workerIdleMemoryLimit=2G --ci",
"test-eslint-local-rules": "jest -c eslint-local-rules/jest.config.js",
@@ -148,5 +157,12 @@
"browser": {
"path": "path-browserify"
},
+ "browserslist": [
+ "defaults and supports es6-module",
+ "Chrome >= 61",
+ "Edge >= 18",
+ "Firefox >= 60",
+ "Safari >= 11"
+ ],
"packageManager": "yarn@4.2.2"
}
diff --git a/server/sonar-web/scripts/build.js b/server/sonar-web/scripts/build.js
deleted file mode 100644
index 3a77862c6d2..00000000000
--- a/server/sonar-web/scripts/build.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-/* eslint-disable no-console*/
-process.env.NODE_ENV = 'production';
-
-const fs = require('fs-extra');
-const esbuild = require('esbuild');
-const chalk = require('chalk');
-const { performance } = require('perf_hooks');
-const paths = require('../config/paths');
-
-const getConfig = require('../config/esbuild-config');
-
-const release = process.argv.findIndex((val) => val === 'release') >= 0;
-
-function clean() {
- fs.emptyDirSync(paths.appBuild);
-}
-
-async function build() {
- const start = performance.now();
- console.log(chalk.cyan.bold(`Creating ${release ? 'optimized' : 'fast'} production build...`));
- console.log();
-
- await esbuild.build(getConfig(release)).catch(() => process.exit(1));
-
- console.log(chalk.green.bold('Compiled successfully!'));
- console.log(chalk.cyan(Math.round(performance.now() - start), 'ms'));
- console.log();
-}
-
-function copyAssets() {
- fs.copySync(paths.appPublic, paths.appBuild);
-}
-
-(async () => {
- clean();
- await build();
- copyAssets();
-})();
diff --git a/server/sonar-web/scripts/start.js b/server/sonar-web/scripts/start.js
deleted file mode 100644
index 03eb8b3fae7..00000000000
--- a/server/sonar-web/scripts/start.js
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2024 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-/* eslint-disable no-console */
-process.env.NODE_ENV = 'development';
-
-const fs = require('fs');
-const chalk = require('chalk');
-const chokidar = require('chokidar');
-const esbuild = require('esbuild');
-const http = require('http');
-const httpProxy = require('http-proxy');
-const getConfig = require('../config/esbuild-config');
-const { handleL10n } = require('./utils');
-const paths = require('../config/paths');
-const { spawn } = require('child_process');
-const { buildDesignSystem } = require('./build-design-system');
-
-const STATUS_OK = 200;
-const STATUS_ERROR = 500;
-
-const port = process.env.PORT || 3000;
-const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
-const host = process.env.HOST || 'localhost';
-const proxyTarget = process.env.PROXY || 'http://localhost:9000';
-
-const config = getConfig(false);
-
-function handleStaticFileRequest(req, res) {
- fs.readFile(paths.appBuild + req.url, (err, data) => {
- if (err) {
- // Any unknown path should go to the index.html
- const htmlTemplate = require('../config/indexHtmlTemplate');
-
- // Replace hash placeholders as well as all the
- // tags that are usually replaced by the server
- const content = htmlTemplate('', '')
- .replace(/%WEB_CONTEXT%/g, '')
- .replace(/%SERVER_STATUS%/g, 'UP')
- .replace(/%INSTANCE%/g, 'SonarQube')
- .replace(/%OFFICIAL%/g, 'true');
-
- res.writeHead(STATUS_OK);
- res.end(content);
- } else {
- res.writeHead(STATUS_OK);
- res.end(data);
- }
- });
-}
-
-const forceBuildDesignSystem = process.argv.includes('--force-build-design-system');
-
-async function run() {
- console.log('starting...');
- const esbuildContext = await esbuild.context(config);
- esbuildContext
- .serve({
- servedir: 'build/webapp',
- })
- .then((result) => {
- const { port: esbuildport } = result;
-
- const proxy = httpProxy.createProxyServer();
- const esbuildProxy = httpProxy.createProxyServer({
- target: `http://localhost:${esbuildport}`,
- });
-
- proxy.on('error', (error) => {
- console.error(chalk.blue('Backend'));
- console.error('\t', chalk.red(error.message));
- console.error('\t', error.stack);
- });
-
- esbuildProxy.on('error', (error) => {
- console.error(chalk.cyan('Frontend'));
- console.error('\t', chalk.red(error.message));
- console.error('\t', error.stack);
- });
-
- http
- .createServer((req, res) => {
- if (req.url.match(/js\/out/)) {
- esbuildProxy.web(req, res);
- } else if (req.url.match(/l10n\/index/)) {
- handleL10n(res);
- } else if (
- (req.url.includes('api/') && !req.url.includes('/web_api')) ||
- req.url.includes('images/') ||
- req.url.includes('static/')
- ) {
- proxy.web(
- req,
- res,
- {
- target: proxyTarget,
- changeOrigin: true,
- },
- (e) => console.error('req error', e),
- );
- } else {
- handleStaticFileRequest(req, res);
- }
- })
- .listen(port);
-
- console.log(`server started: http://localhost:${port}`);
- })
- .catch((e) => console.error(e));
-}
-
-buildDesignSystem({ callback: run, force: forceBuildDesignSystem });
-
-chokidar
- .watch('./design-system/src', {
- ignored: /(^|[/\\])\../, // ignore dotfiles
- persistent: true,
- })
- .on('change', () => buildDesignSystem({ force: true }));
diff --git a/server/sonar-web/src/main/js/app/index.ts b/server/sonar-web/src/main/js/app/index.ts
index 14599c2d533..7ee55bb9baa 100644
--- a/server/sonar-web/src/main/js/app/index.ts
+++ b/server/sonar-web/src/main/js/app/index.ts
@@ -18,11 +18,11 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-/* NOTE: esbuild will transpile the _syntax_ down to what the TARGET_BROWSERS (in config/utils) */
-/* understand. It will _not_, however, polyfill missing API methods, such as */
-/* String.prototype.replaceAll. This is why we also import core-js. */
+/* NOTE: esbuild will transpile the _syntax_ down to what the browsers listed in package.json */
+/* understand. It will _not_, however, polyfill missing API methods, such as */
+/* String.prototype.replaceAll. This is why we also import core-js. */
import 'core-js/stable';
-/* */
+/* */
import axios from 'axios';
import { addGlobalErrorMessage } from 'design-system';
import 'react-day-picker/dist/style.css';
diff --git a/server/sonar-web/src/main/js/app/theme.js b/server/sonar-web/src/main/js/app/theme-old.js
index f6568a90ba5..f6568a90ba5 100644
--- a/server/sonar-web/src/main/js/app/theme.js
+++ b/server/sonar-web/src/main/js/app/theme-old.js
diff --git a/server/sonar-web/src/main/js/app/theme.ts b/server/sonar-web/src/main/js/app/theme.ts
new file mode 100644
index 00000000000..f096de9b9da
--- /dev/null
+++ b/server/sonar-web/src/main/js/app/theme.ts
@@ -0,0 +1,277 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2024 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+// IMPORTANT: any change in this file requires restart of the dev server
+const grid = 8;
+const baseFontSizeRaw = 13;
+
+const theme = {
+ colors: {
+ blue: '#4b9fd5',
+ veryLightBlue: '#f2faff',
+ lightBlue: '#cae3f2',
+ darkBlue: '#236a97',
+ veryDarkBlue: '#0E516F',
+ green: '#00aa00',
+ lightGreen: '#b0d513',
+ veryLightGreen: '#f5f9fc',
+ yellow: '#eabe06',
+ orange: '#ed7d20',
+ red: '#D02F3A',
+ purple: '#9139d4',
+
+ gray94: '#efefef',
+ gray80: '#cdcdcd',
+ gray71: '#b4b4b4',
+ gray67: '#aaa',
+ gray60: '#888',
+ gray52: '#525252',
+ gray40: '#404040',
+
+ disabledQualityGate: '#757575',
+
+ sizeRatingBackground: '#297BAE',
+
+ transparentWhite: 'rgba(255,255,255,0.62)',
+ transparentGray: 'rgba(200, 200, 200, 0.5)',
+ transparentBlack: 'rgba(0, 0, 0, 0.25)',
+
+ disableGrayText: '#bbb',
+ disableGrayBorder: '#ddd',
+ disableGrayBg: '#ebebeb',
+
+ barBackgroundColor: '#f3f3f3',
+ barBackgroundColorHighlight: '#f8f8f8',
+ barBorderColor: '#e6e6e6',
+
+ globalNavBarBg: '#262626',
+
+ educationPrinciplesBgColor: '#F4F6FF',
+ educationPrinciplesBorderColor: '#B0BDF9',
+
+ favoriteColor: '#e77213',
+ homepageColor: '#D86C13',
+
+ // table
+ rowHoverHighlight: '#ecf6fe',
+
+ // fonts
+ baseFontColor: '#333',
+ secondFontColor: '#656565',
+
+ // forms
+ mandatoryFieldColor: '#a4030f',
+
+ // leak
+ leakPrimaryColor: '#fbf3d5',
+ leakSecondaryColor: '#f1e8cb',
+
+ // issues
+ secondIssueBgColor: '#f8eeee',
+ issueBgColor: '#f2dede',
+ hotspotBgColor: '#eeeff4',
+ issueLocationSelected: '#f4b1b0',
+ issueLocationHighlighted: '#e1e1f2',
+ conciseIssueRed: '#d18582',
+ conciseIssueRedSelected: '#a4030f',
+
+ // coverage
+ lineCoverageRed: '#a4030f',
+ lineCoverageGreen: '#b4dd78',
+
+ // alerts
+ warningIconColor: '#eabe06',
+
+ alertBorderError: '#f4b1b0',
+ alertBackgroundError: '#f2dede',
+ alertTextError: '#862422',
+ alertIconError: '#a4030f',
+
+ alertBorderWarning: '#faebcc',
+ alertBackgroundWarning: '#fcf8e3',
+ alertTextWarning: '#6f4f17',
+ alertIconWarning: '#db781a',
+
+ alertBorderSuccess: '#d6e9c6',
+ alertBackgroundSuccess: '#dff0d8',
+ alertTextSuccess: '#215821',
+ alertIconSuccess: '#6d9867',
+
+ alertBorderInfo: '#b1dff3',
+ alertBackgroundInfo: '#d9edf7',
+ alertTextInfo: '#0e516f',
+ alertIconInfo: '#0271b9',
+
+ // badge
+ badgeBlueBackground: '#2E7CB5',
+ badgeBlueColor: '#FFFFFF',
+ badgeRedBackgroundOnIssue: '#EEC8C8',
+
+ // alm
+ azure: '#0078d7',
+ bitbucket: '#0052CC',
+ github: '#e1e4e8',
+
+ // code/pre
+ codeBackground: '#f5f5f5',
+ codeBorder: '#e6e6e6',
+ codeAdded: '#dff0d8',
+ codeRemoved: '#f2dede',
+
+ // promotion
+ darkBackground: '#292929',
+ darkBackgroundSeparator: '#413b3b',
+ darkBackgroundFontColor: '#f6f8fa',
+
+ //quality gate badges
+ badgeGreenBackground: '#f0faec',
+ badgeRedBackground: '#ffeaea',
+
+ // new color palette
+ // Some of these colors duplicate what we have above, but this will make it
+ // easier to align with the UX designers on what colors to use where.
+ // Colors that have transparency are suffixed with an "a" followed by the percentage
+ // value of the alpha channel.
+ primary: '#236a97',
+ primarya40: 'rgba(35, 107, 151, 0.40)',
+ primary400: '#297BAE',
+
+ info50: '#ECF6FE',
+ info100: '#D9EDF7',
+ info200: '#B1DFF3',
+ info400: '#4B9FD5',
+ info500: '#0271B9',
+
+ success300: '#6CD46C',
+ success300a20: 'rgba(108, 212, 108, 0.2)',
+ success500: '#008223',
+ success500a20: 'rgba(0, 138, 37, 0.20)',
+ successVariant: '#C6E056',
+ successVarianta20: 'rgba(198, 224, 86, 0.2)',
+ successVariantDark: '#809E00',
+
+ warning: '#B95E04',
+ warningVariant: '#F4D348',
+ warningVarianta20: 'rgba(244, 211, 72, 0.2)',
+ warningVariantDark: '#B18F00',
+ warningAccent: '#F69D53',
+ warningAccenta20: 'rgba(246, 157, 83, 0.2)',
+
+ error400: '#F0878E',
+ error400a20: 'rgba(240, 135, 142, 0.2)',
+ error500: '#D02F3A',
+ error500a20: 'rgba(208, 47, 58, 0.20)',
+ error700: '#B81723',
+
+ neutral50: '#F3F3F3',
+ neutral200: '#CCCCCC',
+ neutral600: '#666666',
+ neutral800: '#333333',
+
+ white: '#FFFFFF',
+ whitea18: 'rgba(255, 255, 255, 0.18)',
+ whitea60: 'rgba(255, 255, 255, 0.60)',
+
+ black: '#000000',
+ blacka06: 'rgba(0, 0, 0, 0.06)',
+ blacka38: 'rgba(0, 0, 0, 0.38)',
+ blacka60: 'rgba(0, 0, 0, 0.60)',
+ blacka75: 'rgba(0, 0, 0, 0.75)',
+ blacka87: 'rgba(0, 0, 0, 0.87)',
+ },
+
+ sizes: {
+ gridSize: `${grid}px`,
+
+ baseFontSize: `${baseFontSizeRaw}px`,
+ verySmallFontSize: '10px',
+ smallFontSize: '12px',
+ mediumFontSize: '14px',
+ bigFontSize: '16px',
+ veryBigFontSize: '18px',
+ hugeFontSize: '24px',
+ giganticFontSize: '36px',
+
+ hugeControlHeight: `${5 * grid}px`,
+ largeControlHeight: `${4 * grid}px`,
+ controlHeight: `${3 * grid}px`,
+ smallControlHeight: `${2.5 * grid}px`,
+ tinyControlHeight: `${2 * grid}px`,
+
+ globalNavHeight: `${6 * grid}px`,
+
+ globalNavContentHeight: `${4 * grid}px`,
+
+ pagePadding: '20px',
+ },
+
+ rawSizes: {
+ grid,
+ baseFontSizeRaw,
+ globalNavHeightRaw: 6 * grid,
+ globalNavContentHeightRaw: 4 * grid,
+ contextNavHeightRaw: 9 * grid,
+ },
+
+ fonts: {
+ baseFontFamily: "'Helvetica Neue', Helvetica, Arial, sans-serif",
+ systemFontFamily: "-apple-system,'BlinkMacSystemFont','Helvetica','Arial',sans-serif",
+ sourceCodeFontFamily: "Consolas, 'Ubuntu Mono', 'Liberation Mono', Menlo, Courier, monospace",
+ },
+
+ // z-index
+ // =======
+ // 1 - 100 for page elements (e.g. sidebars, panels)
+ // 101 - 500 for generic page fixed elements (e.g. navigation, workspace)
+ // 501 - 3000 for page ui elements
+ // 3001 - 8000 for generic ui elements (e.g. dropdowns, tooltips)
+ zIndexes: {
+ // common
+ aboveNormalZIndex: '3',
+ normalZIndex: '2',
+ belowNormalZIndex: '1',
+
+ // ui elements
+ pageMainZIndex: '50',
+ pageSideZIndex: '50',
+ pageHeaderZIndex: '55',
+
+ globalBannerZIndex: '60',
+
+ contextbarZIndex: '420',
+
+ tooltipZIndex: '9001',
+
+ dropdownMenuZIndex: '7500',
+
+ processContainerZIndex: '7000',
+
+ modalZIndex: '6001',
+ modalOverlayZIndex: '6000',
+
+ popupZIndex: '5000',
+ },
+
+ others: {
+ defaultShadow: '0 6px 12px rgba(0, 0, 0, 0.175)',
+ },
+};
+
+export default theme;
+export const { colors, rawSizes } = theme;
diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx
index 5ebbbc90b78..7669f07e814 100644
--- a/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx
+++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx
@@ -91,7 +91,7 @@ const ui = {
};
async function fillFormAndNext(displayName: string, user: UserEvent) {
- expect(ui.manualProjectHeader.get()).toBeInTheDocument();
+ expect(await ui.manualProjectHeader.find()).toBeInTheDocument();
await user.click(ui.displayNameField.get());
await user.keyboard(displayName);
diff --git a/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesApp-it.tsx b/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesApp-it.tsx
index 2f40884010b..32df1479e9d 100644
--- a/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesApp-it.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesApp-it.tsx
@@ -62,7 +62,7 @@ describe('issues app', () => {
canBrowseAllChildProjects: false,
qualifier: ComponentQualifier.Portfolio,
});
- expect(screen.getByText('issues.not_all_issue_show')).toBeInTheDocument();
+ expect(await screen.findByText('issues.not_all_issue_show')).toBeInTheDocument();
await user.keyboard('{ArrowRight}');
diff --git a/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesSourceViewer-it.tsx b/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesSourceViewer-it.tsx
index b24d7b21e0d..498a6a41b16 100644
--- a/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesSourceViewer-it.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/__tests__/IssuesSourceViewer-it.tsx
@@ -104,7 +104,7 @@ describe('issues source viewer', () => {
renderProjectIssuesApp('project/issues?issues=issue101&open=issue101&id=myproject');
await waitOnDataLoaded();
- expect(screen.getByLabelText('test1.js')).toBeInTheDocument();
+ expect(await screen.findByLabelText('test1.js')).toBeInTheDocument();
expect(screen.getByLabelText('test2.js')).toBeInTheDocument();
// Both line 1 of test1.js and test2.js should be rendered after expanding lines above snippet in test2.js
diff --git a/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/ProjectQualityGateApp-it.tsx b/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/ProjectQualityGateApp-it.tsx
index e8d6e0c35c3..78187a855fa 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/ProjectQualityGateApp-it.tsx
+++ b/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/ProjectQualityGateApp-it.tsx
@@ -72,9 +72,12 @@ beforeAll(() => {
afterEach(() => handler.reset());
-it('should require authorization if no permissions set', () => {
+it('should require authorization if no permissions set', async () => {
renderProjectQualityGateApp({}, {});
- expect(handleRequiredAuthorization).toHaveBeenCalled();
+
+ await waitFor(() => {
+ expect(handleRequiredAuthorization).toHaveBeenCalled();
+ });
expect(ui.qualityGateHeading.query()).not.toBeInTheDocument();
});
diff --git a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/projectQualityProfilesApp-it.tsx b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/projectQualityProfilesApp-it.tsx
index 7e67174767e..efa80ebbb38 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/projectQualityProfilesApp-it.tsx
+++ b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/projectQualityProfilesApp-it.tsx
@@ -151,7 +151,7 @@ it('should be able to add and change profile for languages', async () => {
},
});
- expect(ui.pageTitle.get()).toBeInTheDocument();
+ expect(await ui.pageTitle.find()).toBeInTheDocument();
expect(ui.pageDescription.get()).toBeInTheDocument();
expect(await ui.addLanguageButton.find()).toBeInTheDocument();
await expect(ui.helpTooltip.get()).toHaveATooltipWithContent(
diff --git a/server/sonar-web/src/main/js/apps/tutorials/components/__tests__/TutorialsApp-test.tsx b/server/sonar-web/src/main/js/apps/tutorials/components/__tests__/TutorialsApp-test.tsx
index b52dddc41c0..4e10a0b9eae 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/components/__tests__/TutorialsApp-test.tsx
+++ b/server/sonar-web/src/main/js/apps/tutorials/components/__tests__/TutorialsApp-test.tsx
@@ -50,7 +50,7 @@ const ui = {
it('renders tutorials page', async () => {
renderTutorialsApp(mockLoggedInUser({ permissions: { global: [Permissions.Scan] } }));
- expect(ui.loading.get()).toBeInTheDocument();
+
expect(await ui.localScanButton.find()).toBeInTheDocument();
});
diff --git a/server/sonar-web/vite.config.mjs b/server/sonar-web/vite.config.mjs
new file mode 100644
index 00000000000..ca11da7afa6
--- /dev/null
+++ b/server/sonar-web/vite.config.mjs
@@ -0,0 +1,168 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2024 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+import react from '@vitejs/plugin-react';
+import autoprefixer from 'autoprefixer';
+import browserslistToEsbuild from 'browserslist-to-esbuild';
+import path, { resolve } from 'path';
+import postCssCalc from 'postcss-calc';
+import { visualizer } from 'rollup-plugin-visualizer';
+import tailwind from 'tailwindcss';
+import { defineConfig, loadEnv } from 'vite';
+import macrosPlugin from 'vite-plugin-babel-macros';
+import requireTransform from 'vite-plugin-require-transform';
+import babelConfig from './babel.config';
+import { viteDevServerHtmlPlugin } from './config/vite-dev-server-html-plugin.mjs';
+
+const DEFAULT_DEV_SERVER_PORT = 3000;
+const DEFAULT_WS_PROXY_PORT = 3010;
+
+const port = process.env.PORT || DEFAULT_DEV_SERVER_PORT;
+const proxyTarget = (process.env.PROXY || 'http://localhost:9000').replace(/\/$/, '');
+const isProxied = !proxyTarget.includes('localhost');
+const isProduction = process.env.NODE_ENV === 'production';
+const analyzeBundle = process.env.BUNDLE_ANALYSIS || false;
+
+// https://vitejs.dev/config/
+export default ({ mode }) => {
+ process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
+
+ return defineConfig({
+ experimental: {
+ // The WEB_CONTEXT string is replaced at runtime by the SQ backend web server
+ // (WebPagesCache.java) with the instance configured context path
+ renderBuiltUrl(filename, { hostId, hostType, type }) {
+ if (hostType === 'html') {
+ // All the files that are added to the (index.)html file are prefixed with WEB_CONTEXT/
+ return 'WEB_CONTEXT/' + filename;
+ } else if (hostType === 'js') {
+ // All the files that are lazy loaded from a js chunk are prefixed with the WEB_CONTEXT
+ // thanks to the __assetsPath function that's defined in index.html.
+ return { runtime: `window.__assetsPath(${JSON.stringify(filename)})` };
+ } else {
+ // Other files (css, images, etc.) are loaded relatively to the current url,
+ // automatically taking into accound the WEB_CONTEXT
+ return { relative: filename };
+ }
+ },
+ },
+ build: {
+ // reads from the package.json's browserslist to determine transforms required to support those browsers
+ target: browserslistToEsbuild(),
+ outDir: 'build/webapp',
+ rollupOptions: {
+ // we define all the places where a user can land that requires its own bundle entry point.
+ // we only have one main entry point which is the index.html for now
+ input: {
+ main: resolve(__dirname, 'index.html'),
+ },
+ output: {
+ // in order to override the default `build/webapp/assets/` directory we provide our own configuration
+ assetFileNames: '[ext]/[name]-[hash][extname]',
+ chunkFileNames: 'js/[name]-[hash].js',
+ entryFileNames: 'js/[name]-[hash].js',
+ // manual chunk splitting strategy. The packages will be split to its own js package
+ // We also have one more advantage with manual chunks which is caching. Unless we update
+ // the version of following packages, we would have caching on these chunks as the hash
+ // remains the same in successive builds as the package isn't changed
+ manualChunks: {
+ // vendor js chunk will contain only react dependencies
+ vendor: ['react', 'react-router-dom', 'react-dom'],
+ lodash: ['lodash/lodash.js'],
+ highlightjs: [
+ 'highlight.js',
+ 'highlightjs-apex',
+ 'highlightjs-cobol',
+ 'highlightjs-sap-abap',
+ ],
+ },
+ },
+ plugins: [],
+ },
+ sourcemap: isProduction, // enable source maps for production
+ },
+ css: {
+ postcss: {
+ plugins: [tailwind('./tailwind.config.js'), autoprefixer, postCssCalc],
+ },
+ },
+ // by default vite doesn't pass along the process.env so we do it here. (for MSW and env code)
+ define: {
+ 'process.env': {
+ NODE_ENV: process.env.NODE_ENV,
+ },
+ },
+ optimizeDeps: {
+ esbuildOptions: {
+ target: 'es2020',
+ },
+ },
+ commonjsOptions: {
+ // we don't want to wrap common js modules in { default: ... } when importing from an es module
+ defaultIsModuleExports: false,
+ },
+ esbuild: {
+ banner: '/*! licenses: /vendor.LICENSE.txt */',
+ legalComments: 'none',
+ // https://github.com/vitejs/vite/issues/8644#issuecomment-1159308803
+ logOverride: { 'this-is-undefined-in-esm': 'silent' },
+ },
+ plugins: [
+ // additional plugins to allow for the transformation of our existing code to what vite is expecting.
+ requireTransform({}),
+ react({
+ babel: babelConfig,
+ }),
+ // we use this to support `twin.macro` (macro is a term for a generic babel plugin used at runtime)
+ // More Info: https://www.npmjs.com/package/babel-plugin-macros
+ macrosPlugin(),
+ viteDevServerHtmlPlugin(),
+ analyzeBundle &&
+ visualizer({
+ filename: './build/bundle-analyzer.html',
+ template: 'treemap',
+ gzipSize: true,
+ }),
+ ],
+ // This is the public folder we have to copy to public folder after build
+ publicDir: 'public',
+ resolve: {
+ alias: {
+ // src resolution is only applicable for html files and is only needed in vite and not
+ // in other configs - tsconfig and storybook
+ src: path.resolve(__dirname, 'src'),
+ '~sonar-aligned': path.resolve(__dirname, 'src/main/js/sonar-aligned'),
+ },
+ },
+ server: {
+ port,
+ proxy: {
+ '/api': {
+ target: proxyTarget,
+ changeOrigin: true,
+ },
+ '/static': {
+ target: proxyTarget,
+ changeOrigin: true,
+ },
+ },
+ },
+ });
+};
diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock
index bf47601798e..fc4fbdf5456 100644
--- a/server/sonar-web/yarn.lock
+++ b/server/sonar-web/yarn.lock
@@ -102,6 +102,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/code-frame@npm:7.25.7"
+ dependencies:
+ "@babel/highlight": "npm:^7.25.7"
+ picocolors: "npm:^1.0.0"
+ checksum: 10/000fb8299fb35b6217d4f6c6580dcc1fa2f6c0f82d0a54b8a029966f633a8b19b490a7a906b56a94e9d8bee91c3bc44c74c44c33fb0abaa588202f6280186291
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.16.4":
version: 7.17.0
resolution: "@babel/compat-data@npm:7.17.0"
@@ -137,6 +147,13 @@ __metadata:
languageName: node
linkType: hard
+"@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: 10/269fcb0d89e02e36c8a11e0c1b960a6b4204e88f59f20c374d28f8e318f4cd5ded42dfedc4b54162065e6a10f71c0de651f5ed3f9b45d3a4b52240196df85726
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:7.25.2, @babel/core@npm:^7.25.2":
version: 7.25.2
resolution: "@babel/core@npm:7.25.2"
@@ -160,6 +177,29 @@ __metadata:
languageName: node
linkType: hard
+"@babel/core@npm:7.25.8, @babel/core@npm:^7.17.7":
+ 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"
+ "@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"
+ 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: 10/31eb1a8ca1a3cc0026060720eb290e68205d95c5c00fbd831e69ddc0810f5920b8eb2749db1889ac0a0312b6eddbf321d18a996a88858f3b75c9582bef9ec1e4
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:^7.11.6":
version: 7.20.5
resolution: "@babel/core@npm:7.20.5"
@@ -239,6 +279,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/generator@npm:7.25.7"
+ dependencies:
+ "@babel/types": "npm:^7.25.7"
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
+ jsesc: "npm:^3.0.2"
+ checksum: 10/01542829621388077fa8a7464970c1db0f748f1482968dddf5332926afe4003f953cbe08e3bbbb0a335b11eba0126c9a81779bd1c5baed681a9ccec4ae63b217
+ languageName: node
+ linkType: hard
+
"@babel/generator@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/generator@npm:7.24.7"
@@ -281,6 +333,15 @@ __metadata:
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"
+ dependencies:
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/38044806cab33032391c46861cd0a36adb960525b00bc03f2f3d4380c983bf17971cdabc431e58b93a328ef24bd0271f1dc3a8c1c1ea6cab49d04702961451d8
+ 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"
@@ -291,6 +352,16 @@ __metadata:
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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/e493c4b7ea1dcb1e406cf30265164b632e133ea9a039a5ddc8eadd5370ad498eddcd99871fdf500b9ac05d0b43f2a0987580ceb1f7adb3b7272e49b56589849a
+ languageName: node
+ linkType: hard
+
"@babel/helper-compilation-targets@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-compilation-targets@npm:7.16.7"
@@ -358,6 +429,19 @@ __metadata:
languageName: node
linkType: hard
+"@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.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: 10/bbf9be8480da3f9a89e36e9ea2e1c76601014c1074ccada7c2edb1adeb3b62bc402cc4abaf8d16760734b25eceb187a9510ce44f6a7a6f696ccc74f69283625b
+ languageName: node
+ linkType: hard
+
"@babel/helper-create-class-features-plugin@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7"
@@ -394,6 +478,23 @@ __metadata:
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"
+ 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"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/76e3bb727d7541d38acaa9b6ecff88f70e62370396dd22511837b90a556c6815a7efd6fd25b499bf1c8b02cdb18c575781a6aba0c442c38a2129a403b5bf9b1e
+ languageName: node
+ linkType: hard
+
"@babel/helper-create-regexp-features-plugin@npm:^7.18.6":
version: 7.21.0
resolution: "@babel/helper-create-regexp-features-plugin@npm:7.21.0"
@@ -432,6 +533,19 @@ __metadata:
languageName: node
linkType: hard
+"@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.25.7"
+ regexpu-core: "npm:^6.1.1"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/fa083f83ae9ba3326e32762c9839fea171de34d66bffc65569a6a67222ec55cf4ef35b6b26f332d24485c0622a69a2e0b9eb2a7ca279595b174cfeeec68849ac
+ languageName: node
+ linkType: hard
+
"@babel/helper-define-polyfill-provider@npm:^0.6.2":
version: 0.6.2
resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2"
@@ -559,6 +673,16 @@ __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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/f953a0ddbcfbaae835033b54fdbf42cc3aea08c554875fccfc02ed4b1e5fe3ee06abf1b7a8419314357841fabc9efdbcbb8afdf07c4f216a73164a45a147562b
+ languageName: node
+ linkType: hard
+
"@babel/helper-module-imports@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-module-imports@npm:7.16.7"
@@ -587,6 +711,16 @@ __metadata:
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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/94556712c27058ea35a1a39e21a3a9f067cd699405b64333d7d92b2b3d2f24d6f0ffa51aedba0b908e320acb1854e70d296259622e636fb021eeae9a6d996f01
+ languageName: node
+ linkType: hard
+
"@babel/helper-module-transforms@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-module-transforms@npm:7.16.7"
@@ -648,6 +782,20 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/480309b1272ceaa985de1393f0e4c41aede0d5921ca644cec5aeaf43c8e4192b6dd56a58ef6d7e9acd02a43184ab45d3b241fc8c3a0a00f9dbb30235fd8a1181
+ 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"
@@ -657,6 +805,15 @@ __metadata:
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"
+ dependencies:
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/8da0d9f5aae15991678ad1bbe58e52cd62a0ed36871075756d9684c0a7a65988ed81bab53ad6436c39a470d3cd690694dd2b07147817217e3ca87178a129c509
+ languageName: node
+ linkType: hard
+
"@babel/helper-plugin-utils@npm:^7.0.0":
version: 7.0.0
resolution: "@babel/helper-plugin-utils@npm:7.0.0"
@@ -706,6 +863,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-plugin-utils@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/helper-plugin-utils@npm:7.25.7"
+ checksum: 10/e1b0ea5e67b05378d6360e3fc370e99bfb247eed9f68145b5cce541da703424e1887fb6fc60ab2f7f743c72dcbfbed79d3032af43f2c251c229c734dc2572a5b
+ languageName: node
+ linkType: hard
+
"@babel/helper-plugin-utils@npm:^7.8.0":
version: 7.8.3
resolution: "@babel/helper-plugin-utils@npm:7.8.3"
@@ -746,6 +910,19 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/3d563ac35cb1306bf70e7353fc807e7b082a7510d955a36db089fa861c6a8b2c470184996f3177d5384e5290a1be9e7eed424efb9e2dd3bed3a8cf6c2d6a9723
+ languageName: node
+ linkType: hard
+
"@babel/helper-replace-supers@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-replace-supers@npm:7.24.7"
@@ -772,6 +949,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/87b65c7b278fabcb67458e592082a0b4532d5400acbb51e496ea47763077d0a64dc0531d32bafcb1d51f04d61d4715dadb1fd0301bc8449c26fcfd06913eb45e
+ languageName: node
+ linkType: hard
+
"@babel/helper-simple-access@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-simple-access@npm:7.16.7"
@@ -800,6 +990,16 @@ __metadata:
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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/42da1c358f2516337a4f2927c77ebb952907543b9f85d7cb1e2b5b5f6d808cdc081ee66a73e2ecdf48c315d9b0c2a81a857d5e1923ea210b8e81aba5e6cd2b53
+ 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"
@@ -810,6 +1010,16 @@ __metadata:
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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/466c81d09981bfb9e10aa6697ecb621389ff92a86187daaca34a969ca990d7327ebe931e87f7d52a200e499542d398469478d83dfaaa244d2f49df4e078490b3
+ languageName: node
+ linkType: hard
+
"@babel/helper-split-export-declaration@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-split-export-declaration@npm:7.16.7"
@@ -865,6 +1075,13 @@ __metadata:
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: 10/2b8de9fa86c3f3090a349f1ce6e8ee2618a95355cbdafc6f228d82fa4808c84bf3d1d25290c6616d0a18b26b6cfeb6ec2aeebf01404bc8c60051d0094209f0e6
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9":
version: 7.14.9
resolution: "@babel/helper-validator-identifier@npm:7.14.9"
@@ -914,6 +1131,13 @@ __metadata:
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: 10/ec6934cc47fc35baaeb968414a372b064f14f7b130cf6489a014c9486b0fd2549b3c6c682cc1fc35080075e8e38d96aeb40342d63d09fc1a62510c8ce25cde1e
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-option@npm:^7.16.7":
version: 7.16.7
resolution: "@babel/helper-validator-option@npm:7.16.7"
@@ -949,6 +1173,13 @@ __metadata:
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: 10/3c46cbdd666d176f90a0b7e952a0c6e92184b66633336eca79aca243d1f86085ec339a6e45c3d44efa9e03f1829b470a350ddafa70926af6bbf1ac611284f8d3
+ languageName: node
+ linkType: hard
+
"@babel/helper-wrap-function@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-wrap-function@npm:7.24.7"
@@ -972,6 +1203,17 @@ __metadata:
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: 10/00e2291a2b67e060b98cae90b4cc9107cff29d7b26bd5eb61149c63fb99418d9bd00bb0708b8b3e733cae4b1ea3a2b41a709d85192accfa15903f8af5c821fe6
+ languageName: node
+ linkType: hard
+
"@babel/helpers@npm:^7.17.0":
version: 7.17.0
resolution: "@babel/helpers@npm:7.17.0"
@@ -1004,6 +1246,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helpers@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/helpers@npm:7.25.7"
+ dependencies:
+ "@babel/template": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/2632909f83aa99e8b0da4e10e5ab7fc4f0274e6497bb0f17071e004e037d25e4a595583620261dc21410a526fb32b4f7063c3e15e60ed7890a6f9b8ad52312c5
+ languageName: node
+ linkType: hard
+
"@babel/highlight@npm:^7.0.0":
version: 7.5.0
resolution: "@babel/highlight@npm:7.5.0"
@@ -1071,6 +1323,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/highlight@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/highlight@npm:7.25.7"
+ 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: 10/823be2523d246dbf80aab3cc81c2a36c6111b16ac2949ef06789da54387824c2bfaa88c6627cdeb4ba7151d047a5d6765e49ebd0b478aba09759250111e65e08
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.1.0":
version: 7.5.0
resolution: "@babel/parser@npm:7.5.0"
@@ -1134,6 +1398,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.22.5, @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.8"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10/0396eb71e379903cedb43862f84ebb1bec809c41e82b4894d2e6e83b8e8bc636ba6eff45382e615baefdb2399ede76ca82247ecc3a9877ac16eb3140074a3276
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/parser@npm:7.24.7"
@@ -1166,6 +1441,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/traverse": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/25f1d0a2ec6f9e912d2513b3830b239acdf9c75f453c208f77074687393f380b1150684ca0acb78368391fa1035242ac66e7f3856834d8003f01d1af17747230
+ 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"
@@ -1177,6 +1464,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/52551470b6164a787460c28019428e97d20097d5dffab74f8866512706a3b002e57fdb23fe8e5156149bc4c9cfea48d5a0347b7a9e7e2a05f681941037136ab3
+ 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"
@@ -1188,6 +1486,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/c37204ec3c82a1babba13f0cc2a68220959224cbab1294b1d7d8501af4734de1664b43c67b97fcaa1b3f53c865b0a4ad6f887102c7d7b913aab43df29ac7da52
+ 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"
@@ -1201,6 +1510,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.13.0
+ checksum: 10/507c92bbcb3d7747c82290370336b50368fbb652af31fea718be8f1928142f1c5f7c6f2b9810d8b9b2905734f8f6b778f9e4b1cfb5a11073a2f1cfe9e5e5b354
+ 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"
@@ -1213,6 +1535,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/traverse": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/289c6da5840c5049adbeb9b4cfb166d422f0b7b3f3a54aff64e8a053a1249e8eb513eac0fa3d033869372ffc30eda1e8555fa789b9daa1064bfdaf7f4717daa8
+ languageName: node
+ linkType: hard
+
"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2":
version: 7.21.0-placeholder-for-preset-env.2
resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2"
@@ -1299,6 +1633,17 @@ __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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/d72615f8dcc5ffbcb456bcf7ce27bc22b30cc9ea8d809e461d80af486033d31bd0b6d83c9a7997c9cd36ff283a9c1207f806da4361bb620370659c256c5454e9
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7"
@@ -1310,6 +1655,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7c5451e2d8351693acbc53b1e1f6951026e35899d22847a6d22424a1ee5c92c11ac6c6f209a9e18f85d7bb9267caaf2532653e892997cdcd51784106a5858b7e
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3":
version: 7.10.4
resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
@@ -1332,6 +1688,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-jsx@npm:^7.16.7, @babel/plugin-syntax-jsx@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-syntax-jsx@npm:7.25.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/243476a943a84b6b86e99076301e66f48268e8799564053e8feccab90da7944a0b42c91360216dbfb0b2958bbd0ed100d2c7b2db688dab83d19ff2745d4892eb
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-jsx@npm:^7.17.12, @babel/plugin-syntax-jsx@npm:^7.7.2":
version: 7.18.6
resolution: "@babel/plugin-syntax-jsx@npm:7.18.6"
@@ -1442,6 +1809,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-syntax-typescript@npm:^7.16.7, @babel/plugin-syntax-typescript@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-syntax-typescript@npm:7.25.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/f1492336230920cc4daa6e7aa3571253fb0c0fd05a1d0a7b5dc0a5b907f31945235ee8bf09c83f7738b89943a2320a61dda95e0db2b6310b07040aeda6be4f44
+ languageName: node
+ linkType: hard
+
"@babel/plugin-syntax-typescript@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-syntax-typescript@npm:7.24.7"
@@ -1487,6 +1865,17 @@ __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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/45a6b05acd132bd399ab127d54d43f7117f650908092c15da7c41c61c5e49bfdb63c0e65bd59ad68c94bfc6aade602732a98a55b146b69dfae212516203d43f9
+ 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"
@@ -1501,6 +1890,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ab3f74664fc03af357e8450711de60ec77149be668059dbc0c0d616d85253117aec0e5ffb2eccda3449d0099d5fba5ef32f0e6e12a52af5f72fbca437372ece5
+ 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"
@@ -1514,6 +1916,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/fdc6161e9027bec8bbe523e40934a2cccf1a30cf241006c98a120b2cda6e4f75d4a4cb4831cf3ece43d9b752183117e4ca5ec43778750146d5fc9a74b22b1acf
+ 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"
@@ -1525,6 +1940,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/334debb143d002295c6dd5559ebf24483557787621fd1d7283ac748eb401ed96b7d43c981f1d2b6795720979fe7872dd0719aed890d064244d52b1c4fe6f3347
+ 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"
@@ -1536,6 +1962,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/bbc5b815c6850eb798a294a5d31ed09bb0db367a31196e78c0d02ce3f845ddd2e0dcfd7ec70505dfa4e1bd67f13e46b315d290c58aa7531468feed380e267d97
+ 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"
@@ -1548,6 +1985,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/fe1dbbd77275ade96964fec0c85a1f14e2dac0c6565bccddf00680e43c2e906d289dd9d483aff6359420cef2a044b4aaaeb303f64a3a1a005601c018188368e7
+ 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"
@@ -1561,6 +2010,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.12.0
+ checksum: 10/160d5f9d1dbe4dc12c2998227b51b1ccfe9f4d11b1031d0698f34403961d5b9bb995cc86acf1855102b9be365370c97d8cea243802b73c7ba7b2b18b2ac3aae9
+ 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"
@@ -1577,6 +2038,22 @@ __metadata:
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"
+ 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"
+ globals: "npm:^11.1.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/239926ceb7fa926054fe9aabb7a64dba090d8f83d075bcec804d602a5715501c56dc26367bb90e6780e1113cc04cf6ad32c131e2782ccf1768fd059ac7eba04b
+ 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"
@@ -1589,6 +2066,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/template": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/f25caeb3366847a1f67efe4b250a460f88a5ebb4c12c566d945bf211ef28977dd21f4dd6539f63743f3fabdbb174b4d34e22af2a451aba3bcfd702396442eb53
+ 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"
@@ -1600,6 +2089,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/b58347dc1b807ef8e6aaf995d59c6f09aa9de2c590bb90a52bc9c4082836ef72f70f8fc062370138134220de40dad06af6122ffcce77fb97d5e77ca7cd71e5c7
+ 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"
@@ -1612,6 +2112,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/a4727ee33b95d1f7e33b277b0003e3e91ebb9c3c611512e1ca5f3f0d99efd552a6c42b09e5520ea686ef0389dd8159a77c7c59fb53d0d1a1ff7d385c362da71b
+ 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"
@@ -1623,6 +2135,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/b132ce919643f1fa519c8597513fba77155fde2d7689154c73791847efd218ff7ce11694b539ca9dee65538c9e774adf4bd6a6e950800dd648f43d5906a38155
+ 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"
@@ -1635,6 +2158,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/688ab66ed249a08d4b2e3ae8a2c10678fbe23f6466d5020d4cc3e031946dc335c028f5a1bee3221acb3875a1e901b0237020463157690fabc06edc4bdd6c6c88
+ 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"
@@ -1647,6 +2182,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/cf2c105143461876f418d21893ac8f7f2b0a3c3cefb4374c3cd6338a19d3a0deed3565049f7436b94452c6471622958ef9248c7bdfeb34d2917710ac74431203
+ 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"
@@ -1659,6 +2205,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/3371fc79c052a3c63652785284a9f4b943a188ae5aa3e68a760c45afc43739d654ad6d8d24b93ed04fe736f6c0b4a7a11ace56bc954d3a6520d0b3c79e058c03
+ 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"
@@ -1671,6 +2229,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/439aac4ca1c7dbb63f021142e7abcd746049bf0d44cc5d2eb469ae3b75d90e076a43ff77190b74d8139402b53eea625b08c68651d3ce1d0a0915f5643450b3de
+ 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"
@@ -1683,6 +2252,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/6fdfc1747283f50ada9f08d4f801d2156658f183db731369ac2b17f5f885661114906b3645c6a38bb6a5e24b771e6bd43c0ea47580c4fcb9347cd1d179e57435
+ 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"
@@ -1696,6 +2277,19 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/465d54942c03f77da3be5fb56404c6f8162f0e99034b8aceab6af2d386a77ecaf3df0c5f2dd67a00b66cd8ad970c0a08151026ed14aa44673a33f495e6849cc7
+ 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"
@@ -1708,6 +2302,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/adbc6a5a77b96db0f7e168c5fd2e56941df649808ce960f12447c1ba5d3893e9d458e7e14e3a5bd725ac5f3432ac1b3cf62b7413bbf7168a7c656dce51db711a
+ 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"
@@ -1719,6 +2324,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/435d9709204e4cae46f9e75973a1424b98bb71516d9cfb0619260cfb56d445b43fa34aa49dacb0e1fbc2a19fdd9373f4b4db4908007be8f9e9e3f0ccf6c73e71
+ 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"
@@ -1731,6 +2347,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7af0e4ad63c1a59f24894b64330040966204963b75287752a2d56703c7924d3a883a3c2497e1f03c4b1792f8664e0650cf6687010dc5483444c077de1daae9f5
+ 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"
@@ -1742,6 +2369,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/fb2b985cfa0436bfbed6fbcdd430573272518cf3454c9b0de374cfb80ac6fe60b2ebbe0818a83035e436a9ff08b159bb87527dfd712560c52a0ebfabe6f65121
+ 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"
@@ -1754,6 +2392,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/0d061c91130433fccc723b4eb1359ced515a5dd7196c3ec75f2b2c24613154365ec1c89fe89bee648c1dc28a54c9625dd2b21b6196659a9f2b8ebff0b2352f6c
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-modules-commonjs@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7"
@@ -1780,6 +2430,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/4b3d038b55bfe5553e9eea360cc1b3dd689068256a9bce1939061ab1dfa194fea0b7b54f10c53b0af0be44508fd0037022c32709a6d96ac1277fb9c7de0f510c
+ 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"
@@ -1794,6 +2457,20 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/abd3522e60a9b639f8ad58b2ee237debe9e78a3a1462e3c5b17b4fbdc1b4bb2235edb1ed7d204b45701ec99dd3506d87164ece8ac9d9465a3e603cf13170b65b
+ 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"
@@ -1806,6 +2483,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/06d6e95a9948aa91b218ada2940b8f568f78991265f2923f6e69c29e97ef1731c1b79adaf72a072a834a86f98fc0bd0117dfb14a37aaea6337fb4468f757471a
+ 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"
@@ -1818,6 +2507,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/4c8340cacb1d21794777abb68db2ea434a89274e9ca539e6f564488f5e8a7f517fdf0f9dc754a14cdb8702a3a488ba2bf0fad404a7da3ba4481f620fa6f234c9
+ 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"
@@ -1829,6 +2530,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c410edc9d8800590e34e648851a633534c3d153d0a76a34cc12854a4ecd578ce1b1c121e42e8c8f654757fcba13849a39fccde0d619de9ee3567a8f9fa2c8fc0
+ 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"
@@ -1841,6 +2553,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/d742fedc1abf404d7f40065cdff9afc521236607f0d06c48d1e471f43d3a7471010d1651ba4758d80c73347a39dc278d86c43a9c814382ded4e9c7c519ace021
+ 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"
@@ -1853,6 +2576,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/e27779a309dbc5fdba71d7eae0eac5506547632b0cbf8f0add8215797bbda4f4e61595750236fee3292600cc2d13892f133beccc52b2998534e0b10c668db857
+ 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"
@@ -1867,6 +2601,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/38f0fab8321a0b1e44784b7371f8bd5601eb885a7e9d88d7904dedda33a72f500d84792758c47e1541336c1b7592b6d956a85c2fd8e2e294f34c0303cc73442c
+ 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"
@@ -1879,6 +2626,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-replace-supers": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c033337d27f98a255509c3ac152a54ce25d707b7969a64ba5262c7ddb54ba962da081fe756ce922caa57d782cacc6705e3d8e74364938391170f043eb9c5905e
+ 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"
@@ -1891,6 +2650,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/9ecf32accc5b12b83ce2f6537c9eac87f2b0f89abfe91a8a8c87ea5ece05820988415271d0fdaf7f565e2c0c837afb24fc644779029b98b1401782d9c0d73642
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-optional-chaining@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
@@ -1917,6 +2687,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/ffb5d81e6dbb28907d5346c8e12a1ed1ea0e30170fbe609d48d0466cdbc9d11b5774c8781682693f7cf7bd39da6111980e54813af96c6b3086dc769369c67d28
+ 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"
@@ -1928,6 +2710,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c6a77fece85b3fd7323ec4ecc62329932b92c2c1ec20f1cc7617d3e49cc175f143988e756f5ccc45deca0fe582040afa67eeefd1704a8188cf2dc437efcfaf53
+ 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"
@@ -1940,6 +2733,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/79506a74334dc77f6c53f44109f0a3fcf6c50410faa5dd5e5d17ac4b73194098de509f5515a7aed3724a4bfa5dd246517e22a1dff4c20fc052df7a189bf2160d
+ 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"
@@ -1954,6 +2759,19 @@ __metadata:
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"
+ 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"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c612023879930c951e3a993104bbc3b78169aef6c38233758ee3358a7ab76954b41880bca67635df218dc6893aabad138f3783d508dc715419e62c8d1fad9088
+ 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"
@@ -1965,6 +2783,39 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/f8be4090e9ffa9eebaca5eab4534de16acc5c84a476649cfed532de564817fc982a47d9349e6e447c510786897625153f60740fe9128b40d3a1eae3bbb5e1438
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-display-name@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.25.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/2785dda2f1b5379692f9095bffbd412dd1c49f41096d111c2fba1fba7202f4eed558c675df1bbfdcd44590013f8d2b7e6fc84443866e8a5c9bd51cf95f79cbdb
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-development@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.7"
+ dependencies:
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/6e6e8f9f9fc5393b932fb646188d6df9f270b37ab31560a5f3622b373ccb9fbf3d1976b3fb1b899541d25c1fa504d315fb4f8473d53bd57ad614e523f1ecf2c1
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-react-jsx-self@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7"
@@ -2002,6 +2853,33 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-react-jsx@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.25.7"
+ "@babel/helper-module-imports": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/9f87990b39c68dc6441b55bf9b530c89e8cfc7a610e250dfd8002d94a6b806a585fe7cc9318540e4e635eb819fdaf15a42fd5e8a2ec3f8949bd7a5c759b558d3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-pure-annotations@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/a0bb666ef2c0209d5c7f637b17587f7a6782dbb135475f836bfe59b2f9eb193821653d6291866fc643b8ca0cef56989a9648c6127727d630808fc6de6fa180ca
+ 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"
@@ -2014,6 +2892,18 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ regenerator-transform: "npm:^0.15.2"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7a68e841b12b5f767d98ee650aa914ea246d99cc84de054bdb331185894c0fa554ec4296f32d65385e3012dcf083a098e06c14e518056d7e8a0804227a12d85d
+ 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"
@@ -2025,6 +2915,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/484edb3f4aa52f49914bea5f832fe380d159fff44e007ac9063666cf773bc258ef5b741f5a323167087bfd6a6dd5c2f96556d1ce5b3765bdf3a54fc018f3670d
+ 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"
@@ -2036,6 +2937,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/71c9c1d77887ffa452b2d7c9026ee8e40596e4b4208b077369a997e4e031b474ab08c2991b882a9883b78d7cd6d0d2a2b73345b17e195577b28538360b36f914
+ 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"
@@ -2048,6 +2960,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/5dd9e269241fccfdb8c9ac9cb21c53fa776113c3cee0ea92bb029940c6231b3bc7c0c70e13e5df220b80cfafe8683264cadff5b182bed9fd1b1317557f1a6c2d
+ 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"
@@ -2059,6 +2983,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/9f918281fdf2661a095d53ce8b981acaec0fef2a133af4a4fb66132c7a8ad509c49f444ee140bfa5821db24f987d278b3886d3f04e6ba94a6a55c7b2ed024443
+ 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"
@@ -2070,6 +3005,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/bdb541c31d4890a0aea4cf73a897975b69372cc524302ee9b375424d1706c38d1344b891c14ad2cbc3926e9553ffc2596772e8dab5982e09a9da0d959e4a1e92
+ 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"
@@ -2081,6 +3027,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/1145d65dbf720837b0a1bdcdb2b8b0a761587f3602703ba42209e06b6b8d81801a2041671a881ed0cff6866acec4f7c17031f8540017f2d53913584e152453db
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-typescript@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-typescript@npm:7.24.7"
@@ -2095,6 +3052,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-typescript@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/plugin-transform-typescript@npm:7.25.7"
+ 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-skip-transparent-expression-wrappers": "npm:^7.25.7"
+ "@babel/plugin-syntax-typescript": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/2648da981cd71c2100a4ea496684f2c0b939fc77eb4bb9cc8f113d433eab17d4930d2e5ed8d280606bcedef58df99002a64dc92579c6cc7f6c6ee71ceaa77418
+ 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"
@@ -2106,6 +3078,17 @@ __metadata:
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"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/3c8d5b36738690c2d0b843fcc213a18766e617d16b6cfd92f13be2eba025228b6a796fd8e5b6e209daffa1b453c52544bf62e40b917a32c7446184fef52c98fc
+ 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"
@@ -2118,6 +3101,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/cccdddc6837f5e82f0aca59fd77dbab5efd5024dcd6d358efc74faccb4892f69e943f7750f613fcc241f33973fe8622a7e96909305697e7e5868f8e9954cb84e
+ 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"
@@ -2130,6 +3125,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/1a5a068d39741febd9b8cfce7bf4abf79b282a13c29d39ef7685bffdeb65e5d595e23d9630fedd34428a144d96701efed5a48ea1db0c250c4daf53f44da52983
+ 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"
@@ -2142,6 +3149,18 @@ __metadata:
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"
+ dependencies:
+ "@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: 10/c06dd8e66704fc60a97ce2555fa9f6cdfa98bb935a811b15e811cf3a8b5723e508e92b24077163ad704ddce56115062b8cf2f5490d1ad7d23f863d93a8125f89
+ languageName: node
+ linkType: hard
+
"@babel/preset-env@npm:7.25.4":
version: 7.25.4
resolution: "@babel/preset-env@npm:7.25.4"
@@ -2235,6 +3254,84 @@ __metadata:
languageName: node
linkType: hard
+"@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.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/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-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/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.38.1"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/501d78f56df8bf6f98a42da5db475db183048c4280b3292cf988b6baf01843915161f3b341ed525e2fcafcc47726798532b0e1dc7eb80aa29cc88c9d6f94ee6e
+ languageName: node
+ linkType: hard
+
"@babel/preset-modules@npm:0.1.6-no-external-plugins":
version: 0.1.6-no-external-plugins
resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins"
@@ -2248,6 +3345,22 @@ __metadata:
languageName: node
linkType: hard
+"@babel/preset-react@npm:7.25.7":
+ version: 7.25.7
+ resolution: "@babel/preset-react@npm:7.25.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-validator-option": "npm:^7.25.7"
+ "@babel/plugin-transform-react-display-name": "npm:^7.25.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
+ "@babel/plugin-transform-react-jsx-development": "npm:^7.25.7"
+ "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/4701a76b45f33b72efc93540e09204ac84eb2b8054de9570d041b6f952477efca2a6c7c916389a1aea4d408c38ebbc997148d693d9aa72d1b4df9a3b4b557c7c
+ languageName: node
+ linkType: hard
+
"@babel/preset-typescript@npm:7.24.7":
version: 7.24.7
resolution: "@babel/preset-typescript@npm:7.24.7"
@@ -2263,6 +3376,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/preset-typescript@npm:7.25.7":
+ version: 7.25.7
+ resolution: "@babel/preset-typescript@npm:7.25.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-validator-option": "npm:^7.25.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.25.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7"
+ "@babel/plugin-transform-typescript": "npm:^7.25.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/cf6501971f696800096f3b3aef4f7e2c774210b4204bb3a076b2f253970d6649c28003de3afc620b7c7ad67fb346083819c89bae2c644f59995ddb64d6003541
+ languageName: node
+ linkType: hard
+
"@babel/regjsgen@npm:^0.8.0":
version: 0.8.0
resolution: "@babel/regjsgen@npm:0.8.0"
@@ -2334,6 +3462,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/template@npm:7.25.7"
+ dependencies:
+ "@babel/code-frame": "npm:^7.25.7"
+ "@babel/parser": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.7"
+ checksum: 10/49e1e88d2eac17d31ae28d6cf13d6d29c1f49384c4f056a6751c065d6565c351e62c01ce6b11fef5edb5f3a77c87e114ea7326ca384fa618b4834e10cf9b20f3
+ languageName: node
+ linkType: hard
+
"@babel/template@npm:^7.3.3":
version: 7.14.5
resolution: "@babel/template@npm:7.14.5"
@@ -2399,6 +3538,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/traverse@npm:7.25.7"
+ 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"
+ debug: "npm:^4.3.1"
+ globals: "npm:^11.1.0"
+ checksum: 10/5b2d332fcd6bc78e6500c997e79f7e2a54dfb357e06f0908cb7f0cdd9bb54e7fd3c5673f45993849d433d01ea6076a6d04b825958f0cfa01288ad55ffa5c286f
+ languageName: node
+ linkType: hard
+
"@babel/traverse@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/traverse@npm:7.24.7"
@@ -2506,6 +3660,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.22.5, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8":
+ 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: 10/973108dbb189916bb87360f2beff43ae97f1b08f1c071bc6499d363cce48b3c71674bf3b59dfd617f8c5062d1c76dc2a64232bc07b6ccef831fd0c06162d44d9
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/types@npm:7.24.7"
@@ -2985,13 +4150,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/aix-ppc64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/aix-ppc64@npm:0.24.0"
- conditions: os=aix & cpu=ppc64
- languageName: node
- linkType: hard
-
"@esbuild/android-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-arm64@npm:0.21.5"
@@ -2999,13 +4157,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/android-arm64@npm:0.24.0"
- conditions: os=android & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/android-arm@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-arm@npm:0.21.5"
@@ -3013,13 +4164,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/android-arm@npm:0.24.0"
- conditions: os=android & cpu=arm
- languageName: node
- linkType: hard
-
"@esbuild/android-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/android-x64@npm:0.21.5"
@@ -3027,13 +4171,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/android-x64@npm:0.24.0"
- conditions: os=android & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/darwin-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/darwin-arm64@npm:0.21.5"
@@ -3041,13 +4178,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/darwin-arm64@npm:0.24.0"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/darwin-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/darwin-x64@npm:0.21.5"
@@ -3055,13 +4185,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/darwin-x64@npm:0.24.0"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/freebsd-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
@@ -3069,13 +4192,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/freebsd-arm64@npm:0.24.0"
- conditions: os=freebsd & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/freebsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/freebsd-x64@npm:0.21.5"
@@ -3083,13 +4199,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/freebsd-x64@npm:0.24.0"
- conditions: os=freebsd & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/linux-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-arm64@npm:0.21.5"
@@ -3097,13 +4206,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-arm64@npm:0.24.0"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/linux-arm@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-arm@npm:0.21.5"
@@ -3111,13 +4213,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-arm@npm:0.24.0"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
"@esbuild/linux-ia32@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-ia32@npm:0.21.5"
@@ -3125,13 +4220,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-ia32@npm:0.24.0"
- conditions: os=linux & cpu=ia32
- languageName: node
- linkType: hard
-
"@esbuild/linux-loong64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-loong64@npm:0.21.5"
@@ -3139,13 +4227,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-loong64@npm:0.24.0"
- conditions: os=linux & cpu=loong64
- languageName: node
- linkType: hard
-
"@esbuild/linux-mips64el@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-mips64el@npm:0.21.5"
@@ -3153,13 +4234,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-mips64el@npm:0.24.0"
- conditions: os=linux & cpu=mips64el
- languageName: node
- linkType: hard
-
"@esbuild/linux-ppc64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-ppc64@npm:0.21.5"
@@ -3167,13 +4241,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-ppc64@npm:0.24.0"
- conditions: os=linux & cpu=ppc64
- languageName: node
- linkType: hard
-
"@esbuild/linux-riscv64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-riscv64@npm:0.21.5"
@@ -3181,13 +4248,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-riscv64@npm:0.24.0"
- conditions: os=linux & cpu=riscv64
- languageName: node
- linkType: hard
-
"@esbuild/linux-s390x@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-s390x@npm:0.21.5"
@@ -3195,13 +4255,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-s390x@npm:0.24.0"
- conditions: os=linux & cpu=s390x
- languageName: node
- linkType: hard
-
"@esbuild/linux-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/linux-x64@npm:0.21.5"
@@ -3209,13 +4262,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/linux-x64@npm:0.24.0"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/netbsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/netbsd-x64@npm:0.21.5"
@@ -3223,20 +4269,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/netbsd-x64@npm:0.24.0"
- conditions: os=netbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"@esbuild/openbsd-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/openbsd-arm64@npm:0.24.0"
- conditions: os=openbsd & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/openbsd-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/openbsd-x64@npm:0.21.5"
@@ -3244,13 +4276,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/openbsd-x64@npm:0.24.0"
- conditions: os=openbsd & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/sunos-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/sunos-x64@npm:0.21.5"
@@ -3258,13 +4283,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/sunos-x64@npm:0.24.0"
- conditions: os=sunos & cpu=x64
- languageName: node
- linkType: hard
-
"@esbuild/win32-arm64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-arm64@npm:0.21.5"
@@ -3272,13 +4290,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/win32-arm64@npm:0.24.0"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
"@esbuild/win32-ia32@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-ia32@npm:0.21.5"
@@ -3286,13 +4297,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/win32-ia32@npm:0.24.0"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
"@esbuild/win32-x64@npm:0.21.5":
version: 0.21.5
resolution: "@esbuild/win32-x64@npm:0.21.5"
@@ -3300,13 +4304,6 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.24.0":
- version: 0.24.0
- resolution: "@esbuild/win32-x64@npm:0.24.0"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
@@ -5552,7 +6549,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/babel__core@npm:^7.20.5":
+"@types/babel__core@npm:^7.1.18, @types/babel__core@npm:^7.20.5":
version: 7.20.5
resolution: "@types/babel__core@npm:7.20.5"
dependencies:
@@ -6508,6 +7505,11 @@ __metadata:
version: 0.0.0-use.local
resolution: "SonarQube@workspace:."
dependencies:
+ "@babel/core": "npm:7.25.8"
+ "@babel/preset-env": "npm:7.25.8"
+ "@babel/preset-react": "npm:7.25.7"
+ "@babel/preset-typescript": "npm:7.25.7"
+ "@emotion/babel-plugin": "npm:11.12.0"
"@emotion/jest": "npm:11.13.0"
"@emotion/react": "npm:11.11.4"
"@emotion/styled": "npm:11.13.0"
@@ -6549,6 +7551,7 @@ __metadata:
"@typescript-eslint/rule-tester": "npm:7.18.0"
autoprefixer: "npm:10.4.20"
axios: "npm:1.7.7"
+ browserslist-to-esbuild: "npm:2.1.1"
chalk: "npm:4.1.2"
chokidar: "npm:3.6.0"
classnames: "npm:2.5.1"
@@ -6565,7 +7568,6 @@ __metadata:
design-system: "npm:1.0.0"
diff: "npm:7.0.0"
dompurify: "npm:3.1.7"
- esbuild: "npm:0.24.0"
eslint: "npm:8.57.1"
eslint-config-sonarqube: "npm:2.1.3"
eslint-plugin-header: "npm:3.1.1"
@@ -6612,12 +7614,16 @@ __metadata:
react-select: "npm:5.7.7"
react-virtualized: "npm:9.22.5"
regenerator-runtime: "npm:0.14.1"
+ rollup-plugin-visualizer: "npm:5.12.0"
shared-store-hook: "npm:0.0.4"
tailwindcss: "npm:3.4.13"
turbo: "npm:2.1.3"
typescript: "npm:5.6.2"
valid-url: "npm:1.0.9"
validator: "npm:13.12.0"
+ vite: "npm:5.4.8"
+ vite-plugin-babel-macros: "npm:1.0.6"
+ vite-plugin-require-transform: "npm:1.0.21"
whatwg-fetch: "npm:3.6.20"
languageName: unknown
linkType: soft
@@ -7412,6 +8418,19 @@ __metadata:
languageName: node
linkType: hard
+"browserslist-to-esbuild@npm:2.1.1":
+ version: 2.1.1
+ resolution: "browserslist-to-esbuild@npm:2.1.1"
+ dependencies:
+ meow: "npm:^13.0.0"
+ peerDependencies:
+ browserslist: "*"
+ bin:
+ browserslist-to-esbuild: cli/index.js
+ checksum: 10/5e91b23ba5ac47412b7456bbb74ee11b35d1083163e9e8e001e48f3a975c65758a4559ab532812d8518877a1d8f68c5b649b88a08722b9543b38e633e6943f7d
+ languageName: node
+ linkType: hard
+
"browserslist@npm:^4.17.5":
version: 4.19.1
resolution: "browserslist@npm:4.19.1"
@@ -7483,6 +8502,20 @@ __metadata:
languageName: node
linkType: hard
+"browserslist@npm:^4.24.0":
+ version: 4.24.0
+ resolution: "browserslist@npm:4.24.0"
+ dependencies:
+ 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: 10/26c1b8ba257a0b51b102080ba9d42945af2abaa8c4cf6da21cd47b3f123fc1e81640203b293214356c2c17d9d265bb3a5ed428b6d302f383576dd6ce8fd5036c
+ languageName: node
+ linkType: hard
+
"bser@npm:^2.0.0":
version: 2.1.0
resolution: "bser@npm:2.1.0"
@@ -7623,6 +8656,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001663":
+ version: 1.0.30001668
+ resolution: "caniuse-lite@npm:1.0.30001668"
+ checksum: 10/4a14acbc999a855e6a91a3ae4ca670f202ceabb4b0e75f8eaef153fafe33ae5ea0de7ac99c078d6b724c8f60b14b1ea24d7c544398e5fd077c418e3f029559ff
+ languageName: node
+ linkType: hard
+
"ccount@npm:^2.0.0":
version: 2.0.1
resolution: "ccount@npm:2.0.1"
@@ -7972,7 +9012,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.37.1, 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:
@@ -8578,6 +9618,13 @@ __metadata:
languageName: node
linkType: hard
+"define-lazy-prop@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "define-lazy-prop@npm:2.0.0"
+ checksum: 10/0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2
+ languageName: node
+ linkType: hard
+
"define-properties@npm:^1.1.3":
version: 1.1.3
resolution: "define-properties@npm:1.1.3"
@@ -8908,6 +9955,13 @@ __metadata:
languageName: node
linkType: hard
+"electron-to-chromium@npm:^1.5.28":
+ version: 1.5.36
+ resolution: "electron-to-chromium@npm:1.5.36"
+ checksum: 10/659f637b7384714d5a732de0e5baca007fa1ae741faa4a0f9eb576d65a6a6d30c553caae27df5df7307c65484c0fbcd2ac453df27848d04f7dd27b81dea072a2
+ languageName: node
+ linkType: hard
+
"electron-to-chromium@npm:^1.5.4":
version: 1.5.16
resolution: "electron-to-chromium@npm:1.5.16"
@@ -9326,89 +10380,6 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:0.24.0":
- version: 0.24.0
- resolution: "esbuild@npm:0.24.0"
- dependencies:
- "@esbuild/aix-ppc64": "npm:0.24.0"
- "@esbuild/android-arm": "npm:0.24.0"
- "@esbuild/android-arm64": "npm:0.24.0"
- "@esbuild/android-x64": "npm:0.24.0"
- "@esbuild/darwin-arm64": "npm:0.24.0"
- "@esbuild/darwin-x64": "npm:0.24.0"
- "@esbuild/freebsd-arm64": "npm:0.24.0"
- "@esbuild/freebsd-x64": "npm:0.24.0"
- "@esbuild/linux-arm": "npm:0.24.0"
- "@esbuild/linux-arm64": "npm:0.24.0"
- "@esbuild/linux-ia32": "npm:0.24.0"
- "@esbuild/linux-loong64": "npm:0.24.0"
- "@esbuild/linux-mips64el": "npm:0.24.0"
- "@esbuild/linux-ppc64": "npm:0.24.0"
- "@esbuild/linux-riscv64": "npm:0.24.0"
- "@esbuild/linux-s390x": "npm:0.24.0"
- "@esbuild/linux-x64": "npm:0.24.0"
- "@esbuild/netbsd-x64": "npm:0.24.0"
- "@esbuild/openbsd-arm64": "npm:0.24.0"
- "@esbuild/openbsd-x64": "npm:0.24.0"
- "@esbuild/sunos-x64": "npm:0.24.0"
- "@esbuild/win32-arm64": "npm:0.24.0"
- "@esbuild/win32-ia32": "npm:0.24.0"
- "@esbuild/win32-x64": "npm:0.24.0"
- dependenciesMeta:
- "@esbuild/aix-ppc64":
- optional: true
- "@esbuild/android-arm":
- optional: true
- "@esbuild/android-arm64":
- optional: true
- "@esbuild/android-x64":
- optional: true
- "@esbuild/darwin-arm64":
- optional: true
- "@esbuild/darwin-x64":
- optional: true
- "@esbuild/freebsd-arm64":
- optional: true
- "@esbuild/freebsd-x64":
- optional: true
- "@esbuild/linux-arm":
- optional: true
- "@esbuild/linux-arm64":
- optional: true
- "@esbuild/linux-ia32":
- optional: true
- "@esbuild/linux-loong64":
- optional: true
- "@esbuild/linux-mips64el":
- optional: true
- "@esbuild/linux-ppc64":
- optional: true
- "@esbuild/linux-riscv64":
- optional: true
- "@esbuild/linux-s390x":
- optional: true
- "@esbuild/linux-x64":
- optional: true
- "@esbuild/netbsd-x64":
- optional: true
- "@esbuild/openbsd-arm64":
- optional: true
- "@esbuild/openbsd-x64":
- optional: true
- "@esbuild/sunos-x64":
- optional: true
- "@esbuild/win32-arm64":
- optional: true
- "@esbuild/win32-ia32":
- optional: true
- "@esbuild/win32-x64":
- optional: true
- bin:
- esbuild: bin/esbuild
- checksum: 10/500f83a1216d6548053007b85c070d8293395db344605b17418c6cf1217e5e8d338fa77fc8af27c23faa121c5528e5b0004d46d3a0cdeb87d48f1b5fa0164bc5
- languageName: node
- linkType: hard
-
"esbuild@npm:^0.21.3":
version: 0.21.5
resolution: "esbuild@npm:0.21.5"
@@ -11414,6 +12385,15 @@ __metadata:
languageName: node
linkType: hard
+"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1":
+ version: 2.2.1
+ resolution: "is-docker@npm:2.2.1"
+ bin:
+ is-docker: cli.js
+ checksum: 10/3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56
+ languageName: node
+ linkType: hard
+
"is-extglob@npm:^2.1.1":
version: 2.1.1
resolution: "is-extglob@npm:2.1.1"
@@ -11727,6 +12707,15 @@ __metadata:
languageName: node
linkType: hard
+"is-wsl@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "is-wsl@npm:2.2.0"
+ dependencies:
+ is-docker: "npm:^2.0.0"
+ checksum: 10/20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8
+ languageName: node
+ linkType: hard
+
"isarray@npm:^1.0.0, isarray@npm:~1.0.0":
version: 1.0.0
resolution: "isarray@npm:1.0.0"
@@ -12578,6 +13567,15 @@ __metadata:
languageName: node
linkType: hard
+"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: 10/8e5a7de6b70a8bd71f9cb0b5a7ade6a73ae6ab55e697c74cc997cede97417a3a65ed86c36f7dd6125fe49766e8386c845023d9e213916ca92c9dfdd56e2babf3
+ languageName: node
+ linkType: hard
+
"jsesc@npm:~0.5.0":
version: 0.5.0
resolution: "jsesc@npm:0.5.0"
@@ -13143,6 +14141,13 @@ __metadata:
languageName: node
linkType: hard
+"meow@npm:^13.0.0":
+ version: 13.2.0
+ resolution: "meow@npm:13.2.0"
+ checksum: 10/4eff5bc921fed0b8a471ad79069d741a0210036d717547d0c7f36fdaf84ef7a3036225f38b6a53830d84dc9cbf8b944b097fde62381b8b5b215119e735ce1063
+ languageName: node
+ linkType: hard
+
"merge-stream@npm:^2.0.0":
version: 2.0.0
resolution: "merge-stream@npm:2.0.0"
@@ -14021,6 +15026,17 @@ __metadata:
languageName: node
linkType: hard
+"open@npm:^8.4.0":
+ version: 8.4.2
+ resolution: "open@npm:8.4.2"
+ dependencies:
+ define-lazy-prop: "npm:^2.0.0"
+ is-docker: "npm:^2.1.1"
+ is-wsl: "npm:^2.2.0"
+ checksum: 10/acd81a1d19879c818acb3af2d2e8e9d81d17b5367561e623248133deb7dd3aefaed527531df2677d3e6aaf0199f84df57b6b2262babff8bf46ea0029aac536c9
+ languageName: node
+ linkType: hard
+
"openapi-types@npm:12.1.3":
version: 12.1.3
resolution: "openapi-types@npm:12.1.3"
@@ -15160,6 +16176,15 @@ __metadata:
languageName: node
linkType: hard
+"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: 10/9150eae6fe04a8c4f2ff06077396a86a98e224c8afad8344b1b656448e89e84edcd527e4b03aa5476774129eb6ad328ed684f9c1459794a935ec0cc17ce14329
+ languageName: node
+ linkType: hard
+
"regenerate@npm:^1.4.2":
version: 1.4.2
resolution: "regenerate@npm:1.4.2"
@@ -15242,6 +16267,38 @@ __metadata:
languageName: node
linkType: hard
+"regexpu-core@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "regexpu-core@npm:6.1.1"
+ dependencies:
+ regenerate: "npm:^1.4.2"
+ 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: 10/6a7ffb42781cacedd7df3c47c72e2d725401a699855be94a37ece5e29d3f25ab3abdd81d73f2d9d32ebc4d41bd25e3c3cc21e5284203faf19e60943adc55252d
+ languageName: node
+ linkType: hard
+
+"regjsgen@npm:^0.8.0":
+ version: 0.8.0
+ resolution: "regjsgen@npm:0.8.0"
+ checksum: 10/b930f03347e4123c917d7b40436b4f87f625b8dd3e705b447ddd44804e4616c3addb7453f0902d6e914ab0446c30e816e445089bb641a4714237fe8141a0ef9d
+ languageName: node
+ linkType: hard
+
+"regjsparser@npm:^0.11.0":
+ version: 0.11.1
+ resolution: "regjsparser@npm:0.11.1"
+ dependencies:
+ jsesc: "npm:~3.0.2"
+ bin:
+ regjsparser: bin/parser
+ checksum: 10/06295f1666f8e378c3b70eb01578b46e075eee0556865a297497ab40753f04cce526e96513b18e21e66b79c972e7377bd3b5caa86935ed5d736e9b3e0f857363
+ languageName: node
+ linkType: hard
+
"regjsparser@npm:^0.9.1":
version: 0.9.1
resolution: "regjsparser@npm:0.9.1"
@@ -15505,6 +16562,25 @@ __metadata:
languageName: node
linkType: hard
+"rollup-plugin-visualizer@npm:5.12.0":
+ version: 5.12.0
+ resolution: "rollup-plugin-visualizer@npm:5.12.0"
+ dependencies:
+ open: "npm:^8.4.0"
+ picomatch: "npm:^2.3.1"
+ source-map: "npm:^0.7.4"
+ yargs: "npm:^17.5.1"
+ peerDependencies:
+ rollup: 2.x || 3.x || 4.x
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ bin:
+ rollup-plugin-visualizer: dist/bin/cli.js
+ checksum: 10/47358feb672291d6edcfd94197577c192a84c24cb644119425dae8241fb6f5a52556efd0c501f38b276c07534642a80c0885ef681babb474e83c7b5a3b475b84
+ languageName: node
+ linkType: hard
+
"rollup@npm:^4.20.0":
version: 4.21.2
resolution: "rollup@npm:4.21.2"
@@ -17439,6 +18515,21 @@ __metadata:
languageName: node
linkType: hard
+"vite-plugin-babel-macros@npm:1.0.6":
+ version: 1.0.6
+ resolution: "vite-plugin-babel-macros@npm:1.0.6"
+ dependencies:
+ "@babel/core": "npm:^7.17.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.16.7"
+ "@babel/plugin-syntax-typescript": "npm:^7.16.7"
+ "@types/babel__core": "npm:^7.1.18"
+ babel-plugin-macros: "npm:^3.1.0"
+ peerDependencies:
+ vite: ">=2"
+ checksum: 10/577d3d99b4b088b83adffab656461d0d00618afe7d2e64972077e6b15fd221df92c6278bdfce586a380954159e6c0886658d086df26a6748e65b28e1c9923a40
+ languageName: node
+ linkType: hard
+
"vite-plugin-dts@npm:4.2.3":
version: 4.2.3
resolution: "vite-plugin-dts@npm:4.2.3"
@@ -17462,6 +18553,18 @@ __metadata:
languageName: node
linkType: hard
+"vite-plugin-require-transform@npm:1.0.21":
+ version: 1.0.21
+ resolution: "vite-plugin-require-transform@npm:1.0.21"
+ dependencies:
+ "@babel/generator": "npm:^7.22.5"
+ "@babel/parser": "npm:^7.22.5"
+ "@babel/traverse": "npm:^7.22.5"
+ "@babel/types": "npm:^7.22.5"
+ checksum: 10/632a519ca618dec8cc33fcbe68f12e645d56efe6fe91a25baf5e126e05ced15deb2820e369c3f511adca59f84b9014261cc88d2bb05192acfbeb3c2c5383711b
+ languageName: node
+ linkType: hard
+
"vite@npm:5.4.8":
version: 5.4.8
resolution: "vite@npm:5.4.8"
@@ -17882,6 +18985,21 @@ __metadata:
languageName: node
linkType: hard
+"yargs@npm:^17.5.1":
+ version: 17.7.2
+ resolution: "yargs@npm:17.7.2"
+ dependencies:
+ cliui: "npm:^8.0.1"
+ escalade: "npm:^3.1.1"
+ get-caller-file: "npm:^2.0.5"
+ require-directory: "npm:^2.1.1"
+ string-width: "npm:^4.2.3"
+ y18n: "npm:^5.0.5"
+ yargs-parser: "npm:^21.1.1"
+ checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576
+ languageName: node
+ linkType: hard
+
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"
diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/SamlValidationRedirectionFilter.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/SamlValidationRedirectionFilter.java
index f602608a42a..636e9e1ae38 100644
--- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/SamlValidationRedirectionFilter.java
+++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/SamlValidationRedirectionFilter.java
@@ -84,7 +84,7 @@ public class SamlValidationRedirectionFilter extends HttpFilter {
String nonce = SamlValidationCspHeaders.addCspHeadersWithNonceToResponse(response);
String template = StringUtils.replaceEachRepeatedly(redirectionPageTemplate,
- new String[]{"%NONCE%", "%WEB_CONTEXT%", "%VALIDATION_URL%", "%SAML_RESPONSE%", "%CSRF_TOKEN%"},
+ new String[]{"%NONCE%", "WEB_CONTEXT", "%VALIDATION_URL%", "%SAML_RESPONSE%", "%CSRF_TOKEN%"},
new String[]{nonce, server.getContextPath(), redirectionEndpointUrl.toString(), samlResponse, csrfToken});
response.setContentType("text/html");
diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/CspFilter.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/CspFilter.java
index 93ac1a8a1e4..a0f7b100dbc 100644
--- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/CspFilter.java
+++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/CspFilter.java
@@ -46,7 +46,8 @@ public class CspFilter implements Filter {
cspPolicies.add("font-src 'self' data:");
cspPolicies.add("img-src * data: blob:");
cspPolicies.add("object-src 'none'");
- cspPolicies.add("script-src 'self'");
+ // the hash below corresponds to the window.__assetsPath script in index.html
+ cspPolicies.add("script-src 'self' 'sha256-D1jaqcDDM2TM2STrzE42NNqyKR9PlptcHDe6tyaBcuM='");
cspPolicies.add("style-src 'self' 'unsafe-inline'");
cspPolicies.add("worker-src 'none'");
this.policies = String.join("; ", cspPolicies).trim();
diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/WebPagesCache.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/WebPagesCache.java
index a383ccb2402..7bd6929d18e 100644
--- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/WebPagesCache.java
+++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/WebPagesCache.java
@@ -37,7 +37,7 @@ import static org.sonar.server.platform.Platform.Status.UP;
public class WebPagesCache {
- private static final String WEB_CONTEXT_PLACEHOLDER = "%WEB_CONTEXT%";
+ private static final String WEB_CONTEXT_PLACEHOLDER = "WEB_CONTEXT";
private static final String SERVER_STATUS_PLACEHOLDER = "%SERVER_STATUS%";
private static final String INSTANCE_PLACEHOLDER = "%INSTANCE%";
private static final String OFFICIAL_PLACEHOLDER = "%OFFICIAL%";
diff --git a/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/CspFilterTest.java b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/CspFilterTest.java
index d4f1c1b2e7b..77290ec96d5 100644
--- a/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/CspFilterTest.java
+++ b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/CspFilterTest.java
@@ -42,7 +42,7 @@ public class CspFilterTest {
"font-src 'self' data:; " +
"img-src * data: blob:; " +
"object-src 'none'; " +
- "script-src 'self'; " +
+ "script-src 'self' 'sha256-D1jaqcDDM2TM2STrzE42NNqyKR9PlptcHDe6tyaBcuM='; " +
"style-src 'self' 'unsafe-inline'; " +
"worker-src 'none'";
private final ServletContext servletContext = mock(ServletContext.class, RETURNS_MOCKS);
diff --git a/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/WebPagesCacheTest.java b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/WebPagesCacheTest.java
index 810bae4ed6e..8911350c82d 100644
--- a/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/WebPagesCacheTest.java
+++ b/server/sonar-webserver/src/test/java/org/sonar/server/platform/web/WebPagesCacheTest.java
@@ -53,7 +53,7 @@ public class WebPagesCacheTest {
public void setUp() {
when(servletContext.getContextPath()).thenReturn(TEST_CONTEXT);
when(servletContext.getResourceAsStream("/index.html")).thenAnswer(
- (Answer<InputStream>) invocationOnMock -> toInputStream("Content of default index.html with context [%WEB_CONTEXT%], status [%SERVER_STATUS%], instance [%INSTANCE%]",
+ (Answer<InputStream>) invocationOnMock -> toInputStream("Content of default index.html with context [WEB_CONTEXT], status [%SERVER_STATUS%], instance [%INSTANCE%]",
UTF_8));
}