diff options
author | Jeremy Davis <jeremy.davis@sonarsource.com> | 2024-10-14 11:01:10 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-10-22 20:03:09 +0000 |
commit | df6a4b8b61181bae40298a7031bb66af6373ebb7 (patch) | |
tree | 1be57d33d3d483f7b0ae41273c16d06dac417234 /server | |
parent | 37d9d2491a688ba82b5c839a2279015826c9a28b (diff) | |
download | sonarqube-df6a4b8b61181bae40298a7031bb66af6373ebb7.tar.gz sonarqube-df6a4b8b61181bae40298a7031bb66af6373ebb7.zip |
SONAR-23205 Migrate build system to vite
Diffstat (limited to 'server')
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)); } |